Release history.

Every package release from the assistant-ui monorepo, grouped by day.

May 25, 2026

34 releases

>@assistant-ui/core@0.2.5add MessagePrimitive.GenerativeUI primitive6 changes

Features3

core, react
add MessagePrimitive.GenerativeUI primitive
react-ink
add file storage adapter
core, react
opt-out of auto-unarchive when switching threads

Fixes1

core
replay the latched initialize thread event to late subscribers. ensureInitialized emits initialize once during construction, so a runtime seeded with non-empty messages (e.g. useChatRuntime({ messages }) under useRemoteThreadListRuntime) fired it before the title binder's effect subscribed, and the runEnd → generateTitle wiring was never installed. unstable_on("initialize", ...) now schedules a one-off replay (on a microtask, re-checking the subscription) when the thread has already initialized, mirroring a BehaviorSubject, so late subscribers (the title binder, and ThreadViewport's thread.initialize top-anchor reset) no longer miss it.

Chores1

update dependencies

Other1

relax thread-message-like image validation to accept https:// and blob: URLs (and svg+xml data URIs) alongside base64 data: URIs, so assistant-authored images served from a URL render.
view on github
>@assistant-ui/react@0.14.8unstableinsertNewlineOnTouchEnter on ComposerPrimitive.Input4 changes

Features3

react
unstable_insertNewlineOnTouchEnter on ComposerPrimitive.Input
core, react
add MessagePrimitive.GenerativeUI primitive
core, react
opt-out of auto-unarchive when switching threads

Chores1

update dependencies
view on github
>@assistant-ui/react-google-adk@0.0.11add MessagePrimitive.GenerativeUI primitive2 changes

Features1

core, react
add MessagePrimitive.GenerativeUI primitive

Chores1

update dependencies
view on github
>@assistant-ui/react-ink@0.0.18add file storage adapter2 changes

Features1

react-ink
add file storage adapter

Chores1

update dependencies
view on github
>@assistant-ui/react-langchain@0.0.8add MessagePrimitive.GenerativeUI primitive2 changes

Features1

core, react
add MessagePrimitive.GenerativeUI primitive

Chores1

update dependencies
view on github
>@assistant-ui/react-langgraph@0.14.2add MessagePrimitive.GenerativeUI primitive2 changes

Features1

core, react
add MessagePrimitive.GenerativeUI primitive

Chores1

update dependencies
view on github
>@assistant-ui/react-mcp@0.0.1new package — MCP server configuration and OAuth primitives. Unstyled Radix-style primitives (McpManagerPrimitive, McpServerPrimitive, McpAddFormPrimitive), a tap-backed manager + per-server resource, OAuth (PKCE + DCR) / bearer / none auth modes, and pluggable persistence via MCPLocalStorage / MCPMemoryStorage / MCPCustomStorage.2 changes

Features1

new package — MCP server configuration and OAuth primitives. Unstyled Radix-style primitives (McpManagerPrimitive, McpServerPrimitive, McpAddFormPrimitive), a tap-backed manager + per-server resource, OAuth (PKCE + DCR) / bearer / none auth modes, and pluggable persistence via MCPLocalStorage / MCPMemoryStorage / MCPCustomStorage.

Chores1

update dependencies
view on github
>@assistant-ui/react-native@0.1.17support the children render-prop API on ThreadPrimitive.Messages2 changes

Fixes1

react-native
support the children render-prop API on ThreadPrimitive.Messages

Chores1

update dependencies
view on github
>assistant-stream@0.3.16fix README usage example and clarify wire-format pairing2 changes

Docs1

assistant-stream
fix README usage example and clarify wire-format pairing

Chores1

update dependencies
view on github
>25 maintenance releasesdependency updates and chores
>@assistant-ui/agent-launcher@0.1.5update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/cloud-ai-sdk@0.1.16update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/mcp-docs-server@0.1.32update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-a2a@0.2.16update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-ag-ui@0.0.32update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-ai-sdk@1.3.27update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-data-stream@0.12.14update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-devtools@1.2.1update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-hook-form@0.12.15update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-ink-markdown@0.0.17update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-lexical@0.2.1update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-markdown@0.14.1update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-o11y@0.0.15update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-opencode@0.2.2update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-streamdown@0.3.1update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-syntax-highlighter@0.14.1update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/store@0.2.12migrate aui-build from ts.createProgram to tsdown with unbundle: true2 changes

Build1

x-buildutils
migrate aui-build from ts.createProgram to tsdown with unbundle: true

Chores1

update dependencies
view on github
>@assistant-ui/tap@0.5.12migrate aui-build from ts.createProgram to tsdown with unbundle: true2 changes

Build1

x-buildutils
migrate aui-build from ts.createProgram to tsdown with unbundle: true

Chores1

update dependencies
view on github
>@assistant-ui/x-buildutils@0.0.9migrate aui-build from ts.createProgram to tsdown with unbundle: true2 changes

Build1

x-buildutils
migrate aui-build from ts.createProgram to tsdown with unbundle: true

Chores1

update dependencies
view on github
>assistant-cloud@0.1.29update dependencies1 change

Chores1

update dependencies
view on github
>assistant-ui@0.0.93update dependencies1 change

