The docs table and prose claimed `debug: true` sets `verbose: true`,
but the implementation intentionally defaults verbose to false (PII
safety). Fixed the table and explanatory text to match.
Also removed packages/vscode-extension/README.md which was committed
on this branch by mistake — it describes an unrelated VS Code extension
and has nothing to do with debug mode.
Updated JSDoc and troubleshooting docs to accurately describe that
the client-side debug prop forwards config to the AG-UI transport
layer, not CopilotKit's own logging. Removed fabricated console.debug
output examples that don't exist.
- 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