npm / @copilotkit/shared
@copilotkit/shared
What changed in @copilotkit/shared 1, from its official release notes, upgrade guides and advisories. Also covers @copilotkit/react-core, @copilotkit/react-ui, @copilotkit/runtime, @copilotkit/runtime-client-gql, @copilotkit/sdk-js. Sources checked 2026-10-18.
12 breaking10 new APIs and options2 performance8 behavior and defaults1 tooling43 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@copilotkit/shared 176 changes
Breaking changes 12
The headers builder runs when each request is sent rather than on each provider render. Switching users requires remounting the provider or calling setHeaders to avoid showing the previous user's threads.
With OPENAI_BASE_URL set to a host other than OpenAI or Azure, openai/... model strings now use Chat Completions, so Responses-only models and options no longer work through those proxies.
Choose which OpenAI API to use; set COPILOTKIT_OPENAI_API=responses to keep the Responses API when routing through a proxy.
The adapter now defaults to gemini-3.5-flash.
A learning object without trajectoryId now starts Trajectory capture after mount; set autoStart: false to keep starting capture yourself with startTrajectory().
Inspector conversations are easier to read, with improved tool-call presentation.
@copilotkit/react-core now requires @tanstack/react-virtual ^3.14.13; older lockfile versions should be updated to avoid a one-frame scroll twitch in long chats.
BuiltInAgent now delivers Learning skills automatically.
Removes the deprecated useRenderTool shim from React Native.
Removed the optional diagnostic-feedback instruction from the Threads and Learning setup prompt while retaining the instruction not to reveal credentials.
Remove this option from Fetch, Express, and Hono handler configurations; Inspector Learning now requires an Intelligence runtime with a configured Learning container.
Home and launcher Learning status now comes from Learning's own endpoint rather than Memory availability.
New APIs and options 10
Trajectories can now be assigned to Learning Spaces on the server.
An option lets developers hide the Inspector indefinitely.
Auto-mounting the intelligence indicator is configurable, letting developers control whether it mounts automatically.
Raw browser activity can be captured as AG-UI events.
CopilotKit adds AG-UI 1.0 support.
Added transformMessages to CopilotChatMessageView.
The web inspector tracks launcher HUD impressions and actions.
Adds messageFilter for trimming conversation history.
Agent configuration can now be specified at the provider level.
Adds optional Inspector metadata with normalization that preserves valid usage and sibling modules when an expiry leaf is malformed; missing usage.expiringSoonCount is valid V1, while 0 remains a known zero.
Performance 2
Vue stops cloning run state six times per row for message slots.
React hook performance is improved.
Behavior and default changes 8
Clicked controls are named with privacy-safe labels for learning.
Trajectory setup errors are now distinguished when connecting.
Learned skills can be consumed from multiple containers across SDKs.
Onboarding copies a hosted prompt link instead of a CLI command.
Runtime telemetry is richer.
The Inspector's onboarding experience is improved.
Provider-level tools now wait for
respond, keep parallel calls independent, and report an error when aborted instead of an empty success.A2UI generation prompts now specify the id="root" entry-point requirement, helping models produce schema-valid root entries more reliably.
Tooling 1
Development-only warnings flag unmatched tool-call renderers and A2UI surfaces that never render or cannot resolve their root component.
Fixes and other changes 43
Types RendererProps.children as (id, basePath?).
The web inspector now coalesces streaming transcript refreshes.
App context is folded into the leading system message.
CopilotChat stays visible beside the threads drawer in a flex row.
Text edits are debounced during learning capture.
Features remain enabled when the entitlement lookup times out.
Slash model ids are now kept intact.
A lookup for a thread that has not yet been created is logged at debug rather than error level.
Generated UI handlers are guided to render results.
Tool handler results of type ContentPart[] are passed through to the tool message.
Generated controls no longer submit host forms.
LangGraph catalogs are preserved when AG-UI properties are merged.
Malformed component values are contained by the A2UI renderer.
The Learning setup prompt click now sends onboarding_run_id.
Popup rounded corners are preserved in React and Vue.
MCP tools whose names collide are prefixed instead of dropped.
Runtime no longer reuses per-response provider IDs as message IDs.
Standard interrupt resumes now use new run IDs.
Single-route mode now enforces the basePath segment boundary.
The reconnect cursor is kept when a control frame repeats an old checkpoint.
The automatic HUD intro is distinguished from a user opening the HUD.
A Memory policy that grants nothing no longer causes the run to fail.
Per-message state cloning is stopped, along with the virtual-scroll tug of war.
Credentials are no longer refreshed for a socket that never opens.
What's New supports targeted notifications.
When thread naming fails, the first user message is used.
The threads drawer no longer locks when an entitlement is unresolved.
Inspector keeps conversation results and failures accurate.
Express is now an optional peer dependency, allowing Express 5 apps to compile against the runtime.
Fixes several human-in-the-loop issues across the client and runtime.
Fixes several Intelligence transport issues across the client and runtime.
Fixes several MCP issues across the client and runtime.
SSE streaming is more resilient.
Repairs several v1 runtime surfaces that had been silently broken since v1.50.0.
Runtime MCP fixes are included in this release.
Copilot context timing during page navigation is improved.
Fixes issues with nullable tool schemas.
Preserves unread request payloads when body-parser sets an empty body but skips parsing, including multipart and plain-text requests.
Enabled launcher toggles now appear green.
React and web-component renderers now consistently prefer nested surface IDs.
Custom renderers can return
nullto hide selected tool calls without a type error.Restores the lambda client export in the CommonJS build, allowing developers using that build to import it.
The package was republished at a matching version to repair the broken 1.57.2 artifact and align installs and peer-dependency resolution.