Chores1

update dependencies
view on github
>create-assistant-ui@0.0.56assistant-ui@0.0.931 change

Other1

assistant-ui@0.0.93
view on github
>heat-graph@0.0.9update dependencies1 change

Chores1

update dependencies
view on github
>mcp-app-studio@0.7.14update dependencies1 change

Chores1

update dependencies
view on github
>safe-content-frame@0.0.20update dependencies1 change

Chores1

update dependencies
view on github

May 21, 2026

19 releases

>@assistant-ui/core@0.2.4key part fibers by absolute part index1 change

Fixes1

core|MessageParts,GroupedParts
key part fibers by absolute part index
view on github
>@assistant-ui/core@0.2.3expose modelName and toolNames in ModelContextState5 changes

Features1

core
expose modelName and toolNames in ModelContextState

Fixes2

guard navigator.clipboard availability and swallow write rejections in ActionBarPrimitive.Copy. Previously, copy clicks in SSR, non-HTTPS contexts, or older browsers without the Clipboard API threw a ReferenceError, and permission-denied rejections surfaced as unhandled promise rejections. The web copyToClipboard implementation in @assistant-ui/react now early-rejects when the API is unavailable, and useActionBarCopy in @assistant-ui/core silently absorbs the rejection so the rest of the UI is unaffected.
core
fire streamCall for already-resolved tool calls observed after the initial snapshot, and promote in-progress tool calls from the initial snapshot once they change. Previously the runtime silently skipped streamCall whenever a tool-call part arrived already-resolved (history reload, thread switch, mid-run resume, PTC sub-call surfacing), forcing fragile render-effect fallbacks. execute stays suppressed for these cases so side effects don't double-run.

Refactors1

hoist MessagePartPrimitiveInProgress to @assistant-ui/core/react so @assistant-ui/react, @assistant-ui/react-ink, and other distributions can share the same implementation. @assistant-ui/react's MessagePartPrimitive.InProgress is unchanged for callers; it now re-exports from core.

Docs1

add JSDoc for core runtime and assistant tool APIs
view on github
>@assistant-ui/react@0.14.7render-phase resync of displayed text on part change1 change

Fixes1

react|useSmooth
render-phase resync of displayed text on part change
view on github
>@assistant-ui/react@0.14.6guard navigator.clipboard availability and swallow write rejections in ActionBarPrimitive.Copy. Previously, copy clicks in SSR, non-HTTPS contexts, or older browsers without the Clipboard API threw a ReferenceError, and permission-denied rejections surfaced as unhandled promise rejections. The web copyToClipboard implementation in @assistant-ui/react now early-rejects when the API is unavailable, and useActionBarCopy in @assistant-ui/core silently absorbs the rejection so the rest of the UI is unaffected.6 changes

Fixes3

guard navigator.clipboard availability and swallow write rejections in ActionBarPrimitive.Copy. Previously, copy clicks in SSR, non-HTTPS contexts, or older browsers without the Clipboard API threw a ReferenceError, and permission-denied rejections surfaced as unhandled promise rejections. The web copyToClipboard implementation in @assistant-ui/react now early-rejects when the API is unavailable, and useActionBarCopy in @assistant-ui/core silently absorbs the rejection so the rest of the UI is unaffected.
useExternalStoreRuntime no longer leaves phantom assistant siblings when the external store swaps a message id between syncs (e.g. AI SDK v6 useChat replacing a client-generated id with a server-provided id mid-stream, surfacing as BranchPicker showing 2/2 on a turn the user never branched). The messages-array sync path now diffs against the previous sync and removes ids that disappeared, matching the messageRepository path's snapshot semantics. Closes #4037.
x-buildutils
include local types/ in typeRoots so x-buildutils itself can resolve its ambient browser-process types

Refactors1

hoist MessagePartPrimitiveInProgress to @assistant-ui/core/react so @assistant-ui/react, @assistant-ui/react-ink, and other distributions can share the same implementation. @assistant-ui/react's MessagePartPrimitive.InProgress is unchanged for callers; it now re-exports from core.

Docs1

add React JSDoc and deprecation notices for primitive and tool APIs

Other1

fix thread initialization timing race which caused scrollToBottomOnInitialize to fail in useLocalRuntime
view on github
>@assistant-ui/react-ag-ui@0.0.31track streaming timing on the run aggregator so useMessageTiming works on AG-UI assistant messages2 changes

Features1

react-ag-ui
track streaming timing on the run aggregator so useMessageTiming works on AG-UI assistant messages

Fixes1

react-ag-ui
preserve arrival order of parts in RunAggregator
view on github
>@assistant-ui/react-ink@0.0.17add StatusBarPrimitive components9 changes

Features8

react-ink
add StatusBarPrimitive components
react-ink
add intra-line highlighting to DiffView replacement lines
react-ink
add LoadingPrimitive for terminal loading states
react-ink
add Status sub-component for terminal-safe attachment status display, and fall back from extensionless filenames to the attachment type in Thumb.
react-ink
add ComposerPrimitive.Queue and QueueItemPrimitive (Text, Remove, Steer)
react-ink
add ComposerPrimitive.Quote, QuoteText, and QuoteDismiss for terminal composer quote parity with @assistant-ui/react
react-ink
harden terminal pressable interactions
react-ink
add MessagePartPrimitive namespace with terminal-safe defaults for image, file, source, reasoning, and data parts.

Fixes1

react-ink
guard Pressable's onPress against the disabled prop independently of isFocused, so disabled reliably blocks key presses even when focus state and the prop disagree.
view on github
>@assistant-ui/react-langchain@0.0.7parity options + send hooks (toward deprecating react-langgraph)2 changes

Features1

react-langchain
parity options + send hooks (toward deprecating react-langgraph)

Chores1

bump @langchain/react peer dependency to ^1.0.2 (v1 useStream API)
view on github
>@assistant-ui/react-langgraph@0.14.1track streaming timing via useLangGraphStreamingTiming so useMessageTiming works on LangGraph assistant messages1 change

Features1

react-langgraph
track streaming timing via useLangGraphStreamingTiming so useMessageTiming works on LangGraph assistant messages
view on github
>@assistant-ui/react-opencode@0.2.1track streaming timing via useOpenCodeStreamingTiming so useMessageTiming works on OpenCode assistant messages2 changes

Features1

react-opencode
track streaming timing via useOpenCodeStreamingTiming so useMessageTiming works on OpenCode assistant messages

Fixes1

react-opencode
make the OpenCode runtime registry recover after React StrictMode cleanup.
view on github
>@assistant-ui/store@0.2.11key Derived scopes by {source, query} so a meta change produces a new client function in the same render pass. Previously a Derived whose query changed (e.g. MessageByIndexProvider whose index prop changed across renders) kept its underlying resource fiber, and the get closure was updated via tapEffectEvent — which lags one commit. During the in-flight render after a meta change, child consumers reading through the derived scope could resolve through the previous closure and read an index the underlying store no longer had. Hashing the meta into the tapResources key forces the fiber to be replaced when meta changes, so the new clientFunction (and the new get) propagates through React context immediately. Also drops the unused dynamic-meta variant (Derived({ getMeta })); use static source/query.2 changes

Fixes1

store
key Derived scopes by {source, query} so a meta change produces a new client function in the same render pass. Previously a Derived whose query changed (e.g. MessageByIndexProvider whose index prop changed across renders) kept its underlying resource fiber, and the get closure was updated via tapEffectEvent — which lags one commit. During the in-flight render after a meta change, child consumers reading through the derived scope could resolve through the previous closure and read an index the underlying store no longer had. Hashing the meta into the tapResources key forces the fiber to be replaced when meta changes, so the new clientFunction (and the new get) propagates through React context immediately. Also drops the unused dynamic-meta variant (Derived({ getMeta })); use static source/query.

Docs1

add JSDoc for useAui, useAuiState, useAuiEvent, AuiIf, and AuiProvider
view on github
>@assistant-ui/x-buildutils@0.0.8include local types/ in typeRoots so x-buildutils itself can resolve its ambient browser-process types1 change

Fixes1

x-buildutils
include local types/ in typeRoots so x-buildutils itself can resolve its ambient browser-process types
view on github
>assistant-cloud@0.1.28allow custom baseUrl with API key auth. Previously the apiKey config branch hard-coded https://backend.assistant-api.com; you can now pass baseUrl to point an apiKey-authenticated AssistantCloud at a self-hosted or staging backend.1 change

Features1

cloud
allow custom baseUrl with API key auth. Previously the apiKey config branch hard-coded https://backend.assistant-api.com; you can now pass baseUrl to point an apiKey-authenticated AssistantCloud at a self-hosted or staging backend.
view on github
>assistant-stream@0.3.15add JSDoc for assistant stream tool definitions1 change

Docs1

add JSDoc for assistant stream tool definitions
view on github
>assistant-ui@0.0.92add a local source override flag --debug-source-root for local CLI template testing4 changes

Features2

add a local source override flag --debug-source-root for local CLI template testing
resolve template UI components from the shared package source

Fixes1

validate create scaffold selector conflicts, respect package managers in add, and refresh CLI README examples

Docs1

refresh assistant-ui skill examples with current model names
view on github
>5 maintenance releasesdependency updates and chores
>@assistant-ui/cloud-ai-sdk@0.1.15assistant-cloud@0.1.281 change

Other1

assistant-cloud@0.1.28
view on github
>@assistant-ui/react-a2a@0.2.15Update link to a2a overview1 change

Other1

Update link to a2a overview
view on github
>@assistant-ui/react-ink-markdown@0.0.16@assistant-ui/react-ink@0.0.171 change

Other1

@assistant-ui/react-ink@0.0.17
view on github
>@assistant-ui/react-o11y@0.0.14@assistant-ui/store@0.2.111 change

Other1

@assistant-ui/store@0.2.11
view on github
>create-assistant-ui@0.0.55assistant-ui@0.0.921 change

Other1

assistant-ui@0.0.92
view on github

May 13, 2026

1 release

>1 maintenance releasedependency updates and chores
>manual-release@0.14.2

May 7, 2026

30 releases

>@assistant-ui/cloud-ai-sdk@0.1.14use ai sdk onFinish event for telemetry status instead of message-shape heuristic2 changes

Fixes1

