Skip to content

v1.55.3

Choose a tag to compare

@github-actions github-actions released this 11 Apr 07:02
d8e9844

CopilotKit v1.55.3

A consolidation release on the 1.55 line, rolling up everything that landed in 1.55.0, 1.55.1, and 1.55.2. The headline: every @copilotkitnext/* package has been folded into its flat @copilotkit/* equivalent. v1 imports stay on @copilotkit/react-core; v2 imports continue to use the @copilotkit/react-core/v2 subpath.

On top of the consolidation: multimodal attachments for the built-in agent, A2UI v0.9 with Open Generative UI, a fetch-based runtime handler, Vertex AI provider, BuiltInAgent factory mode, and a long list of fixes to streaming, reasoning, layout, and re-render behavior.

Install

npm install @copilotkit/react-core@1.55.3 @copilotkit/react-ui@1.55.3 @copilotkit/runtime@1.55.3

Features

  • Package consolidation: @copilotkitnext/*@copilotkit/* — every @copilotkitnext/* package is folded into its flat @copilotkit/* equivalent. The v1 API surface stays at the package root (e.g. @copilotkit/react-core); the v2 API surface continues to be available via the @copilotkit/react-core/v2 subpath. The @copilotkitnext/* scope was deprecated in 1.54 and is removed here.
  • Multimodal attachments for the built-in agent@copilotkit/runtime now accepts multimodal attachments (images, files, anything non-text) and passes them through to the model with content types preserved. (#3604)
  • A2UI v0.9 + Open Generative UI — A2UI aligns with the v0.9 spec and Open Generative UI lands with BYOC catalogs (the agent renders from your component catalog), built-in dark mode, and sandboxed UI generation (generated components render inside a sandbox instead of being spliced into the host tree). (#3588)
  • Fetch-based runtime handler@copilotkit/runtime exposes a fetch-based handler alongside the Node/Hono integrations, plus a consistency pass on public function names. Targets Cloudflare Workers, Vercel Edge, and other Web fetch runtimes. (#3550)
  • BuiltInAgent factory mode — the built-in agent now supports a factory construction path, so you can pass your own LLM-producing factory and decouple the agent from the providers baked in today. Landed in 1.55.2. (#3572)
  • Auto-detected runtime transport@copilotkit/core and @copilotkit/react-core now detect REST vs. single-endpoint transport from the runtime and adapt automatically. (#3601)
  • Vertex AI provider — first-class provider on the runtime.
  • State streaming LangGraph middleware re-exported — re-exported directly from @copilotkit/runtime so callers no longer have to reach into @ag-ui/* to wire it up. (#3473)
  • Custom mcpClients configuration — pass your own MCP client configuration to the runtime to control how tool providers connect and reuse. (#3493)

Runtime fixes (@copilotkit/runtime)

  • Reasoning lifecycle hardening — keeps the AG-UI reasoning event stream well-formed regardless of SDK behavior: skip empty reasoning deltas (which violate the @ag-ui/core schema), auto-close reasoning when the SDK omits reasoning-end (covers consecutive-start, phase changes, aborts, errors, and fallback paths), make reasoning-end idempotent, regenerate reasoningMessageId between consecutive reasoning blocks, and close reasoning in the outer catch block. (#3526)
  • Race condition dropping agent runsRunHandler.runAgent() had a race that could drop runs invoked in quick succession. Closed. (#3514)
  • Empty tool arguments no longer crash — tool calls with empty, null, or undefined argument strings were throwing a JSON parse error instead of being treated as the logically empty object they represent. The runtime now normalizes them to {}. (#3439)
  • Open-generative-ui middleware import fix — corrects an incorrect import in the open-generative-ui middleware that surfaced after the consolidation. Shipped in 1.55.1. (#3680)

React fixes (@copilotkit/react-core, @copilotkit/react-ui)

  • messageView and labels props stabilizedCopilotChat was re-rendering the entire message list on every keystroke because prop identity was shifting. Replaced with useShallowStableRef to keep references stable. (#3646)
  • Multiple CopilotChat instances no longer share state across threadIds — two chats mounted at different threads were sharing message state. Per-thread agent instances are now isolated. (#3525)
  • Markdown components ref stabilized — the Markdown component ref was changing every render, cascading into unnecessary work during streaming. Stabilized. (#3535)
  • Assistant text preserved across multi-tool turns — when an assistant turn emitted text plus multiple tool calls, the text portion could get dropped. Preserved correctly now (CPK-7154). (#3622)
  • Chat layout regressions from 1.55.0 fixed — the chat input is pinned to the bottom of the window again, and mounting CopilotSidebar no longer adds empty space below the page content. (#3759)
  • React keys on CopilotMessages children — suppresses the "unique key prop" warning React was emitting.
  • defaultOpen={false} respected in CopilotSidebar and CopilotPopup — the prop was being ignored on initial mount.

Upgrading

  • The @copilotkitnext/* scope is removed in this release. The deprecation notice shipped in v1.54.0.

  • For v2 imports, switch from @copilotkitnext/react to the @copilotkit/react-core/v2 subpath:

    - import { CopilotChat } from "@copilotkitnext/react";
    + import { CopilotChat } from "@copilotkit/react-core/v2";
  • Other @copilotkitnext/* packages map one-to-one to their @copilotkit/* equivalents (e.g. @copilotkitnext/angular@copilotkit/angular).

  • v1 APIs are unchanged. If you were importing v1 hooks from @copilotkit/react-core, nothing changes.

Packages republished at 1.55.3

@copilotkit/runtime, @copilotkit/react-core, @copilotkit/react-ui, @copilotkit/core, @copilotkit/shared, @copilotkit/runtime-client-gql, @copilotkit/sdk-js, @copilotkit/voice, @copilotkit/web-inspector, @copilotkit/a2ui-renderer, @copilotkit/react-textarea, @copilotkit/sqlite-runner, and @copilotkit/angular.