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 primitivereact-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.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.>@assistant-ui/react@0.14.8unstableinsertNewlineOnTouchEnter on ComposerPrimitive.Input4 changes
Features3
core, react
add
MessagePrimitive.GenerativeUI primitivecore, react
opt-out of auto-unarchive when switching threads
>@assistant-ui/react-google-adk@0.0.11add MessagePrimitive.GenerativeUI primitive2 changes
Features1
core, react
add
MessagePrimitive.GenerativeUI primitive>@assistant-ui/react-ink@0.0.18add file storage adapter2 changes
Features1
react-ink
add file storage adapter
>@assistant-ui/react-langchain@0.0.8add MessagePrimitive.GenerativeUI primitive2 changes
Features1
core, react
add
MessagePrimitive.GenerativeUI primitive>@assistant-ui/react-langgraph@0.14.2add MessagePrimitive.GenerativeUI primitive2 changes
Features1
core, react
add
MessagePrimitive.GenerativeUI primitive>@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.>@assistant-ui/react-native@0.1.17support the children render-prop API on ThreadPrimitive.Messages2 changes
>assistant-stream@0.3.16fix README usage example and clarify wire-format pairing2 changes
>25 maintenance releasesdependency updates and chores
>@assistant-ui/agent-launcher@0.1.5update dependencies1 change
>@assistant-ui/cloud-ai-sdk@0.1.16update dependencies1 change
>@assistant-ui/mcp-docs-server@0.1.32update dependencies1 change
>@assistant-ui/react-a2a@0.2.16update dependencies1 change
>@assistant-ui/react-ag-ui@0.0.32update dependencies1 change
>@assistant-ui/react-ai-sdk@1.3.27update dependencies1 change
>@assistant-ui/react-data-stream@0.12.14update dependencies1 change
>@assistant-ui/react-devtools@1.2.1update dependencies1 change
>@assistant-ui/react-hook-form@0.12.15update dependencies1 change
>@assistant-ui/react-ink-markdown@0.0.17update dependencies1 change
>@assistant-ui/react-lexical@0.2.1update dependencies1 change
>@assistant-ui/react-markdown@0.14.1update dependencies1 change
>@assistant-ui/react-o11y@0.0.15update dependencies1 change
>@assistant-ui/react-opencode@0.2.2update dependencies1 change
>@assistant-ui/react-streamdown@0.3.1update dependencies1 change
>@assistant-ui/react-syntax-highlighter@0.14.1update dependencies1 change
>@assistant-ui/store@0.2.12migrate aui-build from ts.createProgram to tsdown with unbundle: true2 changes
>@assistant-ui/tap@0.5.12migrate aui-build from ts.createProgram to tsdown with unbundle: true2 changes
>@assistant-ui/x-buildutils@0.0.9migrate aui-build from ts.createProgram to tsdown with unbundle: true2 changes
>assistant-cloud@0.1.29update dependencies1 change
>assistant-ui@0.0.93update dependencies1 change
>create-assistant-ui@0.0.56assistant-ui@0.0.931 change
Other1
assistant-ui@0.0.93
>heat-graph@0.0.9update dependencies1 change
>mcp-app-studio@0.7.14update dependencies1 change
>safe-content-frame@0.0.20update dependencies1 change
May 21, 2026
19 releases
>@assistant-ui/core@0.2.4key part fibers by absolute part index1 change
>@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
>@assistant-ui/react@0.14.7render-phase resync of displayed text on part change1 change
>@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.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>@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>@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/reactreact-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.>@assistant-ui/react-langchain@0.0.7parity options + send hooks (toward deprecating react-langgraph)2 changes
>@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>@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 messagesFixes1
>@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>@assistant-ui/x-buildutils@0.0.8include local types/ in typeRoots so x-buildutils itself can resolve its ambient browser-process types1 change
Fixes1
>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
>assistant-stream@0.3.15add JSDoc for assistant stream tool definitions1 change
Docs1
add JSDoc for assistant stream tool definitions
>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 testingresolve 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
>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
>@assistant-ui/react-a2a@0.2.15Update link to a2a overview1 change
Other1
Update link to a2a overview
>@assistant-ui/react-ink-markdown@0.0.16@assistant-ui/react-ink@0.0.171 change
Other1
@assistant-ui/react-ink@0.0.17
>@assistant-ui/react-o11y@0.0.14@assistant-ui/store@0.2.111 change
Other1
@assistant-ui/store@0.2.11
>create-assistant-ui@0.0.55assistant-ui@0.0.921 change
Other1
assistant-ui@0.0.92
May 13, 2026
1 release
>1 maintenance releasedependency updates and chores
>manual-release@0.14.2
No notes.
view on githubMay 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
>@assistant-ui/core@0.2.0Minordrop APIs deprecated in v0.11/v0.121 change
>@assistant-ui/react@0.14.0Minordrop APIs deprecated in v0.11/v0.121 change
>@assistant-ui/react-langgraph@0.14.0Minordrop APIs deprecated in v0.11/v0.121 change
>@assistant-ui/store@0.2.10RenderChildrenWithAccessor no longer misses re-renders when state updates after access2 changes
>25 maintenance releasesdependency updates and chores
>@assistant-ui/mcp-docs-server@0.1.31update dependencies1 change
>@assistant-ui/react-a2a@0.2.14@assistant-ui/core@0.2.01 change
Other1
@assistant-ui/core@0.2.0
>@assistant-ui/react-ag-ui@0.0.29@assistant-ui/core@0.2.01 change
Other1
@assistant-ui/core@0.2.0
>@assistant-ui/react-ai-sdk@1.3.23@assistant-ui/core@0.2.01 change
Other1
@assistant-ui/core@0.2.0
>@assistant-ui/react-data-stream@0.12.13@assistant-ui/core@0.2.01 change
Other1
@assistant-ui/core@0.2.0
>@assistant-ui/react-devtools@1.2.0@assistant-ui/react@0.14.01 change
Other1
@assistant-ui/react@0.14.0
>@assistant-ui/react-google-adk@0.0.10@assistant-ui/core@0.2.01 change
Other1
@assistant-ui/core@0.2.0
>@assistant-ui/react-hook-form@0.12.14@assistant-ui/core@0.2.01 change
Other1
@assistant-ui/core@0.2.0
>@assistant-ui/react-ink@0.0.15@assistant-ui/core@0.2.01 change
Other1
@assistant-ui/core@0.2.0
>@assistant-ui/react-ink-markdown@0.0.14@assistant-ui/core@0.2.01 change
Other1
@assistant-ui/core@0.2.0
>@assistant-ui/react-langchain@0.0.6@assistant-ui/core@0.2.01 change
Other1
@assistant-ui/core@0.2.0
>@assistant-ui/react-lexical@0.2.0@assistant-ui/react@0.14.01 change
Other1
@assistant-ui/react@0.14.0
>@assistant-ui/react-markdown@0.14.0@assistant-ui/react@0.14.01 change
Other1
@assistant-ui/react@0.14.0
>@assistant-ui/react-native@0.1.15@assistant-ui/core@0.2.01 change
Other1
@assistant-ui/core@0.2.0
>@assistant-ui/react-o11y@0.0.13@assistant-ui/store@0.2.101 change
Other1
@assistant-ui/store@0.2.10
>@assistant-ui/react-opencode@0.2.0drop APIs deprecated in v0.11/v0.121 change
>@assistant-ui/react-streamdown@0.3.0@assistant-ui/react@0.14.01 change
Other1
@assistant-ui/react@0.14.0
>@assistant-ui/react-syntax-highlighter@0.14.0@assistant-ui/react@0.14.01 change
Other1
@assistant-ui/react@0.14.0
>@assistant-ui/tap@0.5.11update dependencies1 change
>@assistant-ui/x-buildutils@0.0.7update dependencies1 change
>assistant-stream@0.3.13update dependencies1 change
>assistant-ui@0.0.91update dependencies1 change
>create-assistant-ui@0.0.54assistant-ui@0.0.911 change
Other1
assistant-ui@0.0.91
>heat-graph@0.0.8update dependencies1 change
>mcp-app-studio@0.7.13update dependencies1 change
Apr 30, 2026
3 releases
>@assistant-ui/core@0.1.17enrich composer.attachmentAddError event with typed payload4 changes
>@assistant-ui/react@0.12.28add <MessagePrimitive.GroupedParts> for hierarchical adjacent grouping of message parts1 change
Features1
>@assistant-ui/react-native@0.1.13add <MessagePrimitive.GroupedParts> for hierarchical adjacent grouping of message parts1 change
Features1
Apr 29, 2026
19 releases
>@assistant-ui/core@0.1.16add custom slot to RemoteThreadMetadata and ThreadListItemState5 changes
Fixes4
core
core
show loading state for empty parts children API
>@assistant-ui/react-google-adk@0.0.8add missing DictationAdapter to UseAdkRuntimeOptions2 changes
>@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
>16 maintenance releasesdependency updates and chores
>@assistant-ui/cloud-ai-sdk@0.1.13update dependencies1 change
>@assistant-ui/react@0.12.27update dependencies1 change
>@assistant-ui/react-ai-sdk@1.3.21update dependencies1 change
>@assistant-ui/react-hook-form@0.12.12update dependencies1 change
>@assistant-ui/react-ink-markdown@0.0.12@assistant-ui/core@0.1.161 change
Other1
@assistant-ui/core@0.1.16
>@assistant-ui/react-langchain@0.0.4update dependencies2 changes
>@assistant-ui/react-langgraph@0.13.12update dependencies1 change
>@assistant-ui/react-lexical@0.0.8update dependencies1 change
>@assistant-ui/react-o11y@0.0.12@assistant-ui/store@0.2.91 change
Other1
@assistant-ui/store@0.2.9
>@assistant-ui/react-opencode@0.0.4update dependencies2 changes
>@assistant-ui/store@0.2.9update dependencies1 change
>@assistant-ui/tap@0.5.10update dependencies1 change
>heat-graph@0.0.7update dependencies1 change
>mcp-app-studio@0.7.12update dependencies1 change
>pypi/assistant-stream@0.0.32First assistant-stream release published via this workflow.
First assistant-stream release published via this workflow.
>safe-content-frame@0.0.18update dependencies1 change
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.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
>@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.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
>@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.>@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
>@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
>@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
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.>@assistant-ui/react-lexical@0.0.7unify mention and slash command primitives under UnstableTriggerPopover5 changes
Features1
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
>@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
>@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
>22 maintenance releasesdependency updates and chores
>@assistant-ui/cloud-ai-sdk@0.1.12update dependencies1 change
>@assistant-ui/mcp-docs-server@0.1.30update dependencies1 change
>@assistant-ui/react-a2a@0.2.12update dependencies2 changes
>@assistant-ui/react-ag-ui@0.0.27update dependencies1 change
>@assistant-ui/react-hook-form@0.12.11update dependencies1 change
>@assistant-ui/react-ink@0.0.12update dependencies1 change
>@assistant-ui/react-ink-markdown@0.0.11update dependencies1 change
>@assistant-ui/react-markdown@0.12.11update dependencies1 change
>@assistant-ui/react-native@0.1.12update dependencies1 change
>@assistant-ui/react-o11y@0.0.11@assistant-ui/store@0.2.81 change
Other1
@assistant-ui/store@0.2.8
>@assistant-ui/react-opencode@0.0.3update dependencies1 change
>@assistant-ui/store@0.2.8update dependencies1 change
>@assistant-ui/x-buildutils@0.0.6update dependencies1 change
>assistant-cloud@0.1.27update dependencies1 change
>assistant-stream@0.3.12update dependencies1 change
>assistant-ui@0.0.90update dependencies2 changes
>create-assistant-ui@0.0.53assistant-ui@0.0.901 change
Other1
assistant-ui@0.0.90
>heat-graph@0.0.6update dependencies1 change
>mcp-app-studio@0.7.11update dependencies1 change
>safe-content-frame@0.0.17update dependencies1 change
>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>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 packagesApr 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
>@assistant-ui/cloud-ai-sdk@0.1.11c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@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
>@assistant-ui/mcp-docs-server@0.1.29c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@assistant-ui/react@0.12.25c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@assistant-ui/react-a2a@0.2.11c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@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
>@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
>@assistant-ui/react-data-stream@0.12.11c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@assistant-ui/react-devtools@1.0.6c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@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 status4d2531e: fix(react-google-adk): don't auto-cancel HITL interrupts when user sends a new message
c988db8: chore: update dependencies
>@assistant-ui/react-hook-form@0.12.10c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@assistant-ui/react-ink@0.0.11c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@assistant-ui/react-ink-markdown@0.0.10c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@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
>@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_messagec988db8: chore: update dependencies
8b51ffa: fix(react-langgraph): handle Bedrock tool_call_chunks with null id/name
>@assistant-ui/react-lexical@0.0.6c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@assistant-ui/react-markdown@0.12.9c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@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
>@assistant-ui/react-o11y@0.0.10c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@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
>@assistant-ui/react-streamdown@0.1.10c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@assistant-ui/react-syntax-highlighter@0.12.9c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@assistant-ui/store@0.2.7c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@assistant-ui/tap@0.5.8c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>@assistant-ui/x-buildutils@0.0.5c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>assistant-cloud@0.1.26c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>assistant-stream@0.3.11c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>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
>create-assistant-ui@0.0.52assistant-ui@0.0.891 change
Other1
assistant-ui@0.0.89
>heat-graph@0.0.5c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>mcp-app-studio@0.7.10c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies
>safe-content-frame@0.0.16c988db8: chore: update dependencies1 change
Other1
c988db8: chore: update dependencies