cloud-ai-sdk
use ai sdk onFinish event for telemetry status instead of message-shape heuristic

Chores1

update dependencies
view on github
>@assistant-ui/core@0.2.0Minordrop APIs deprecated in v0.11/v0.121 change

Chores1

drop APIs deprecated in v0.11/v0.12
view on github
>@assistant-ui/react@0.14.0Minordrop APIs deprecated in v0.11/v0.121 change

Chores1

drop APIs deprecated in v0.11/v0.12
view on github
>@assistant-ui/react-langgraph@0.14.0Minordrop APIs deprecated in v0.11/v0.121 change

Chores1

drop APIs deprecated in v0.11/v0.12
view on github
>@assistant-ui/store@0.2.10RenderChildrenWithAccessor no longer misses re-renders when state updates after access2 changes

Fixes1

RenderChildrenWithAccessor no longer misses re-renders when state updates after access

Chores1

update dependencies
view on github
>25 maintenance releasesdependency updates and chores
>@assistant-ui/mcp-docs-server@0.1.31update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-a2a@0.2.14@assistant-ui/core@0.2.01 change

Other1

@assistant-ui/core@0.2.0
view on github
>@assistant-ui/react-ag-ui@0.0.29@assistant-ui/core@0.2.01 change

Other1

@assistant-ui/core@0.2.0
view on github
>@assistant-ui/react-ai-sdk@1.3.23@assistant-ui/core@0.2.01 change

Other1

@assistant-ui/core@0.2.0
view on github
>@assistant-ui/react-data-stream@0.12.13@assistant-ui/core@0.2.01 change

Other1

@assistant-ui/core@0.2.0
view on github
>@assistant-ui/react-devtools@1.2.0@assistant-ui/react@0.14.01 change

Other1

@assistant-ui/react@0.14.0
view on github
>@assistant-ui/react-google-adk@0.0.10@assistant-ui/core@0.2.01 change

Other1

@assistant-ui/core@0.2.0
view on github
>@assistant-ui/react-hook-form@0.12.14@assistant-ui/core@0.2.01 change

Other1

@assistant-ui/core@0.2.0
view on github
>@assistant-ui/react-ink@0.0.15@assistant-ui/core@0.2.01 change

Other1

@assistant-ui/core@0.2.0
view on github
>@assistant-ui/react-ink-markdown@0.0.14@assistant-ui/core@0.2.01 change

Other1

@assistant-ui/core@0.2.0
view on github
>@assistant-ui/react-langchain@0.0.6@assistant-ui/core@0.2.01 change

Other1

@assistant-ui/core@0.2.0
view on github
>@assistant-ui/react-lexical@0.2.0@assistant-ui/react@0.14.01 change

Other1

@assistant-ui/react@0.14.0
view on github
>@assistant-ui/react-markdown@0.14.0@assistant-ui/react@0.14.01 change

Other1

@assistant-ui/react@0.14.0
view on github
>@assistant-ui/react-native@0.1.15@assistant-ui/core@0.2.01 change

Other1

@assistant-ui/core@0.2.0
view on github
>@assistant-ui/react-o11y@0.0.13@assistant-ui/store@0.2.101 change

Other1

@assistant-ui/store@0.2.10
view on github
>@assistant-ui/react-opencode@0.2.0drop APIs deprecated in v0.11/v0.121 change

Chores1

drop APIs deprecated in v0.11/v0.12
view on github
>@assistant-ui/react-streamdown@0.3.0@assistant-ui/react@0.14.01 change

Other1

@assistant-ui/react@0.14.0
view on github
>@assistant-ui/react-syntax-highlighter@0.14.0@assistant-ui/react@0.14.01 change

Other1

@assistant-ui/react@0.14.0
view on github
>@assistant-ui/tap@0.5.11update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/x-buildutils@0.0.7update dependencies1 change

Chores1

update dependencies
view on github
>assistant-stream@0.3.13update dependencies1 change

Chores1

update dependencies
view on github
>assistant-ui@0.0.91update dependencies1 change

Chores1

update dependencies
view on github
>create-assistant-ui@0.0.54assistant-ui@0.0.911 change

Other1

assistant-ui@0.0.91
view on github
>heat-graph@0.0.8update dependencies1 change

Chores1

update dependencies
view on github
>mcp-app-studio@0.7.13update dependencies1 change

Chores1

update dependencies
view on github

Apr 30, 2026

3 releases

>@assistant-ui/core@0.1.17enrich composer.attachmentAddError event with typed payload4 changes

Features2

enrich composer.attachmentAddError event with typed payload
add <MessagePrimitive.GroupedParts> for hierarchical adjacent grouping of message parts

Fixes1

add typesVersions to support moduleResolution: node

Chores1

