Skip to content

Upgrade to CopilotKit 1.77 and AG-UI 1.0 - #750

Merged
davidmckayv merged 1 commit into
mainfrom
david/copilotkit-1-77
Oct 6, 2026
Merged

davidmckayv merged 1 commit into
mainfrom
david/copilotkit-1-77

Conversation

@davidmckayv

Copy link
Copy Markdown
Contributor

Moves OpenBot onto CopilotKit 1.77.0 (from 1.73.1) and AG-UI 1.0. The Intelligence client ships inside @copilotkit/runtime/v2, so this is also OpenBot's side of the latest Intelligence; a managed project needs no change.

Versions

  • @copilotkit/runtime, @copilotkit/react-core, @copilotkit/a2ui-renderer: 1.73.1 → 1.77.0
  • @copilotkit/aimock: 1.39.0 → 1.43.0
  • @ag-ui/core, @ag-ui/client: 0.0.59 → 1.0.1, matching the exact versions runtime 1.77 pins (CopilotKit moved to AG-UI 1.0 in 1.76, #7270). The server now depends on @ag-ui/core directly for @ag-ui/core/schemas.
  • @ag-ui/mastra: 1.1.2 → 1.1.6 (peers >=0.0.58)

@copilotkit/channels-* 0.11.0, which runtime 1.77 depends on, still pins AG-UI 0.0.59, so a second copy remains in the lockfile. That is upstream; OpenBot's own imports all resolve to 1.0.1.

Code changes for AG-UI 1.0

  • Schemas (RunAgentInputSchema, EventSchemas, MessageSchema) now come from @ag-ui/core/schemas.
  • The binary content part is gone. The plan model builds 1.0 image parts directly, so the shim that converted binary parts for the Python endpoint is removed. The end-to-end test that the image reaches the endpoint as an image still passes.
  • Tool message content can be content parts; the hand-off resume reads it as text.
  • TOOL_CALL_RESULT has no error field in 1.0 and validation strips it, so headless tools stop sending one. The refusal remains in the content and on the tool message. Nothing read the event's field.
  • A copilot.test.ts fixture built a remote agent without the standing message every registered agent has; 1.0's client no longer tolerates the resulting undefined message.

Verification

  • typecheck, lint, format and build pass.
  • bun run test:ci against fresh pgvector databases: this branch and origin/main (7229c68) both report 5,924 pass / 13 fail with the identical failing set (local-environment only: agent-bot startup ×3, real-provider learned catalog ×2, Mastra bridge). Before the two fixes above, the branch had two extra failures; both are covered.
  • Live, against managed Intelligence, in the browser: a General Assistant chat streamed its reply; reloading restored the thread from Intelligence; a run opened Hacker News on the Bot's computer and drew a bar chart; Admin → Automatic Learning loaded; /api/capabilities resolved selfHostBanner. No AGUIError or RUN_STARTED errors in the server log or the browser console.

@copilotkit/runtime, react-core and a2ui-renderer move from 1.73.1 to
1.77.0, and @copilotkit/aimock from 1.39.0 to 1.43.0. CopilotKit 1.76
moved onto AG-UI 1.0 and pins @ag-ui/core and @ag-ui/client 1.0.1, so
OpenBot's own imports move to 1.0.1 to match, and @ag-ui/mastra to
1.1.6, whose peers accept it.

AG-UI 1.0 changes three things OpenBot used:
- The zod schemas left the main entry for @ag-ui/core/schemas, which the
  server now depends on directly.
- The binary content part is replaced by image, audio, video and document
  parts with a source. The plan model now builds the image part itself,
  so the shim that converted binary parts for the Python endpoint is gone.
- A tool message's content may be content parts, which the hand-off
  resume now reads as text.

TOOL_CALL_RESULT no longer carries an error field, since 1.0 does not
define one and validation strips it; the refusal stays in the content
and on the tool message. A test fixture that built a remote agent with
no standing message now gives it one, as every registered agent has.
@davidmckayv
davidmckayv merged commit 17831b2 into main Oct 6, 2026
25 checks passed
@davidmckayv
davidmckayv deleted the david/copilotkit-1-77 branch October 6, 2026 22:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant