Repository navigation
Upgrade to CopilotKit 1.83 and A2UI 1.0 - #874
Merged
Merged
Conversation
Bumps @copilotkit/react-core, @copilotkit/runtime and @copilotkit/a2ui-renderer from 1.77.0 to 1.83.0 in app, server and toolkit, and @ag-ui/core and @ag-ui/client to the 1.0.2 they require. Two tests assumed 1.77 behavior: - The provider no longer re-renders its consumers once after mount, so the tool-card tests now read the SDK's registry when they ask for a tool instead of when their capture component renders. - "openai/..." models now use Chat Completions when OPENAI_BASE_URL is not an OpenAI or Azure host, as aimock is in tests, and a gpt-5 model's instructions arrive as a developer message there.
A Bot with generative UI on now builds interfaces from the A2UI 1.0 basic components instead of the A2UI 0.9 basic catalog. It's the same 18 components, taken from CopilotKit's standard catalog under their A2UI names, and nothing else from it: the rest stays out until an admin can see and govern it. The browser passes them as the provider's generativeUI prop, still only when the deployment has the capability. The theme points the --a2ui-* variables at OpenBot's own tokens, which switch under .dark themselves. The CSS overrides on the old catalog's inline styles go. The runtime sets generativeUI to the deployment's setting, so an opted-out deployment refuses render_ui even from a client that sends a catalog, and turns the A2UI 0.9 middleware off. Surfaces drawn before this no longer render when a conversation is reopened; the changelog says so.
guidovizoso
requested review from
MikeRyanDev,
davidmckayv,
dustywusty,
mxmzb,
samjulien and
tylerslaton
as code owners
October 28, 2026 19:42
9 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
This upgrades CopilotKit to 1.83 and moves generated interfaces from A2UI 0.9 to A2UI 1.0. A Bot can draw the same components as before: the 18 basic ones (text, images, icons, video, audio, rows, columns, lists, cards, tabs, dividers, dialogs, buttons, checkboxes, text fields, date pickers, choice pickers and sliders).
Two commits:
@copilotkit/react-core,runtimeanda2ui-rendererfrom 1.77.0, and@ag-ui/coreand@ag-ui/clientto the 1.0.2 they require.OPENAI_BASE_URL,openai/...models now use Chat Completions, so a gpt-5 model's instructions arrive as adevelopermessage.generativeUIprop, only when the deployment has generative UI on. It's CopilotKit's standard catalog cut down to the A2UI 1.0 basic components, which it carries under their A2UI names. A test checks the catalog contains exactly those 18.--a2ui-*theme variables point at OpenBot's own tokens, which switch under.darkthemselves, so one theme covers light and dark. The CSS overrides for the old catalog go.generativeUIfromOPENBOT_GENERATIVE_UI, so an opted-out deployment refusesrender_uieven when a client sends a catalog. It also turns the A2UI 0.9 middleware off.The rest of the standard catalog (tables, charts, composites, and so on) stays out until admins can see and govern it.
Old surfaces no longer draw. A2UI 0.9 surfaces from before the upgrade don't draw when a conversation is reopened; the messages around them stay. This is in the changelog's "Before upgrading" list.
The sandboxed HTML path (
openGenerativeUI) is unchanged.Where it runs
Boundary and audit
Changelog
Unreleased: "Generated interfaces use A2UI 1.0" and "CopilotKit 1.83". The "Before upgrading" list is updated.Proof
format:check,lintandtypecheckpass on all 6 packages.bun test ./appfrom the root): 1687 pass, 10 fail.new-bot-sheet.test.tsx. Unmodifiedmainfails the same 10 when the whole suite runs.render_ui, it drew an A2UI 1.0 surface with a name field, a date input and a "Submit trip" button.