drop ./* wildcard export and surface internal attachment status types
view on github
>@assistant-ui/react@0.12.28add <MessagePrimitive.GroupedParts> for hierarchical adjacent grouping of message parts1 change

Features1

add <MessagePrimitive.GroupedParts> for hierarchical adjacent grouping of message parts
view on github
>@assistant-ui/react-native@0.1.13add <MessagePrimitive.GroupedParts> for hierarchical adjacent grouping of message parts1 change

Features1

add <MessagePrimitive.GroupedParts> for hierarchical adjacent grouping of message parts
view on github

Apr 29, 2026

19 releases

>@assistant-ui/core@0.1.16add custom slot to RemoteThreadMetadata and ThreadListItemState5 changes

Features1

add custom slot to RemoteThreadMetadata and ThreadListItemState

Fixes4

core
emit attachmentAddError when no adapter is configured or file type is rejected
core
respect adapter.accept when adding external CreateAttachment
core
show loading state for empty parts children API
core
hoist remote thread runtime binder out of unstable_Provider
view on github
>@assistant-ui/react-google-adk@0.0.8add missing DictationAdapter to UseAdkRuntimeOptions2 changes

Fixes2

react-google-adk
add missing DictationAdapter to UseAdkRuntimeOptions
react-google-adk
preserve file attachment data on the wire
view on github
>@assistant-ui/react-ink@0.0.13rewrite react-ink composer input into a cursor aware terminal editor1 change

Features1

react-ink
rewrite react-ink composer input into a cursor aware terminal editor
view on github
>16 maintenance releasesdependency updates and chores
>@assistant-ui/cloud-ai-sdk@0.1.13update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react@0.12.27update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-ai-sdk@1.3.21update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-hook-form@0.12.12update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-ink-markdown@0.0.12@assistant-ui/core@0.1.161 change

Other1

@assistant-ui/core@0.1.16
view on github
>@assistant-ui/react-langchain@0.0.4update dependencies2 changes

Chores2

update dependencies
update dependencies
view on github
>@assistant-ui/react-langgraph@0.13.12update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-lexical@0.0.8update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-o11y@0.0.12@assistant-ui/store@0.2.91 change

Other1

@assistant-ui/store@0.2.9
view on github
>@assistant-ui/react-opencode@0.0.4update dependencies2 changes

Chores2

update dependencies
update dependencies
view on github
>@assistant-ui/store@0.2.9update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/tap@0.5.10update dependencies1 change

Chores1

update dependencies
view on github
>heat-graph@0.0.7update dependencies1 change

Chores1

update dependencies
view on github
>mcp-app-studio@0.7.12update dependencies1 change

Chores1

update dependencies
view on github
>pypi/assistant-stream@0.0.32First assistant-stream release published via this workflow.

First assistant-stream release published via this workflow.

view on github
>safe-content-frame@0.0.18update dependencies1 change

Chores1

update dependencies
view on github

Apr 24, 2026

31 releases

>@assistant-ui/core@0.1.15add uiComponents option for static and dynamic data renderers10 changes

Features3

react-langgraph
add uiComponents option for static and dynamic data renderers
core
add reload method on ThreadListRuntime and aui.threads that re-invokes the remote adapter's list and refreshes the thread list. Use this after asynchronous auth (e.g. OIDC, better-auth) completes to recover from an initial load that ran before the authenticated user was available. A generation counter ensures a mid-flight response from a superseded load cannot overwrite a newer reload's state.
core
let runtimes provide an explicit isRunning that overrides the last-message-status heuristic. ExternalStoreAdapter.isRunning now flows through to thread.isRunning directly, so applications can keep the thread in a running state even after the last assistant message has completed (e.g. while non-message stream chunks like suggestions, step-finish, or metadata updates are still arriving). When a runtime does not provide isRunning, the previous last-message-based behavior is preserved.

Fixes4

core
edit composer no longer re-injects original file parts when user message attachments are modified. Non-text content parts on user messages are lifted into _attachments so attachment removals take effect and files aren't duplicated on resend; non-user messages keep the existing content pass-through.
useExternalStoreRuntime now correctly initializes mainThreadId, threadIds, and archivedThreadIds from the adapter on first render. Previously they stayed at DEFAULT_THREAD_ID until the user switched threads, so isMain was false on initial load. Closes #2577.
core
switchToThread could duplicate a thread or leave it in both threadIds and archivedThreadIds when it raced with list. Both arrays are now filtered before the status-keyed append, matching the updateStatusReducer pattern.
useAISDKRuntime now throws when the supplied ThreadHistoryAdapter omits withFormat, instead of silently dropping all history load/append/update calls. The optional-call chain historyAdapter.withFormat?.(…).load previously short-circuited to undefined. The withFormat-wrapped adapter is now memoized, and the persist effect short-circuits when no adapter is supplied (avoiding a redundant thread subscription). ThreadHistoryAdapter.withFormat gains a JSDoc note clarifying that it is required on the AI SDK path.

Refactors1

unify mention/slash under behavior sub-primitives; delete Mention/SlashCommand aliases and the execute field on Unstable_TriggerItem; split TriggerPopoverResource; rename react-lexical MentionNode/MentionPlugin/MentionChipProvider/mentionChip prop to DirectiveNode/DirectivePlugin/DirectiveChipProvider/directiveChip; fix IME/Unicode/copy-paste/undo bugs. Breaking (Unstable_ APIs): replace onSelect={{type:"insertDirective",formatter}} with <Unstable_TriggerPopover.Directive formatter={...}>; replace onSelect={{type:"action",handler}} with <Unstable_TriggerPopover.Action onExecute={...}>. Rename unstable_useToolMentionAdapter → unstable_useMentionAdapter with new items/categories/includeModelContextTools options. unstable_useSlashCommandAdapter now returns { adapter, action } — execute stays in the hook closure instead of on the item. Rename CSS class aui-mention-chip → aui-directive-chip and attributes data-mention-* → data-directive-*.

Chores2

update dependencies
remove decorative separator comments across packages
view on github
>@assistant-ui/react@0.12.26add reload method on ThreadListRuntime and aui.threads that re-invokes the remote adapter's list and refreshes the thread list. Use this after asynchronous auth (e.g. OIDC, better-auth) completes to recover from an initial load that ran before the authenticated user was available. A generation counter ensures a mid-flight response from a superseded load cannot overwrite a newer reload's state.8 changes

Features2

core
add reload method on ThreadListRuntime and aui.threads that re-invokes the remote adapter's list and refreshes the thread list. Use this after asynchronous auth (e.g. OIDC, better-auth) completes to recover from an initial load that ran before the authenticated user was available. A generation counter ensures a mid-flight response from a superseded load cannot overwrite a newer reload's state.
unify mention and slash command primitives under Unstable_TriggerPopover

Fixes3

add render prop support to dropdown menu primitives
process dropped attachments in parallel
composer
sync mouse hover with keyboard highlight in TriggerPopover. Items and categories now update highlightedIndex on mouse move, keeping data-highlighted, aria-selected, and aria-activedescendant consistent with the hovered element. A new highlightIndex(index) method is exposed on the popover scope. Closes #3868.

Refactors1

unify mention/slash under behavior sub-primitives; delete Mention/SlashCommand aliases and the execute field on Unstable_TriggerItem; split TriggerPopoverResource; rename react-lexical MentionNode/MentionPlugin/MentionChipProvider/mentionChip prop to DirectiveNode/DirectivePlugin/DirectiveChipProvider/directiveChip; fix IME/Unicode/copy-paste/undo bugs. Breaking (Unstable_ APIs): replace onSelect={{type:"insertDirective",formatter}} with <Unstable_TriggerPopover.Directive formatter={...}>; replace onSelect={{type:"action",handler}} with <Unstable_TriggerPopover.Action onExecute={...}>. Rename unstable_useToolMentionAdapter → unstable_useMentionAdapter with new items/categories/includeModelContextTools options. unstable_useSlashCommandAdapter now returns { adapter, action } — execute stays in the hook closure instead of on the item. Rename CSS class aui-mention-chip → aui-directive-chip and attributes data-mention-* → data-directive-*.

Chores2

update dependencies
remove decorative separator comments across packages
view on github
>@assistant-ui/react-ai-sdk@1.3.20request body id in useChatRuntime is now the real thread id instead of the literal "DEFAULTTHREADID". AssistantChatTransport was resolving remoteId from the inner ExternalStoreThreadListRuntimeCore (which only echoes its default id); it now uses the outer RemoteThreadListRuntimeCore that actually calls the adapter.3 changes

Fixes2

request body id in useChatRuntime is now the real thread id instead of the literal "DEFAULT_THREAD_ID". AssistantChatTransport was resolving remoteId from the inner ExternalStoreThreadListRuntimeCore (which only echoes its default id); it now uses the outer RemoteThreadListRuntimeCore that actually calls the adapter.
useAISDKRuntime now throws when the supplied ThreadHistoryAdapter omits withFormat, instead of silently dropping all history load/append/update calls. The optional-call chain historyAdapter.withFormat?.(…).load previously short-circuited to undefined. The withFormat-wrapped adapter is now memoized, and the persist effect short-circuits when no adapter is supplied (avoiding a redundant thread subscription). ThreadHistoryAdapter.withFormat gains a JSDoc note clarifying that it is required on the AI SDK path.

Chores1

update dependencies
view on github
>@assistant-ui/react-google-adk@0.0.7return the ADK session id as remoteId from createAdkSessionAdapter.initialize. Previously the input threadId (an internal LOCALID) was returned, so later delete(remoteId) calls hit /sessions/LOCALID and 404'd — masked by the adapter's tolerated 404 on delete.2 changes

Fixes1

react-google-adk
return the ADK session id as remoteId from createAdkSessionAdapter.initialize. Previously the input threadId (an internal __LOCALID_*) was returned, so later delete(remoteId) calls hit /sessions/__LOCALID_* and 404'd — masked by the adapter's tolerated 404 on delete.

Chores1

update dependencies
view on github
>@assistant-ui/react-langchain@0.0.3add useLangChainState<T>(key) hook to read arbitrary LangGraph custom state keys (e.g. todos, files) from the current thread, mirroring upstream useStream.values[key].2 changes

Features1

add useLangChainState<T>(key) hook to read arbitrary LangGraph custom state keys (e.g. todos, files) from the current thread, mirroring upstream useStream.values[key].

Chores1

update dependencies
view on github
>@assistant-ui/react-langgraph@0.13.11add uiComponents option for static and dynamic data renderers8 changes

Features4

react-langgraph
add uiComponents option for static and dynamic data renderers
add unstable_createLangGraphStream helper that builds a stream callback for useLangGraphRuntime with config.abortSignal and onDisconnect: "cancel" wired to client.runs.stream.
add unstable_threadListAdapter option to useLangGraphRuntime for backing the thread list with a custom RemoteThreadListAdapter (e.g. one backed by client.threads.search) without requiring assistant-cloud
expose subgraph (namespaced) events to useLangGraphRuntime / useLangGraphMessages callers. onMessageChunk now receives a namespace field in tupleMetadata for pipe-namespaced messages|<subgraph> events, and three new eventHandlers are available: onSubgraphValues(namespace, values), onSubgraphUpdates(namespace, updates), and onSubgraphError(namespace, error). Previously values|<ns> and updates|<ns> events were silently dropped, and error|<ns> events could not be attributed to a specific subgraph. Fully additive: top-level onValues / onUpdates / onError behaviour is unchanged (including the existing guarantee that subgraph errors do not mark the parent message as incomplete).

Fixes3

set thread.isLoading during load handler in useLangGraphRuntime
prevent duplicate "Used tool" cards when LangGraph emits tool_call_chunks with an empty id followed by a chunk with the real id at the same index. appendLangChainChunk now also merges by index when either side has an empty id, and the resulting entry keeps whichever id is non-empty. As a defense-in-depth, convertLangChainMessages also synthesizes a stable lc-toolcall-${messageId}-${index} id when a tool_call still arrives at the converter with an empty id.
tool call status briefly flickers requires-action (error icon) before settling on complete during LangGraph streaming with subgraphs. The final reconcile now merges the values snapshot with tuple-accumulated state instead of replacing it, so tool results and subgraph-internal messages aren't dropped; metadata survives reconcile; isRunning flips to false atomically with the final message update (via new onComplete callback); and subgraph-level error events (pipe-namespaced) no longer mark parent AI messages as incomplete. Pipe-separated subgraph event names (e.g. messages|tools:call_abc) are now handled by stripping the namespace before matching.

Chores1

update dependencies
view on github
>@assistant-ui/react-lexical@0.0.7unify mention and slash command primitives under UnstableTriggerPopover5 changes

Features1

unify mention and slash command primitives under Unstable_TriggerPopover

Fixes1

lexical composer scroll overflow

Refactors1

unify mention/slash under behavior sub-primitives; delete Mention/SlashCommand aliases and the execute field on Unstable_TriggerItem; split TriggerPopoverResource; rename react-lexical MentionNode/MentionPlugin/MentionChipProvider/mentionChip prop to DirectiveNode/DirectivePlugin/DirectiveChipProvider/directiveChip; fix IME/Unicode/copy-paste/undo bugs. Breaking (Unstable_ APIs): replace onSelect={{type:"insertDirective",formatter}} with <Unstable_TriggerPopover.Directive formatter={...}>; replace onSelect={{type:"action",handler}} with <Unstable_TriggerPopover.Action onExecute={...}>. Rename unstable_useToolMentionAdapter → unstable_useMentionAdapter with new items/categories/includeModelContextTools options. unstable_useSlashCommandAdapter now returns { adapter, action } — execute stays in the hook closure instead of on the item. Rename CSS class aui-mention-chip → aui-directive-chip and attributes data-mention-* → data-directive-*.

Chores2

update dependencies
remove decorative separator comments across packages
view on github
>@assistant-ui/react-streamdown@0.1.11pass memoized code component to streamdown instead of invoking it as a function, and render CodeHeader when no SyntaxHighlighter is configured for a block2 changes

Fixes1

pass memoized code component to streamdown instead of invoking it as a function, and render CodeHeader when no SyntaxHighlighter is configured for a block

Chores1

update dependencies
view on github
>@assistant-ui/tap@0.5.9tapEffectEvent returned a frozen callback in production, breaking consumers that stored the reference externally (e.g. trigger popover plugin registry). Both dev and prod now use the same wrapper that reads the latest callback from the ref at call time — matching the documented "stable reference that always calls the most recent version" contract.3 changes

Fixes1

tapEffectEvent returned a frozen callback in production, breaking consumers that stored the reference externally (e.g. trigger popover plugin registry). Both dev and prod now use the same wrapper that reads the latest callback from the ref at call time — matching the documented "stable reference that always calls the most recent version" contract.

Chores2

update dependencies
remove decorative separator comments across packages
view on github
>22 maintenance releasesdependency updates and chores
>@assistant-ui/cloud-ai-sdk@0.1.12update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/mcp-docs-server@0.1.30update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-a2a@0.2.12update dependencies2 changes

Chores2

update dependencies
remove decorative separator comments across packages
view on github
>@assistant-ui/react-ag-ui@0.0.27update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-hook-form@0.12.11update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-ink@0.0.12update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-ink-markdown@0.0.11update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-markdown@0.12.11update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-native@0.1.12update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/react-o11y@0.0.11@assistant-ui/store@0.2.81 change

Other1

@assistant-ui/store@0.2.8
view on github
>@assistant-ui/react-opencode@0.0.3update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/store@0.2.8update dependencies1 change

Chores1

update dependencies
view on github
>@assistant-ui/x-buildutils@0.0.6update dependencies1 change

Chores1

update dependencies
view on github
>assistant-cloud@0.1.27update dependencies1 change

Chores1

update dependencies
view on github
>assistant-stream@0.3.12update dependencies1 change

Chores1

update dependencies
view on github
>assistant-ui@0.0.90update dependencies2 changes

Chores2

update dependencies
remove decorative separator comments across packages
view on github
>create-assistant-ui@0.0.53assistant-ui@0.0.901 change

Other1

assistant-ui@0.0.90
view on github
>heat-graph@0.0.6update dependencies1 change

Chores1

update dependencies
view on github
>mcp-app-studio@0.7.11update dependencies1 change

Chores1

update dependencies
view on github
>safe-content-frame@0.0.17update dependencies1 change

Chores1

update dependencies
view on github
>tw-glass@0.0.51083599: fix: add "style" export condition for CSS entries so Tailwind CSS v4 @import can resolve packages1 change

Other1

1083599: fix: add "style" export condition for CSS entries so Tailwind CSS v4 @import can resolve packages
view on github
>tw-shimmer@0.4.111083599: fix: add "style" export condition for CSS entries so Tailwind CSS v4 @import can resolve packages1 change

Other1

1083599: fix: add "style" export condition for CSS entries so Tailwind CSS v4 @import can resolve packages
view on github

Apr 13, 2026

33 releases

>33 maintenance releasesdependency updates and chores
>@assistant-ui/agent-launcher@0.1.4c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/cloud-ai-sdk@0.1.11c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/core@0.1.14f20b9ca: feat: add ExportedMessageRepository.fromBranchableArray for constructing branching message trees from ThreadMessageLike messages2 changes

Other2

f20b9ca: feat: add ExportedMessageRepository.fromBranchableArray for constructing branching message trees from ThreadMessageLike messages
c988db8: chore: update dependencies
view on github
>@assistant-ui/mcp-docs-server@0.1.29c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/react@0.12.25c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/react-a2a@0.2.11c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/react-ag-ui@0.0.2643fb4f7: fix(react-ag-ui): preserve user message attachments when converting to AG-UI format2 changes

Other2

43fb4f7: fix(react-ag-ui): preserve user message attachments when converting to AG-UI format
c988db8: chore: update dependencies
view on github
>@assistant-ui/react-ai-sdk@1.3.19c988db8: chore: update dependencies2 changes

Other2

c988db8: chore: update dependencies
a5bce86: fix: preserve latest thread token usage during pending turns
view on github
>@assistant-ui/react-data-stream@0.12.11c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/react-devtools@1.0.6c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/react-google-adk@0.0.6147c1b8: fix(react-google-adk): render user-authored events as human messages4 changes

Other4

147c1b8: fix(react-google-adk): render user-authored events as human messages
9abb15c: fix(react-google-adk): allow HITL interrupt tool UIs to render with requires-action status
4d2531e: fix(react-google-adk): don't auto-cancel HITL interrupts when user sends a new message
c988db8: chore: update dependencies
view on github
>@assistant-ui/react-hook-form@0.12.10c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/react-ink@0.0.11c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/react-ink-markdown@0.0.10c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/react-langchain@0.0.2c988db8: chore: update dependencies2 changes

Other2

c988db8: chore: update dependencies
0ec6bcf: feat: add react-langchain package with useStreamRuntime hook for @langchain/react integration
view on github
>@assistant-ui/react-langgraph@0.13.1001d0dbe: feat(react-langgraph): support LangSmith Generative UI uimessage3 changes

Other3

01d0dbe: feat(react-langgraph): support LangSmith Generative UI ui_message
c988db8: chore: update dependencies
8b51ffa: fix(react-langgraph): handle Bedrock tool_call_chunks with null id/name
view on github
>@assistant-ui/react-lexical@0.0.6c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/react-markdown@0.12.9c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/react-native@0.1.110d2d2f3: fix: export ExportedMessageRepository and ExportedMessageRepositoryItem from react-native2 changes

Other2

0d2d2f3: fix: export ExportedMessageRepository and ExportedMessageRepositoryItem from react-native
c988db8: chore: update dependencies
view on github
>@assistant-ui/react-o11y@0.0.10c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/react-opencode@0.0.2c988db8: chore: update dependencies2 changes

Other2

c988db8: chore: update dependencies
11451c2: feat: initial experimental release of OpenCode runtime adapter
view on github
>@assistant-ui/react-streamdown@0.1.10c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/react-syntax-highlighter@0.12.9c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/store@0.2.7c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/tap@0.5.8c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>@assistant-ui/x-buildutils@0.0.5c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>assistant-cloud@0.1.26c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>assistant-stream@0.3.11c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>assistant-ui@0.0.898d334f9: fix(cli): detect package manager from npmconfiguseragent before falling back to detect-package-manager2 changes

Other2

8d334f9: fix(cli): detect package manager from npm_config_user_agent before falling back to detect-package-manager
c988db8: chore: update dependencies
view on github
>create-assistant-ui@0.0.52assistant-ui@0.0.891 change

Other1

assistant-ui@0.0.89
view on github
>heat-graph@0.0.5c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>mcp-app-studio@0.7.10c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github
>safe-content-frame@0.0.16c988db8: chore: update dependencies1 change

Other1

c988db8: chore: update dependencies
view on github