- Rewrite opening to address the user's problem (missing events, broken
state) rather than describing the feature
- Add cross-link callout from error-debugging → debug-mode and vice versa
- Fix [VERIFY] log format (remove incorrect colon)
- Move troubleshooting scenarios before reference tables since debugging
is the primary use case
- Fix clone() dropping debug config on ProxiedCopilotRuntimeAgent
- Pass raw DebugConfig to agents instead of collapsing to boolean
- Clamp verbose to false when enabled is false
- Fix pino-pretty log format in docs (parentheses, timestamps, levels)
- Add loggedEventCount to doc example
- Fix "Agent run started/finished" → actual log messages in arch docs
- New reference page for useCapabilities hook with all 11 AG-UI
capability categories, usage examples, and behavior notes
- Add capabilities property to useAgent return value docs
- Add useCapabilities to hooks navigation under "Agent & Context"
- Bidirectional cross-links between useAgent and useCapabilities
## Summary
- Restructures Mastra Human-in-the-Loop docs from a single page into a
subfolder with two approaches
- Adds new **interrupt-flow.mdx** documenting Mastra's native
`suspend()`/`resume` → `useInterrupt` flow (basic + advanced usage with
`enabled` routing and `handler` preprocessing)
- Extracts existing tool-based content into **tool-based.mdx** and
removes the "suspend/resume not supported" warning
- Adds **index.mdx** landing page with CTACards linking both approaches
- Updates Mastra `meta.json` to add a "Mastra" nav section with the HITL
pages
Companion docs for ag-ui-protocol/ag-ui#1359 and
CopilotKit/CopilotKit#3505.
## Test plan
- [ ] Verify docs build locally (`nx run docs:build`)
- [ ] Verify navigation: Mastra sidebar shows "Interrupts" and
"Tool-based" under "Mastra" section
- [ ] Verify root HITL hub (`/human-in-the-loop`) still links to Mastra
via IntegrationGrid
- [ ] Verify cross-links between interrupt-flow and tool-based pages
work
- [ ] Verify CTACards on the index landing page link correctly
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Add a short callout and agentId: starterAgent across LangGraph interrupt
snippets in docs and the matching showcase interrupt-based page; add the
useInterrupt import to the showcase main snippet.
- Fix Deep Agents icon (was identical to LangGraph icon) with official OSS mark
- Rename "LangSmith" tabs to "Deep Agent" throughout quickstart
- Add TypeScript agent tabs (createAgent + langgraph.json) to quickstart Steps 1-3
- Add Annotation deprecation callout on in-app-agent-read TypeScript tab
- Add "Vite + Direct Connection" alternative quickstart section using
add_langgraph_fastapi_endpoint with langgraph.json http field
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All AG2 doc examples were missing human_input_mode="NEVER" on
ConversableAgent, causing users who copy-paste the code to hit
"Please give feedback to the sender..." prompts instead of getting
tool results. AG-UI protocol agents should always use NEVER —
CopilotKit handles HITL at the frontend level.
8 files, 10 instances fixed.
Adds generative-ui, frontend-tools, shared-state, and human-in-the-loop
sections to the DeepAgents integration docs by porting from the LangGraph
integration (same underlying mechanism). Also updates the integration
feature generator script to include deepagents and regenerates
integration-features.ts so DeepAgents appears in per-feature grids.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Three more files had their own INTEGRATION_ICONS record that required
the deepagents entry: integration-button-group.tsx, integration-link.tsx,
and integrations.tsx. Fixes TypeScript build error.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Deep Agents to the integration selector, grid, quickstart dropdown,
and feature matrix
- Create docs/integrations/deepagents/ with landing page and quickstart
(ported from langgraph/deep-agents.mdx)
- Add rewrite rule in next.config.mjs so /deepagents routes correctly
- Add deepagents to middleware FRAMEWORKS list
- Add callout on langgraph/deep-agents pointing to the new integration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix all doc imports to use @copilotkit/runtime/v2 (symbols only
exported from v2 entry point)
- Replace v1 copilotRuntimeNextJSAppRouterEndpoint with v2 pattern
(CopilotRuntime + createCopilotEndpoint + InMemoryAgentRunner)
- Add warning callout on TanStack reasoning example (reasoning events
not surfaced by TanStack converter)
- Fix randomUUID imports in converters: use @copilotkit/shared instead
of Node.js crypto to match codebase convention
- Fix collectEvents timer leak in test-helpers.ts (add clearTimeout)
- Fix JSDoc/comments: convertInputToTanStackAI accurately describes
role allowlist, TanStackInputResult.messages comment updated
- Close TOCTOU window: set abortController synchronously before Observable
creation in classic run(), matching factory run() pattern (M3)
- Add concurrent run guard to classic run() (C1)
- Add threadId/runId to RUN_ERROR events in classic mode (I2)
- Check both 'output' and 'result' property names in classic tool-result (C2/M2)
- Add try/catch around JSON.stringify in classic tool-result (I4/M2)
- Add undefined guards before emitting state snapshot/delta events (I3)
- Guard assignToolsToAgents against factory-mode agent configs (M1)
- Improve error handling in classic error case with proper fallback (C3)
- Improve TanStack converter TODO comment with known gap details (M5)
- Document @ts-expect-error on clone() middlewares access (S1)
- Add JSDoc to AgentFactoryContext.abortController (M4)
- Fix duplicate import and clean up react-router example
- Update docs AgentFactoryContext reference
Source fixes:
- Fix TOCTOU race in concurrent run guard — set abortController
synchronously before Observable creation, closing the window where
two run() calls could both pass the guard
- Add JSON.stringify try/catch in TanStack TOOL_CALL_RESULT handler
(matching existing aisdk.ts protection against circular refs)
- Use role allowlist (user/assistant/tool) instead of denylist in
convertInputToTanStackAI to exclude activity/reasoning roles
- Change error+abort handler from break to return in aisdk converter
to stop processing after error during abort
- Fix version-pinned comments (remove "AI SDK 5.0" reference)
Test fixes:
- Add timedOut flag to collectEventsIncludingErrors to distinguish
hung observables from normal completion
- Add clearTimeout on success/error to prevent timer leaks
- Remove timing-dependent setTimeout in concurrent run guard test
Docs fixes:
- Split imports: copilotRuntimeNextJSAppRouterEndpoint from
@copilotkit/runtime, Agent/converters from @copilotkit/runtime/v2
- Fix forwardedProps example: use CopilotKit properties prop
- Fix useCopilotChat → useCoAgent for state management reference
- Fix model syntax colon → slash (openai/gpt-4o)
Critical fixes:
- Guard concurrent run() calls — throw if agent is already running
- Check both "output" and "result" properties on AI SDK tool-result events
for compatibility with older AI SDK versions
- Handle undefined/missing error in AI SDK error events with proper
Error wrapping instead of throwing undefined
Important fixes:
- Add TOOL_CALL_RESULT handling to TanStack converter (was silently dropped)
- Include threadId and runId in RUN_ERROR events for run correlation
- Guard state tool events (STATE_SNAPSHOT/STATE_DELTA) against undefined
snapshot/delta fields before emitting
- Wrap JSON.stringify in tool-result with try/catch to handle circular refs
- Fix collectEventsIncludingErrors to distinguish error vs normal completion
Test coverage:
- Add tests for convertInputToTanStackAI (message filtering, tool call
mapping, context injection, state serialization)
- Add tests for state management tool results in AI SDK converter
- Add tests for async factory (Promise-returning) paths
- Add tests for tool-result property compatibility (output vs result)
- Add tests for error event handling edge cases
- Add tests for concurrent run guard and RUN_ERROR correlation fields
- Replace flaky setTimeout-based abort test with signal-based sync
Other:
- Add exhaustiveness check (default: never) in config type switch
- Document clone() @ts-expect-error coupling with AbstractAgent.middlewares
- Fix docs: remove incorrect "v6" version reference, fix wrong hook name
Restructures Mastra HITL from a single page into a subfolder with two
approaches: interrupt-based (new, using useInterrupt + Mastra's native
tool suspension) and tool-based (existing useHumanInTheLoop content).
Companion docs for ag-ui-protocol/ag-ui#1359 and CopilotKit#3505.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- New docs/(root)/migration-guides/ section with migrate-to-v2, migrate-attachments,
migrate-to-1.10.X, migrate-to-1.8.2
- Troubleshooting now only contains error-debugging, observability-connectors, common-issues
- Update all @deprecated JSDoc URLs from /troubleshooting/ to /migration-guides/
- Update doc cross-links (multimodal-attachments page, snippet import)
- Move snippet to snippets/shared/migration-guides/
- Set minimum version to v1.56.0 (was vX.Y.Z placeholder)
Attachment queue & previews:
- Image lightbox with View Transition API morph animation
- Video lightbox with native controls and play button overlay
- Document lightbox (PDF via blob URL, text inline, info card fallback)
- Drop zone overlay with upload icon
- Filename preservation via InputContent metadata
- Proper video thumbnail sizing and play/pause indicator
- Fix attachment queue positioning (max-w-3xl constraint)
- Padding between X button and content for audio/document cards
- Document filenames wrap instead of truncating
Attachments config:
- onUploadFailed callback for validation/upload errors (file-too-large, invalid-type, upload-failed)
- onUpload accepts sync or async returns
- AttachmentUploadResult discriminated union with explicit interfaces
- Metadata field on Attachment and onUpload return type
AG-UI version bump:
- Bump @ag-ui/client, @ag-ui/core, @ag-ui/encoder, @ag-ui/proto to 0.0.51
- Remove process.env Vite workaround (fixed upstream in 0.0.51)
Deprecation lifecycle:
- @deprecated JSDoc on all legacy image upload APIs
- ImageRenderer, ImageRendererProps, ImageUpload type, imageUploadsEnabled prop,
inputFileAccept prop, ImageRenderer prop, AIMessage.image, ImageData
- Codemod at codemods/migrate-attachments.ts (15 tests)
- Migration guide updated with codemod instructions and new type shapes
Docs:
- New guide: docs/(root)/multimodal-attachments.mdx
- Updated migration guide with onUpload return type, metadata, codemod section
- Cross-links from prebuilt-components and migration guide
- Label change: "Add photos or files" → "Add attachments"
Tests:
- CopilotChat.attachments.test.tsx — 5 tests for onUploadFailed
- migrate-attachments codemod — 15 tests
Moves the streaming performance tip into a reusable snippet and imports
it on both the root headless page and the v2 basics headless-ui snippet
(used by built-in-agent and a2a framework pages).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The ag-ui PR landed throttling as a standalone middleware
(`@ag-ui/event-throttle-middleware`) rather than a built-in
`notificationThrottle` option on HttpAgent.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add package.json exports for v2/{express,hono,node} subpaths
- Add elysia devDependency and tsdown entry points
- Exclude bun integration tests from vitest config
- Update CI workflows to include runtime-servers test job
- Add runtime-server-adapter docs page
- Add changeset for the fetch-based runtime feature
- Add "Performance" section to useAgent reference documenting both
throttle layers (hook-level throttleMs + agent-level notificationThrottle)
- Document when to use which throttle and how they compose
- Add React.memo best practice for message components
- Add streaming performance tip to headless UI guide
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Create new langchain.tsx icon component with the rebranded LangChain
symbol SVG (geometric cross pattern from official brand kit)
- Update langgraph.tsx to use the same new LangChain symbol (since the
integration is now branded as LangChain)
- Replace SiLangchain (react-icons) with custom LangchainIcon in
custom-icons.tsx and langgraph/index.mdx
- Remove unused SiLangchain import from quickstart.mdx
- Remove temp/ SVG directory (raw brand assets no longer needed)
https://claude.ai/code/session_01JAQ7P3GEeP2bGZtc6V45WY
Update user-facing references from "LangGraph" to "LangChain" per CPK-7186.
The integration label, descriptions, and agent terminology now use "LangChain"
while preserving "LangGraph" for technical references (Platform, Studio, CLI,
StateGraph, code/package names, and API references).
- Rename integration label in integrations.ts, meta.json, integration-grid,
feature-matrix, quickstart-dropdown, and link-validation
- Update ~47 MDX docs: "LangGraph agent(s)" → "LangChain agent(s)"
- Update FAQ, snippets, and learn section references
- Keep URL paths (/langgraph) unchanged for backward compatibility
- Keep all code imports, package names, and LangGraph Platform/Studio/CLI as-is
https://claude.ai/code/session_01JAQ7P3GEeP2bGZtc6V45WY
Replace eslint and prettier with oxlint and oxfmt for faster linting
and formatting across the monorepo. Remove all eslint and prettier
configs, dependencies, and related packages. Add .oxlintrc.json and
.oxfmtrc.json for the new tooling. Update CI workflows and lefthook
hooks accordingly. Reformat codebase with oxfmt.
https://claude.ai/code/session_01GMkSf29p78HuMR1mbXn8He
## Summary
- Removed SSE transport references — SSE is no longer available for the
CopilotKit MCP server
- Updated all MCP server URLs from `/sse` to `/mcp` across every coding
agent tool (Cursor, Claude Web/Desktop/Code, Windsurf, Cline, GitHub
Copilot, and the generic "Other" section)
- Removed the Tadata callout
- Claude Code command now uses `--transport http` instead of
`--transport sse`
## Test plan
- [ ] Verify https://docs.copilotkit.ai/coding-agents renders correctly
after deploy
- [ ] Confirm `claude mcp add --transport http copilotkit-mcp
https://mcp.copilotkit.ai/mcp` works
- [ ] Spot-check a few tool sections (Cursor, Windsurf, Cline) for
correct URLs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
SSE transport is no longer available. Update all MCP server setup
instructions to use HTTP transport with the /mcp endpoint, and
remove the Tadata callout.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>