Release history.
Every package release from the assistant-ui monorepo, grouped by day.
Aug 12, 2026
16 releases
>@assistant-ui/cloud-ai-sdk@0.1.33clear stale thread lists when the Cloud client changes3 changes
>@assistant-ui/core@0.3.13give the composer its draft back when a send never reached the backend. a runtime that rejects onNew with the new MessageNotSentError restores the text, quote, and attachments the composer cleared at dispatch time, as long as nothing has claimed the composer since. that guard and that outcome are the ones cancelRun already applies to a trailing user message, so whichever fires first keeps the composer, and of several drafts queued behind one turn only the most recent is still restorable. an edit composer closes at dispatch, so a rejected edit is not restored.14 changes
Features3
give the composer its draft back when a send never reached the backend. a runtime that rejects
onNew with the new MessageNotSentError restores the text, quote, and attachments the composer cleared at dispatch time, as long as nothing has claimed the composer since. that guard and that outcome are the ones cancelRun already applies to a trailing user message, so whichever fires first keeps the composer, and of several drafts queued behind one turn only the most recent is still restorable. an edit composer closes at dispatch, so a rejected edit is not restored.Fixes11
make a cancelled run move its trailing user message instead of dropping it. the message now leaves the thread only when the composer actually accepts it, so cancelling while a draft is already being written keeps the message in the thread rather than deleting it and handing it back nowhere, and what comes back carries the attachments and quote instead of the text alone. a message carrying content the composer has no home for, such as an image or file part, is left in the thread untouched. adapters keep the existing
setMessages guard: without it the runtime cannot see its own removal survive, so an adapter that removes the cancelled message itself owns handing it back.gate interactable state snapshots at dispatch instead of at enqueue. a message sent while a run is in flight waits in a queue lane but carried the snapshot taken when the user sent it, so a run that landed its own
update_{name} in the meantime was folded over by a stale user-edit version: a full snapshot replaced the model's edit outright, and a partial one merged the older diff on top of it, producing a state that never existed. every send path now stamps exactly once, when the message is dispatched rather than when it is queued. LocalThreadRuntimeCore stamps in _runAppend, the point both the direct send and the queue flush pass through, and ExternalThreadQueueAdapter gained an optional __internal_setDispatchTransform that createMessageQueue implements and ExternalStoreThreadRuntimeCore installs, so a queued message is re-gated against the thread tail it actually lands on. an adapter that does not implement the transform is stamped at enqueue as before.pause an external store's message queue when the user cancels. cancelling left the queue running, so the aborted run's settle dispatched the next pending message at the moment the user pressed Stop; the pending items now survive and the next send drains them, matching what the local runtime does under
unstable_queueClearOnCancel: false and the behaviour that flag becomes once it is removed.stamp interactable state snapshots on every send, not just composer sends. the gate ran in the thread and edit composer cores, so a send that skipped the composer carried
metadata.custom = {}: a Suggestions entry with send goes through thread.append, as does user code calling assistant.thread.append(...). the model then saw an update_{name} tool whose required id is documented as coming from a state snapshot, found no snapshot in the conversation, and could not call the tool at all. gating now runs in BaseThreadRuntimeCore.enrichAppendMetadata, applied by both thread runtime cores on append, deriving the branch prefix from the message's parentId so the previous composer behavior is reproduced exactly (the thread tail for an ordinary send, the edited message's parent for an edit). the remove operation's item id description in generated array-update schemas no longer reuses the instance-addressing wording that told the model each removable list item was an interactable instance.deliver
threadListItem.switchedTo to default-scope listeners (#5699). the thread list item client now emits the switch from its own observed selection transition, after the flush that rebinds the derived scopes, instead of relaying the runtime's synchronous notification. scoped listeners now resolve their scope against the host's current client at delivery time, so a listener subscribed before a structural swap follows the scope's present binding; the notification manager re-reads the listener set at flush time per the documented live-set semantics. listeners that need a pinned instance subscribe on an id-scoped client instead.>@assistant-ui/eve@0.0.13hand a cancelled queued send back to the composer instead of dropping it. hitting Stop while a message waits behind a streaming turn now restores that message as the composer draft, superseding the 0.0.10 note that cancelling a run drops queued sends. a turn cancelled before it streamed still hands its own message back to the composer first, so the queued one is dropped in that window. cancelled tool approvals are still discarded, and unmounting the runtime still drops whatever is queued.1 change
Fixes1
hand a cancelled queued send back to the composer instead of dropping it. hitting Stop while a message waits behind a streaming turn now restores that message as the composer draft, superseding the 0.0.10 note that cancelling a run drops queued sends. a turn cancelled before it streamed still hands its own message back to the composer first, so the queued one is dropped in that window. cancelled tool approvals are still discarded, and unmounting the runtime still drops whatever is queued.
>@assistant-ui/react@0.15.14give the composer its draft back when a send never reached the backend. a runtime that rejects onNew with the new MessageNotSentError restores the text, quote, and attachments the composer cleared at dispatch time, as long as nothing has claimed the composer since. that guard and that outcome are the ones cancelRun already applies to a trailing user message, so whichever fires first keeps the composer, and of several drafts queued behind one turn only the most recent is still restorable. an edit composer closes at dispatch, so a rejected edit is not restored.5 changes
Features2
give the composer its draft back when a send never reached the backend. a runtime that rejects
onNew with the new MessageNotSentError restores the text, quote, and attachments the composer cleared at dispatch time, as long as nothing has claimed the composer since. that guard and that outcome are the ones cancelRun already applies to a trailing user message, so whichever fires first keeps the composer, and of several drafts queued behind one turn only the most recent is still restorable. an edit composer closes at dispatch, so a rejected edit is not restored.Fixes3
>@assistant-ui/react-a2a@0.2.29reject synchronous message responses with invalid A2A roles1 change
>@assistant-ui/react-ag-ui@0.0.54round-trip a part's providerMetadata.agui through AG-UI's content metadata. An image or file part, whether it sits on the message or inside an attachment, now reaches the agent with whatever the host put in that namespace, and an inbound item puts it back on the rebuilt part, so a snapshot echo resends it instead of dropping it. A file part's own filename still wins over a key of the same name. Text is unchanged, its AG-UI schema has no metadata field.5 changes
Features1
round-trip a part's
providerMetadata.agui through AG-UI's content metadata. An image or file part, whether it sits on the message or inside an attachment, now reaches the agent with whatever the host put in that namespace, and an inbound item puts it back on the rebuilt part, so a snapshot echo resends it instead of dropping it. A file part's own filename still wins over a key of the same name. Text is unchanged, its AG-UI schema has no metadata field.Fixes4
preserve encrypted-only reasoning records across the AG-UI round trip. Under zero data retention an agent sends a
ReasoningMessage whose readable content is empty and whose payload is entirely in encryptedValue, and both the adapter and the core normalizer dropped it: the import guarded on empty text, and a reasoning part with neither text nor summary is removed by fromThreadMessageLike. Such a record now rides on metadata.custom.agui.opaqueReasoning of the neighbouring message instead of becoming an unrenderable part, and is replayed into the run input adjacent to that message. A record that sat between an assistant message and its own tool result is replayed after that result, since import folds the result into the assistant message and that boundary no longer exists at export. A runtime configured with showThinking: false is affected too: it previously emitted no reasoning records at all, and now emits { role: "reasoning", content: "", encryptedValue } for each imported record that carried a value, since that option hides reasoning from the UI rather than discarding state the agent needs back.keep reasoning, and its signature, across the AG-UI round trip.
toAgUiMessages built the run input from extractText, which reads text parts only, so an imported reasoning-only assistant message was discarded as a blank turn and a live assistant message silently lost its reasoning; reloading a thread and sending one more message deleted the reasoning history from what the agent received. Reasoning parts now leave as the standalone reasoning records they arrived as. The runtime also consumes REASONING_ENCRYPTED_VALUE and stores the blob at providerMetadata.agui.encryptedValue, so reasoning from a live run and from an imported ReasoningMessage are both re-emitted with their signature intact rather than replayed unsigned.>@assistant-ui/react-generative-ui@0.0.14report the depth warning against the 32 levels of element nesting the Slack and Teams converters actually allow, instead of the 64 traversal units that ceiling is spent in7 changes
Fixes7
report the content the Slack and Teams converters were discarding silently. A
ListView or Carousel child that would have rendered, a malformed Select or RadioGroup option, and a table column without a string label all warn dropped now, while a child that renders nothing anyway stays silent. A Slack column without a label also keeps its position now, so the header stays aligned with the data, and a discarded child no longer spends the shared markdown and data-table budgets or reserves a Teams input id that renames a control which survivesreport a reshaped Slack carousel card accurately. The reshape is a
fallback rather than a clamped, since a card holding only text loses nothing; the images, tables, charts, and controls a reshape really does lose are reported separately as dropped; and the title and body are clamped through the warning path instead of being sliced silently>@assistant-ui/react-native@0.1.36respect prevented composer key events1 change
>@assistant-ui/react-pi@0.0.17release event stream readers after completion, cancellation, and errors1 change
Fixes1
>@assistant-ui/store@0.3.9scoped event listeners under a derived-only provider filter against the child's own bindings instead of the parent's, in both directions and through scope-less intermediate hosts3 changes
Fixes3
deliver
threadListItem.switchedTo to default-scope listeners (#5699). the thread list item client now emits the switch from its own observed selection transition, after the flush that rebinds the derived scopes, instead of relaying the runtime's synchronous notification. scoped listeners now resolve their scope against the host's current client at delivery time, so a listener subscribed before a structural swap follows the scope's present binding; the notification manager re-reads the listener set at flush time per the documented live-set semantics. listeners that need a pinned instance subscribe on an id-scoped client instead.>@assistant-ui/tap@0.9.12mountOnSubscribe1 change
>assistant-cloud@0.1.40include archived Cloud threads when requested and preserve archive filters1 change
Fixes1
>assistant-ui@0.0.110clarify malformed package.json errors from the info command1 change
>3 maintenance releasesdependency updates and chores
>@assistant-ui/react-mcp@0.1.12@assistant-ui/core@0.3.131 change
Other1
@assistant-ui/core@0.3.13
>@assistant-ui/react-o11y@0.0.39@assistant-ui/store@0.3.91 change
Other1
@assistant-ui/store@0.3.9
>create-assistant-ui@0.0.73assistant-ui@0.0.1101 change
Other1
assistant-ui@0.0.110
Aug 9, 2026
13 releases
>@assistant-ui/cloud-ai-sdk@0.1.32clear a selected Cloud thread when archiving removes it from the list1 change
>@assistant-ui/core@0.3.12move ExternalThread, SingleThreadList, and the Assistant augmentation namespace into @assistant-ui/core1 change
Refactors1
>@assistant-ui/core@0.3.11name the offending input when an external message converter returns an invalid message3 changes
>@assistant-ui/eve@0.0.12isolate observe-only Eve lifecycle callbacks1 change
>@assistant-ui/react@0.15.13move ExternalThread, SingleThreadList, and the Assistant augmentation namespace into @assistant-ui/core1 change
Refactors1
>@assistant-ui/react-langgraph@0.14.23skip RemoveMessage explicitly in convertLangChainMessages2 changes
>@assistant-ui/react-lexical@0.2.9clear stale composer text when switching to a thread with an empty draft1 change
Fixes1
>@assistant-ui/react-pi@0.0.16isolate runtime error callback failures1 change
>assistant-stream@0.3.37support ioredis 6 alongside 5 in the resumable stream store2 changes
>4 maintenance releasesdependency updates and chores
>@assistant-ui/react@0.15.12drop dependencies that are never imported1 change
>@assistant-ui/react-google-adk@0.0.25drop dependencies that are never imported1 change
>@assistant-ui/react-mcp@0.1.11@assistant-ui/core@0.3.121 change
Other1
@assistant-ui/core@0.3.12
>@assistant-ui/react-mcp@0.1.10@assistant-ui/core@0.3.111 change
Other1
@assistant-ui/core@0.3.11
Aug 8, 2026
55 releases
>@assistant-ui/cloud-ai-sdk@0.1.30clear the selected Cloud thread after deleting it1 change
>@assistant-ui/core@0.3.9route sourceId-carrying edit sends to onEdit instead of the queue adapter, and fail fast on beginEdit without an edit handler1 change
Fixes1
>@assistant-ui/core@0.3.8preserve app-authored reasoning summaries on message parts2 changes
>@assistant-ui/eve@0.0.10serialize eve sends so approvals and sends during an active turn no longer crash or drop messages. Cancelling a run or unmounting the runtime drops sends still queued behind the active turn.1 change
Fixes1
serialize eve sends so approvals and sends during an active turn no longer crash or drop messages. Cancelling a run or unmounting the runtime drops sends still queued behind the active turn.
>@assistant-ui/react@0.15.9feedback adapter support in ExternalThread6 changes
>@assistant-ui/react@0.15.11ExternalThread edit composer reads editing state live, so a same-tick beginEdit + setText + send dispatches the edit; send before beginEdit and double beginEdit now throw (legacy runtime parity)2 changes
>@assistant-ui/react@0.15.10route sourceId-carrying edit sends to onEdit instead of the queue adapter, and fail fast on beginEdit without an edit handler1 change
Fixes1
>@assistant-ui/react-ag-ui@0.0.52send description: "" for a tool registered without one, so RunAgentInput stays valid against the AG-UI schema. previously the key was dropped from the payload entirely and validating servers rejected the run. also types the runAgent call site against the upstream parameters.2 changes
Fixes2
send
description: "" for a tool registered without one, so RunAgentInput stays valid against the AG-UI schema. previously the key was dropped from the payload entirely and validating servers rejected the run. also types the runAgent call site against the upstream parameters.>@assistant-ui/react-data-stream@0.12.25isolate lifecycle callback failures from stream control flow1 change
>@assistant-ui/react-langgraph@0.14.21isolate stream event callback errors1 change
>@assistant-ui/react-lexical@0.2.8support lexical 0.492 changes
>@assistant-ui/react-pi@0.0.15support pi 0.842 changes
>@assistant-ui/react-pi@0.0.14isolate initial subscription callback errors1 change
>@assistant-ui/store@0.3.7createAssistantClient accepts an AssistantConfigSource, re-read in the root render so bindings can deliver config changes (updated element args, added or removed scopes) without remounting surviving scopes2 changes
Features1
Fixes1
answer Vue reactivity introspection probes (
__v_raw, __v_isRef, __v_isReactive, __v_isReadonly, __v_isShallow, __v_skip) on client proxies with undefined instead of an error accessor, so Vue's toRaw/isRef checks and its dev warning formatter no longer throw when a client crosses a Vue boundary>assistant-stream@0.3.35preserve app-authored reasoning summaries on message parts3 changes
Features1
preserve app-authored reasoning summaries on message parts
Fixes2
carry a reasoning summary on the data stream. a reasoning part opened with
unstable_summary previously lost it on that wire, and a summary-only part produced no frames at all, so it never reached the client. the encoder now emits a reasoning part-start frame when there is a summary to carry; a stream that does not use the field is unchanged, and one that does requires a decoder that understands the frame.>40 maintenance releasesdependency updates and chores
>@assistant-ui/agent-launcher@0.1.10update dependencies1 change
>@assistant-ui/cloud-ai-sdk@0.1.31update dependencies1 change
>@assistant-ui/core@0.3.10update dependencies2 changes
>@assistant-ui/eve@0.0.11update dependencies1 change
>@assistant-ui/mcp-docs-server@0.2.1update dependencies1 change
>@assistant-ui/metro@0.0.8update dependencies1 change
>@assistant-ui/next@0.0.15update dependencies1 change
>@assistant-ui/react-a2a@0.2.28update dependencies1 change
>@assistant-ui/react-ag-ui@0.0.53update dependencies1 change
>@assistant-ui/react-ai-sdk@1.4.5update dependencies1 change
>@assistant-ui/react-data-stream@0.12.26update dependencies1 change
>@assistant-ui/react-devtools@1.2.13update dependencies1 change
>@assistant-ui/react-generative-ui@0.0.13update dependencies1 change
>@assistant-ui/react-google-adk@0.0.24update dependencies1 change
>@assistant-ui/react-hook-form@0.12.27update dependencies1 change
>@assistant-ui/react-ink@0.0.37update dependencies1 change
>@assistant-ui/react-ink-markdown@0.0.36update dependencies1 change
>@assistant-ui/react-langchain@0.0.25update dependencies1 change
>@assistant-ui/react-langgraph@0.14.22update dependencies1 change
>@assistant-ui/react-markdown@0.14.10update dependencies1 change
>@assistant-ui/react-mcp@0.1.9update dependencies1 change
>@assistant-ui/react-mcp@0.1.8@assistant-ui/core@0.3.91 change
Other1
@assistant-ui/core@0.3.9
>@assistant-ui/react-mcp@0.1.7assistant-stream@0.3.351 change
Other1
assistant-stream@0.3.35
>@assistant-ui/react-native@0.1.35update dependencies2 changes
>@assistant-ui/react-o11y@0.0.38update dependencies1 change
>@assistant-ui/react-o11y@0.0.37@assistant-ui/store@0.3.71 change
Other1
@assistant-ui/store@0.3.7
>@assistant-ui/react-opencode@0.2.18update dependencies1 change
>@assistant-ui/react-streamdown@0.3.10update dependencies1 change
>@assistant-ui/react-syntax-highlighter@0.14.5update dependencies1 change
>@assistant-ui/store@0.3.8update dependencies1 change
>@assistant-ui/tap@0.9.11update dependencies1 change
>@assistant-ui/vite@0.0.12update dependencies1 change
>@assistant-ui/x-buildutils@0.0.22update dependencies1 change
>@assistant-ui/x-generative-compiler@0.0.12update dependencies1 change
>assistant-cloud@0.1.39update dependencies1 change
>assistant-stream@0.3.36update dependencies1 change
>assistant-ui@0.0.109update dependencies1 change
>create-assistant-ui@0.0.72assistant-ui@0.0.1091 change
Other1
assistant-ui@0.0.109
>heat-graph@0.0.15update dependencies1 change
>safe-content-frame@0.0.27update dependencies1 change
Aug 6, 2026
23 releases
>@assistant-ui/core@0.3.6AuiProvider extends/config grammar. config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.5 changes
Features2
AuiProvider extends/config grammar.
config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.Fixes3
accept all valid image data URLs in sanitizeImageContent instead of a hardcoded format list
>@assistant-ui/eve@0.0.8export toEveInputResponse from the package barrel for custom approval flows5 changes
Features1
export toEveInputResponse from the package barrel for custom approval flows
Fixes4
render connector authorization parts and map auth-suspended turns to requires-action
convert inbound eve file parts instead of dropping them
reconcile staged messages with live session updates and promote staged prefixes on reload
map cancelled and failed turns to terminal message statuses instead of a permanent running state
>@assistant-ui/metro@0.0.7AuiProvider extends/config grammar. config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.1 change
Features1
AuiProvider extends/config grammar.
config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.>@assistant-ui/next@0.0.14only run the use-generative loader on modules carrying the directive1 change
Fixes1
only run the use-generative loader on modules carrying the directive
>@assistant-ui/react@0.15.5AuiProvider extends/config grammar. config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.10 changes
Features2
AuiProvider extends/config grammar.
config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.Fixes8
allow callers to override the default type="button" on action button primitives
AttachmentPrimitive.Thumb now renders custom children and supports asChild instead of always overriding them with the automatic label
AttachmentPrimitive.Thumb no longer renders a bare "." for extension-less filenames; falls back to the attachment type
ignore Escape during IME composition in ComposerPrimitiveInput so dismissing a composition candidate no longer cancels the composer
defer blob URL revocation in ActionBarPrimitive.ExportMarkdown so the download fetch can start before the URL is revoked
compose SelectionToolbarRoot onMouseDown with composeEventHandlers so user handlers run before preventDefault
>@assistant-ui/react-a2a@0.2.27restore inbound file and audio parts as file message parts instead of text placeholders4 changes
Fixes4
restore inbound file and audio parts as file message parts instead of text placeholders
keep the wire filename on inbound image parts
>@assistant-ui/react-ag-ui@0.0.51add unstableenableMessageQueue so a send during a run is buffered instead of swallowed3 changes
>@assistant-ui/react-generative-ui@0.0.12keep chart strokes crisp under viewBox stretching and stop outlining area baselines1 change
Fixes1
>@assistant-ui/react-google-adk@0.0.22keep ADK stream error events reliable when error callbacks fail1 change
>@assistant-ui/react-hook-form@0.12.26submit forms registered with standard and nested inputs1 change
>@assistant-ui/react-ink@0.0.36AuiProvider extends/config grammar. config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.3 changes
Features2
AuiProvider extends/config grammar.
config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.Fixes1
AttachmentPrimitive.Thumb now renders custom children instead of always overriding them with the automatic label
>@assistant-ui/react-langchain@0.0.24isolate LangChain stream options between thread runtimes1 change
>@assistant-ui/react-langgraph@0.14.20two-lane, placement-aware message queue with steer-by-default mid-run sends1 change
Features1
>@assistant-ui/react-mcp@0.1.4AuiProvider extends/config grammar. config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.3 changes
Features1
AuiProvider extends/config grammar.
config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.Fixes2
>@assistant-ui/react-native@0.1.34AuiProvider extends/config grammar. config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.3 changes
Features1
AuiProvider extends/config grammar.
config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.Fixes2
AttachmentPrimitive.Thumb now renders custom children instead of always overriding them with the automatic label
AttachmentPrimitive.Thumb no longer renders a bare "." for extension-less filenames; falls back to the attachment type
>@assistant-ui/react-o11y@0.0.34AuiProvider extends/config grammar. config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.2 changes
Features1
AuiProvider extends/config grammar.
config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.>@assistant-ui/react-pi@0.0.13two-lane, placement-aware message queue with steer-by-default mid-run sends1 change
Features1
>@assistant-ui/react-streamdown@0.3.9merge user rehypePlugins after the security hardening pipeline instead of dropping it2 changes
Fixes2
merge user rehypePlugins after the security hardening pipeline instead of dropping it
preserve Streamdown sanitization extensions with security
>@assistant-ui/store@0.3.4AuiProvider extends/config grammar. config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.3 changes
Features3
AuiProvider extends/config grammar.
config={AuiConfig({...})} alone creates a top-level root client; nested providers must pass extends — a client to extend, or null to isolate (dev-enforced). An empty config creates a client extending the extends client; ref exposes the resulting client. The config prop only accepts configs built with AuiConfig(...) (branded type). AssistantRuntimeProvider gains an optional config prop whose scopes are provided alongside the runtime scope. The useAui({...}) extension overload and the AuiProvider value prop are deprecated; value={client} now exposes a client extending the given one (same scopes, new identity) rather than the exact instance. useAui({}) with an empty scope object now mounts a rooted host (so the scope set can grow across renders) instead of a passthrough derived-only client. useAuiState state enumeration (Object.keys/spread) now includes scopes inherited from parent clients, matching in-operator behavior. Clients derived from a hand-built parent (a plain object with subscribe/on) forward scoped on(...) listeners to the parent's on instead of throwing for scopes the parent does not expose.>@assistant-ui/tap@0.9.10add a react-free standalone shim entry and make the react peer optional1 change
Features1
>@assistant-ui/x-buildutils@0.0.21only run the react compiler on tap-dependent packages that declare a react peer, so non-React framework bridges do not gain memo caches that run outside any render the compiler understands1 change
Fixes1
>assistant-stream@0.3.34await resumable reader cleanup during cancellation1 change
>1 maintenance releasedependency updates and chores
>@assistant-ui/react-ink-markdown@0.0.35@assistant-ui/react-ink@0.0.361 change
Other1
@assistant-ui/react-ink@0.0.36
Aug 4, 2026
2 releases
>pypi/assistant-stream@0.0.36add section icons to tap docs sidebar by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/543318 changes
What's Changed
Features3
docs
add section icons to tap docs sidebar by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5433
add docs agent discovery surfaces by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5589
assistant-stream
opt-in heartbeat for DataStreamResponse by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5592
Fixes13
react
render custom children and support asChild in AttachmentPrimitive.Thumb by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5415
react
ignore Escape during IME composition in ComposerPrimitiveInput by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5416
react
allow callers to override default type on action buttons by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5476
ui
replace invalid hsl fade mask colors with color-mix in reasoning by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5467
docs
keep blank code-block lines one line tall by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5465
ui
restore sidebar outline shadows by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5582
react-a2a
restore inbound file and audio parts as file message parts by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5547
react
settle assistant transport runs after finish callback errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5585
ui
drop invalid hsl wrapper from radix sidebar outline shadow by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5469
react-mcp
handle server removal failures by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5587
core
accept all valid image data URLs in sanitizeImageContent by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5484
react-a2a
keep the wire filename on inbound image parts by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5551
react-mcp
serialize custom server persistence by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5591
Docs1
tap
document hooks support matrix and snapshot-throw divergence by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5577
Chores1
python
assistant-stream 0.0.36 by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5595
>pypi/assistant-stream@0.0.35Xulux playground — starter helper agent, usage limits, and template flow by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4417760 changes
What's Changed
Features182
docs
Xulux playground — starter helper agent, usage limits, and template flow by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4417
add Eve runtime adapter by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4455
react-langchain
resume interrupts via useLangChainRespond by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4447
react-langchain
resume parallel interrupts via useLangChainRespondAll by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4462
core
add internal createRuntimeExtras helper for external-store adapters by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4466
core
add onThreadIdChange for managed threadId on remote thread list runtime by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4482
react-ag-ui
expose pending interrupts via createRuntimeExtras hooks by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4485
docs
use Assistant Cloud for Xulux message history and telemetry by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4461
react-ag-ui
add useAgUiSteerAway to steer past interrupts by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4493
cli
rename the langgraph starter template to -t langchain by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4494
react-langchain
regenerate via checkpoint fork by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4448
react-langchain
add useLangChainInterrupts reader for pending interrupts by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4476
react-langchain
render generative UI from graph state by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4503
with-expo
redesign the chat UI and fix the composer stop button by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4509
forward onThreadIdChange through remote thread list adapters by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4515
react-langchain
expose subagent and subgraph discovery hooks by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4516
react-langchain
edit messages via checkpoint fork by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4521
react-ag-ui
restore pending tool-call status on reload by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4538
react-langchain
live generative UI via push_ui_message by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4504
docs
improve Xulux playground handoff and source preview by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4501
improve docs agent readiness by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4536
refine tool call display UI by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4528
react-o11y
add span timeline primitives for trace waterfalls by @samdickson22 in https://github.com/assistant-ui/assistant-ui/pull/4535
react-langchain
expose useStream handle via useLangChainStream by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4523
react
add id-keyed message rendering by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4542
react
add unstable headless composer input bridge by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4545
core
add shared client-side streaming timing primitive by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4548
external-store
add unstable_onBranchChange adapter callback by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4543
react-langchain
attach per-message streaming timing by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4550
redesign interactables API by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4310
re-export unstable interactable helpers from platform barrels by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4577
honor startRun false in staged-capable runtimes by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4591
mcp-docs-server
adopt registerTool API with read-only annotations by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4574
thread-list
make more composable by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4593
react-generative-ui
add react-free ./ir subpath and rebase gen-ui API on it by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4605
mcp-docs-server
expose docs and examples as MCP resources by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4596
react-generative-ui
add closed vocabulary as default GenerativeUILibrary by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4607
react-generative-ui
add ActionRegistry and wire $action dispatch by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4625
mcp-docs-server
add argument completions for docs/examples resources by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4621
mcp-docs-server
add assistantUISearch keyword search tool by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4579
react-ag-ui
restore interrupt status in fromAgUiMessages from persisted metadata by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4615
docs
improve Xulux handoff actions and templates by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4643
docs
keep Xulux active preview context across turns by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4642
add mcp tool name collision validation by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4659
thread-list
accessibility and keyboard navigation support by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4627
support mcp connection timeouts by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4684
support ai sdk mcp connection timeouts by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4687
ui
show upload and error status on attachment tiles by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4693
docs
open Ask AI panel beside the page instead of under the navbar by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4633
docs
restyle Ask AI trigger and speed up panel animation by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4634
docs
add Ask AI chat to the homepage and a ⌘I shortcut by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4635
docs
add panel header and conversation starters to Ask AI by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4636
ui
add caret color and enterKeyHint to composer input by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4695
support disabled mcp toolkit entries by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4665
docs
environment-specific favicons for dev and preview by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4725
support disabled mcp toolkit tools by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4667
ui
render follow-up suggestions in thread by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4694
add onResumeError hook callback for
useChatRuntime by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4672mcp-docs-server
return structuredContent from the tools by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4628
docs
exit showcase zoom on outside click and wheel by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4750
react-ag-ui
steer-away cancels pending client-side tool calls by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4674
react-ink
add standalone TextInput primitive by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4658
ui
add provider logos for model selector by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4703
react-ink
track hunkIndex on parsed diff lines by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4660
cloud
expose CloudAPIError with the HTTP status on failed requests by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4732
ui
client-side search for the thread list by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4726
react-ag-ui
auto-cancel pending client-side tool calls on new message by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4760
core
surface the upload failure reason on failed attachments by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4728
react-data-stream
detect stream protocol from response by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4755
mcp-docs-server
surface doc title and excerpt on assistantUIDocs by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4611
support mcp tool name prefixes by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4675
detect UI message stream protocol header by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4794
add
listResources api for mcp resource listing by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4699react-ai-sdk
export frontend tools type by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4761
react
add compact mode to ComposerPrimitive.Root by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4701
mcp-docs-server
expose playground template tools by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4809
Base UI component variants with style-aware registry by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4817
react
render prop for AssistantModalPrimitive parts by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4818
preserve providerMetadata on text, reasoning, and tool-call message parts by @DLOVRIC2 in https://github.com/assistant-ui/assistant-ui/pull/4806
recognize exported defineToolkit bindings in spreads by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4583
registry
enforce radix/base variant parity at build time by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4829
converge collapsible variants on neutral state selectors by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4831
add Base UI variants for the six radix-importing registry items by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4834
make Base UI the default across docs and templates by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4835
resumable ai-sdk backend registry template and docs cross-links by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4838
assistant-stream
python resumable stream layer by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4840
resolve templates base-first and retire the docs dropdown fork by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4843
react-ai-sdk
support AI SDK v7 by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4654
add header brand assets menu by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4630
add mcp server names to errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4670
docs
move context usage into assistant header and simplify popover by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4810
scope selection toolbar quote regions by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4710
support quote exclusions via data-aui-quote-selectable="false" by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4863
docs
redesign the site header nav panel and buttons by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4864
infer tool args from schemas by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4662
react-ai-sdk
add guard to resumable session storage by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4771
react-ink
render the upload failure message in AttachmentStatus by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4731
docs
sync the header design and float the assistant panel by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4882
extract a shared SSE event decoder into assistant-stream by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4880
enforce api-reference ownership with a CI drift gate by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4850
react-ai-sdk
forward onResumeToolCall to the external store by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4837
react-ag-ui
surface ACTIVITY_SNAPSHOT results on tool parts by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4895
AssistantError taxonomy with severity and display metadata by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4842
plumb serverId through MCP Apps for multi-MCP host routing by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4898
built-in LLM suggestion adapter for local and AI SDK runtimes by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4833
react-ink
export flat Props aliases from the messagePart and statusBar barrels by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4888
react-ink-markdown
declare color, tableTruncate, and tableEllipsis on MarkdownTextProps by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4877
add mcp server names to close errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4671
react-generative-ui
add form and list vocabulary components by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4940
add styled generative ui registry items by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4945
docs
replay Xulux starter responses by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4912
react-lexical
support custom Lexical plugins via children by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4950
react-ink
export attachment Props aliases from the composer and message barrels by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4906
react-native
export attachment Props aliases from the composerand message barrels by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4907
add the generative ui widget gallery and components reference by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4959
react-generative-ui
add a Slack Block Kit outbound converter by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4967
react-mcp
support
listResources pagination by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4970shared agent state hooks for ag-ui and langgraph by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4828
react-generative-ui
add the fromSlackBlocks inbound converter by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4973
eve
require eve 0.24 by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4974
react-lexical
support lexical 0.47 by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4975
react-generative-ui
add a Teams Adaptive Cards outbound converter by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4982
example
prove the chat-to-artifact work panel pattern by @samdickson22 in https://github.com/assistant-ui/assistant-ui/pull/4936
assistant-stream
rename ObjectStream to GorpStream with deprecated aliases by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5061
assistant-stream
migrate gorp delta-tracking into GorpStream by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5063
assistant-stream-py
SSE idle heartbeat, enabled by default (15s) by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5060
assistant-stream-py
port gorp server core and rebase the Python state layer on it by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5062
react
click blank composer space to focus the input by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/5083
add Electron integration guide by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4913
react-pi
map settled and appended events by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5030
ui
polish attachment tile, remove button, and preview dialog by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4983
example
add artifact workbench UX by @samdickson22 in https://github.com/assistant-ui/assistant-ui/pull/4934
cloud
add project-wide thread and message listing to the cloud SDK by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4773
tap
withKey accepts a Resource by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5186
add react native messages flatlist by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4805
eve
require eve 0.27 by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5192
react-lexical
support lexical 0.48 by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5193
react-ai-sdk
expose chat state via runtime extras accessor hooks by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4963
react-pi
support pi 0.82 by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5196
tap
configurableResource by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5194
docs
add collapsible thread history to clone examples by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4858
x-generative-compiler
name both sources in duplicate-tool-name warning by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5210
react-ag-ui
reconstruct mcp.app on restored tool-call parts (#5100) by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5225
tap
drop configurableResource by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5235
external-thread
assistant-transport parity props and composer fixes by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5237
core
per-tool overwrite escape hatch; same-priority tool conflicts throw again by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5263
store
render-bound immutable aui instances by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5270
property API for aui accessors by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5275
drop v0.12-era deprecated APIs for v0.15 + migration guide by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5281
store
opaque client identity via getClientId; drop instance deref by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5282
assistant-stream
python encoder support for file, annotations, and step chunks by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5294
store
optional state view — s.optional.<scope> resolves to undefined when unavailable by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5297
read the nested _meta.ui.resourceUri MCP Apps pointer by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5314
migrate to MCP TypeScript SDK v2 scoped packages by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5316
add pkg.pr.new previews by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4713
react-mcp
form-mode MCP elicitation, list-change refresh, cache config by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5334
react-generative-ui
add ./a2ui subpath (A2UI to UISpec) by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5344
react-ag-ui
render A2UI surfaces from a2ui-surface activity snapshots by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5345
react-mcp
surface elicitation validation and seed drafts from schema defaults by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5342
store
AuiProvider isolation via aui={null}; fixed hook count in useAui by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5367
react-ag-ui
rehydrate A2UI surfaces from restored history by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5352
ui
scroll follow-up suggestion pills with edge fades by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/5147
react-ag-ui
send A2UI actions back over forwardedProps by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5386
make assistant-ui installable in an eve app with eve add by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5397
docs
step-based code slideshow for the tap tutorial by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5398
core
honour a supplied per-part status while the message is running by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5403
react-ai-sdk
map text and reasoning part state onto the per-part status by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5413
react-opencode
project Task child sessions by @nyl199310 in https://github.com/assistant-ui/assistant-ui/pull/5412
core,react-langgraph,react-langchain
sourceType opt-in on file message parts by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5439
docs
open source project index at /oss by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5446
core,react-a2a,react-ag-ui,react-google-adk
honor sourceType "url" in remaining file converters by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5445
react-ai-sdk
support resumable storage updates by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5336
react-opencode
add OpenCodeAttachmentAdapter for native file inputs by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5492
docs
report Core Web Vitals with Vercel Speed Insights by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5508
docs
redesign the landing and packages pages, move onto Base UI by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5514
core
add the in-place refetch contract behind threads.reloadMainThread by @taoche in https://github.com/assistant-ui/assistant-ui/pull/5522
react-langgraph
adopt the in-place refetch capability by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5531
core,react,ui
per-thread run state and thread list rename by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5542
react-google-adk
refetch the session in place for reloadMainThread by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5545
assistant-stream
add opt-in strict=false lenient decoding mode by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5565
assistant-stream
public RunController.flush by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5574
store
AuiProvider extends/config grammar with dev-enforced nesting decision by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5430
Fixes368
react-opencode
restore the type exports trimmed in #4470 by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4472
build-utils
resolve bundled ambient types from hoisted monorepo installs.
docs
drop no-op identity replacements in demo zip path mapping by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4496
tolerate content blocks that omit their declared fields by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4497
react-native
preserve IME composition in the web composer input by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4513
eve
support eve 0.12 by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4518
react-langchain
type-check against the current @langchain SDK by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4519
react-ag-ui
order tool-call parts by parentMessageId by @dkachur1 in https://github.com/assistant-ui/assistant-ui/pull/4533
docs
add assistant-cloud tsconfig path mapping for api-reference by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4526
docs
steps component prose styling by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4540
react-langgraph
count reasoning content blocks in streaming timing by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4554
docs
render search highlights instead of literal <mark> tags by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4547
add tool-fallback button registry dependency by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4556
add shimmer registry dependencies by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4566
add client directives to UI components by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4565
warn about duplicate generative toolkit spread names by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4560
ui
add accessible names to icon-only combobox controls by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4564
add missing registry package dependencies by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4557
registry
declare tw-shimmer dependency for tool-group by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4561
validate registry install metadata by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4571
core
make PartPrimitive.Messages props a discriminated union by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4567
react-langgraph
surface tool-call messages and interrupts from subgraph updates by @serhiizghama in https://github.com/assistant-ui/assistant-ui/pull/4569
avoid false positives in use-generative directive in compiler by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4584
pin Expo example to Babel 7 by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4587
stabilize react api surface snapshot by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4592
improve providerTool duplicate config error via keys by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4590
preserve package imports in aui-build by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4598
split react-generative-ui root export by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4597
align react-generative-ui lockfile range by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4600
stabilize API surface snapshots by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4601
mcp-docs-server
stop bundling unused blog posts by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4575
cli
skip shadcn registry install when --skip-install is passed by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4609
re-export platform context providers by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4580
mcp-docs-server
cap aggregate directory content size by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4578
contain Ask AI drawer scrolling by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4585
name opaque toolkit entries in diagnostics by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4617
react
disable smooth text streaming under prefers-reduced-motion by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4562
restrict Xulux download proxy by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4620
api-surface
stabilize string literal union member order by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4623
name tools in missing toolkit member for debugging by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4610
generative ui action warnings by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4652
improve duplicate generative ui prop warnings by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4645
skip malformed generative ui component nodes by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4653
skip malformed generative ui action types by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4655
turbo-cache
exclude generated output contents from build inputs by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4669
retain model-provided keys during rendering by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4656
validate generative ui imports by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4632
support exported generative ui instances by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4629
redirect docs overview roots by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4685
model-selector
accessibility and keyboard nav by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4682
validate duplicate mcp server ids by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4700
core
fail CloudFileAttachmentAdapter uploads that return an HTTP error status by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4714
clarify mcp oauth callback errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4718
core
log the swallowed CloudFileAttachmentAdapter upload error by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4722
add mcp app host error context by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4723
preserve image media type by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4729
cli
mcp install config error by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4733
react-native
show composer scrollbar at max height by @Gujiassh in https://github.com/assistant-ui/assistant-ui/pull/4708
cli
doctor detects duplicate assistant-ui packages under pnpm by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4727
core
malformed local thread storage by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4741
bound test:types parallelism to avoid memory exhaustion by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4737
react-google-adk
invalid request JSON errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4743
docs
validate pruned Xulux chat messages by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4735
react-data-stream
include current message on request by @GuYounes in https://github.com/assistant-ui/assistant-ui/pull/4740
core
restore composer text and attachments when send upload fails by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4715
preserve direct file parts by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4730
react-ai-sdk
make default attachment adapter work without FileReader via shared core helper by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4650
ignore malformed mcp custom servers by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4690
docs
trap tab focus inside the zoomed homepage demo by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4749
docs
add visible keyboard focus ring to shared tab triggers by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4752
react-ai-sdk
validate frontend tool schemas by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4756
react-langgraph
serialize sends so runs never overlap by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4765
react-langgraph
drop late tool result for an already-answered call by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/4768
cli
update package json errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4772
api-surface
stabilize top-level declaration order by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4788
cli
register with-resumable-stream example for scaffolding by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4720
core
include thread ids in thread list errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4744
react-langgraph
preserve attachments on the user message state by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/4791
ui
scope badge hover styles to interactive anchors by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4784
templates
surface the real error on failed chat requests by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4793
docs
move star count after GitHub icon and add nav spacing by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4780
forward thread messages ref by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4712
cloud
await
initializeAuth auth headers (#4807) by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4807ui
adapt syntax highlighter to light and dark mode by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4782
react-langgraph,react-langchain
emit url file source blocks by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4800
docs
restore Xulux thread shell ownership by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4804
cloud
preserve history attachments by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4754
cloud
handle empty success responses for mutation action by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4811
show pointer cursor on navbar search triggers by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4816
react-devtools
resolve tailwind cli explicitly for windows by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4825
base select popup rendering and dual-flavor docs polish by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4839
react-mcp
validate persisted auth state by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4845
react-ai-sdk
guard converters against missing parts and mediaType by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4648
react-ink
preserve TextInput cursor when a controlled owner corrects an edit by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4770
assistant-stream
accept AI SDK v5+ delta text, source-url, file, and bare lifecycle chunks at the decode boundary by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4854
expose generative ui key in present schema by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4657
ui
let checked flow through props in menu checkbox items by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4859
prevent logo context menu scroll shift by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4860
cli
resolve base ui flavored registry urls in add by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4865
registry
resolve style-aware urls for nested item names by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4869
cloud
guard localStorage access in anonymous auth strategy by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4870
cli
install the quick start from the flavor the initialized project uses by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4868
parse CRLF SSE events in A2A client by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4819
react-google-adk
parse standard sse frames by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4821
ui
hide the context display tooltip arrow via a data slot by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4881
cli
include installed assistant-ui packages in info by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4891
react-langgraph
forward threadId and initialThreadId to the thread list runtime by @serhiizghama in https://github.com/assistant-ui/assistant-ui/pull/4892
docs
raise Xulux prompt preview above canvas by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4897
react-ai-sdk
guard toolOutputConversion against non-string mediaType by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4899
react-google-adk
normalize session api urls by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4893
react-ag-ui
preserve history branches on load by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4776
cli
validate peer dependency ranges with semver by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4886
react-a2a
validate stream response content type by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4905
core
message converter cache invalidation breaks under React Compiler, dropping settled assistant messages from export by @samdickson22 in https://github.com/assistant-ui/assistant-ui/pull/4704
cloud-ai-sdk
preserve mounted state in strict mode by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4921
preserve file data in message conversion by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4923
react-pi
parse standard SSE line endings by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4939
core
keep tool-args key-order caches independent for dotted keys by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4943
assistant-stream
support LF, CRLF, and CR line endings by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4876
assistant-stream
discard unterminated sse frames by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4875
ui
initialize Radix sidebar skeleton width as state by @samdickson22 in https://github.com/assistant-ui/assistant-ui/pull/4918
tap
keep root lifecycle state out of useMemo by @samdickson22 in https://github.com/assistant-ui/assistant-ui/pull/4919
tap
preserve hosted resource fiber state by @samdickson22 in https://github.com/assistant-ui/assistant-ui/pull/4920
react-lexical
forward Delete removes directive chips as one unit by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4952
assistant-stream
accept event stream content type parameters by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4883
react-opencode
propagate SDK response errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4908
core
generate unique attachment ids by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4956
flush unsupported title generation streams by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4957
cli
detect monorepos from workspace root by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4960
core
accept json text attachments by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4961
react-google-adk
normalize direct stream api urls by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4964
tw-shimmer
correct background shimmer speed in firefox by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4966
core
resume the local runtime when a human tool result is falsy by @serhiizghama in https://github.com/assistant-ui/assistant-ui/pull/4969
stop isJSONArray from consuming the array index as recursion depth by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4954
cli
use semver for doctor version checks by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4978
cli
parse scaffold tsconfig as jsonc by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4979
assistant-stream
prevent object stream settlement after cancellation by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4988
cli
include assistant-ui version in info by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4993
cloud
normalize response timestamps by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4998
react-pi
validate event stream content type by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5010
core
handle failed composer appends by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4981
react-google-adk
validate direct stream options by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5011
examples
rotate waterfall collapse chevron when span is collapsed by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5014
cli
sanitize scaffold tsconfigs and surface shadcn install failures by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5013
cli
scaffold voice and interactables examples via the registry by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5021
docs
sandbox hosted artifact previews by @AkhilTrivediX in https://github.com/assistant-ui/assistant-ui/pull/5020
examples
sandbox the with-artifacts preview iframe by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5022
cli
consistent base default for style-less registry resolution by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4990
docs
dual-flavor state selectors and accordion keyframes by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4987
ui
route Base UI model-selector effort keys to cmdk by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4985
react-mcp
validate persisted connection timeouts by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5029
react-google-adk
validate stream response content type by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5031
react-google-adk
validate session api responses by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5032
cli
discover hoisted packages in doctor by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5041
cli
resolve symlinked workspace paths by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5042
react-ai-sdk
persist history for pending tool approvals by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5051
react-pi
validate HTTP response payloads by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5056
react-ai-sdk
skip rewriting unchanged history after each run by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5052
warn on unmapped cloud updates and document the update contract by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5058
core
settle stopped thread runtime starts by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5066
core
detect removed keys in shallow memoized state by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5067
react
defer auto-scroll during top-anchored runs by @Gujiassh in https://github.com/assistant-ui/assistant-ui/pull/5059
react-ai-sdk
close late mcp clients after timeout by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5070
formalize the AI SDK v7 line at 1.4 by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5075
core
isolate voice session listener errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5078
react-a2a
validate send message responses by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5082
react-ai-sdk
serialize history persistence by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5087
core
nested message runtime paths by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5091
react-google-adk
validate artifact api responses by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5092
clean up frame resources by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5096
carry streamed tool-call partial_json onto LangGraph updates-event AIMessage by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5099
react-langgraph
preserve streamed bedrock tool args by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5080
core
mark a cancelled run incomplete when the adapter returns cleanly by @VihaanAgarwal in https://github.com/assistant-ui/assistant-ui/pull/5090
react-ag-ui
preserve MCP host fields in tool results by @samdickson22 in https://github.com/assistant-ui/assistant-ui/pull/5095
react-pi
widen pi-coding-agent peer range to include 0.79.x and 0.80.x by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5023
react-pi
migrate node host to pi 0.80.8+ ModelRuntime API by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5105
react-langgraph
handle queued run failures by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5108
core
handle failed local history loads by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5117
core
generate portable cloud attachment ids by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5120
react
tolerate transient part-type mismatch in part hooks by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5119
mouse pointer on model selector thinking controls by @Nick-Lucas in https://github.com/assistant-ui/assistant-ui/pull/5123
core
preserve part scopes during thread switches by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5127
react-hook-form
keep form context in sync by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5128
assistant-stream
cancel polyfilled iterators on early exit by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5129
assistant-stream
prioritize backend tool results by @Solaris-star in https://github.com/assistant-ui/assistant-ui/pull/5107
core
stop auto-submitting a parse-error result on divergent argsText close by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5132
react-a2a
refresh runtime client on option changes by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5136
assistant-stream
clean up tool abort listeners by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5141
cloud-ai-sdk
preserve async tool callbacks by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5140
react-lexical
delegate Tab to composer input plugins by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/5145
cloud
align thread response contract by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5017
react
preserve top anchor reserve between turns by @Gujiassh in https://github.com/assistant-ui/assistant-ui/pull/5085
react-opencode
import useEffectEvent from use-effect-event ponyfill by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5139
cloud
deduplicate concurrent auth requests by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5157
core
restrict assistant frame messages to the parent window by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5163
react-streamdown
keep inline math that opens with a digit by @SiKreuz in https://github.com/assistant-ui/assistant-ui/pull/5160
core
preserve isOptimistic on user messages in fromThreadMessageLike by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5122
docs
single-flavor xulux demo downloads by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5033
core
apply pending mute after voice setup by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5113
avoid false copy success without a clipboard handler by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5089
keep reasoning auto-scroll after a manual disclosure toggle by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5164
react-pi
isolate shared streams by client by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5111
assistant-stream
isolate resumable stream hooks by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5106
core
support attachments without a File global by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5097
preserve falsy runtime state by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5088
react-ink
tolerate transient part type mismatches by @Gujiassh in https://github.com/assistant-ui/assistant-ui/pull/5133
assistant-stream
guard stream task settlement by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5045
core
settle frame tool calls on dispose by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5081
react-a2a
validate agent card responses by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5115
core
refresh cloud history persistence on client change by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5126
react-pi
isolate event listener errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5040
ui
keyboard activation for radix attachment preview by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4986
core
isolate thread runtime event listener errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5144
react-ink
wrap ThreadListPrimitive.Items rows in ThreadListItemByIndexProvider with keys by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4885
assistant-stream
validate UIMessageStream frames and clear args alias on tool-result by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5155
assistant-stream
validate assistant-transport chunks and drop out-of-range part paths by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5152
react-mcp
close connections completed after unmount by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5150
react-ink
remount windowed Static scrollback on thread switch by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5043
cloud
normalize base urls across auth strategies by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4846
core
serialize local thread storage mutations by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4847
ui
keep radix TabsTrigger asChild inside the primitive by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4984
react-data-stream
report request failures through onError by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4903
react-a2a
forward user attachments and file parts to the wire by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5036
react-a2a
preserve history branches on load by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4968
react
edit controlled assistant-visible inputs by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5168
core
isolate composer runtime event listener errors by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5171
only record firstTokenTime when a text-delta mutates a part by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5174
assistant-stream
validate per-type chunk fields and drop wrong-part-type chunks by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5172
assistant-stream
avoid duplicate initial object stream operations by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5044
docs
restore source-linked package builds by @samdickson22 in https://github.com/assistant-ui/assistant-ui/pull/4994
react-ai-sdk
stale useVercelAIThreadState name in sliceMessagesUntil error by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4948
cloud-ai-sdk
correct README quickstart to render UIMessage parts by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4953
core
preserve optimistic update order by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4958
react-ai-sdk
pass initialized thread id to prepareSendMessagesRequest by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5178
cloud-ai-sdk
retry interrupted history loads by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4872
core
isolate public runtime event listeners by @Gujiassh in https://github.com/assistant-ui/assistant-ui/pull/5177
assistant-stream
dedupe accumulator drop warnings per instance by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5176
tap
create the scheduler MessageChannel lazily by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5181
assistant-stream
guard gorp accumulator path navigation by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5142
core
preserve latest thread switch by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5057
core
keep composer attachments visible while their upload is in flight by @serhiizghama in https://github.com/assistant-ui/assistant-ui/pull/5112
cloud-ai-sdk
retry failed title generation by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4874
cloud-ai-sdk
reset chat state on cloud change by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5134
cloud-ai-sdk
settle disabled thread loading by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5109
tap
implement useMemoCache on tap's React dispatcher by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5182
core
isolate speech synthesis listener errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5137
react-ai-sdk
wait for history before stream resume by @Gujiassh in https://github.com/assistant-ui/assistant-ui/pull/4947
x-generative-compiler
give namespace-import toolkit spreads a specific compile error by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5188
react-ag-ui
apply mcp-apps activity snapshots to restored tool calls by @VihaanAgarwal in https://github.com/assistant-ui/assistant-ui/pull/5110
core
persist LocalRuntime runs paused for tool approval by @serhiizghama in https://github.com/assistant-ui/assistant-ui/pull/5116
assistant-stream
parse UIMessageStream frames with secure-json-parse by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5200
assistant-stream
parse SSE and data-stream frames with secure-json-parse by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5206
core
abort assistant frame tool calls by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5202
tap
stop shipping react-shim declarations the exports map disclaims by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5207
react-native
keep MessagesFlatList following the bottom on viewport shrink by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5212
composer
stop duplicate console.error on attachment-add rejection (#5215) by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5219
core
stabilize cloud thread list adapters by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5224
react
handle file picker attachment errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5227
core
preserve thread-list position when switchToThread fetch settles after list by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5231
assistant-stream
DataStreamChunkDecoder skips blank framing lines by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5236
assistant-transport
mark commands delivered on chunk-less successful runs by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5238
assistant-transport
empty follow-up run no-ops instead of erroring by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5241
assistant-transport
consume parentId once per run by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5240
assistant-transport
onError reads live queue state, not a render snapshot by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5242
assistant-transport
flush commands coalesced into a resume run by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5249
core,store
warn instead of throw on recoverable inconsistencies (port of Athena hardening patches) by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5250
assistant-transport
abort the in-flight run on unmount by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5243
external-thread
validate the adapter accept string on every addAttachment entry point by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5256
external-thread
clearAttachments and reset call adapter.remove for pending attachments by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5257
external-thread
stamp the thread head as parentId on queue-adapter sends by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5259
external-thread
unset optional callbacks throw a capability error naming the missing prop by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5260
external-thread
plumb the attachmentAdapter into edit composers by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5258
core
restore repository duplicate-id throw; dedupe external-store messages at ingestion by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5262
external-thread
merge a failed send back into the draft by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5261
cli
await async command handlers by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5272
tap
useSyncExternalStore retains committed value when snapshot throws by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5274
core
cloud history adapter resolves aui through clientRef at call time by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5279
assistant-stream
PlainTextEncoder emits assistant text only by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5278
assistant-stream
settle the tool-call part on setResponse by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5284
assistant-stream-py
canonicalize assistant-transport encoder wire shape by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5287
core
keep replacement runs cancellable by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5295
react-langgraph
honor RemoveMessage in updates events by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5293
assistant-stream
guard tool-call args append against closed stream by @Solaris-star in https://github.com/assistant-ui/assistant-ui/pull/5296
docs
pass tools client to AssistantRuntimeProvider in Artifacts example by @samdickson22 in https://github.com/assistant-ui/assistant-ui/pull/5299
react-langgraph,react-langchain
forward audio parts and skip data parts by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5223
react-ag-ui
preserve streaming across messages snapshots by @Gujiassh in https://github.com/assistant-ui/assistant-ui/pull/5311
ui
keep ModelSelector popover side stable while filtering by @samdickson22 in https://github.com/assistant-ui/assistant-ui/pull/5300
core
suppress controlled thread id echoes by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5230
react-a2a
forward audio and data parts and handle zero-byte data URLs by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5220
react-ag-ui,react-google-adk
forward audio parts and skip data parts by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5315
react-opencode
wire permissions to standard tool approvals by @nyl199310 in https://github.com/assistant-ui/assistant-ui/pull/5325
react-a2a
cancel streams on early exit by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5302
tap
accept reducer replays below the committed version instead of throwing by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5331
react-pi
isolate event stream error callbacks by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5333
case-insensitive data: scheme in ui kit and devtools preview parsing by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5323
case-insensitive data: URL scheme in parseDataUrl and passthrough gates by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5318
react-mcp
elicitation seam follow-ups from #5339 by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5341
docs
use bot icon for coding agent prompt by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5346
react-mcp
handle custom storage failures by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5347
cloud-ai-sdk
handle finish callback failures by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5351
store
shallow-compare scope meta query instead of spreading deps by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5360
store
derive assistant state proxy from the client via WeakMap by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5355
store
replay-safe initial-data handles in useClientList by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5354
proxy invariant violation in store client/state proxies by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5353
tap
per-scheduler update-depth limit in UpdateScheduler by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5370
react-google-adk
cancel streams on early exit by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5374
tap
throw update-depth error from the scheduling markDirty by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5375
react-mcp
resolve empty elicitation drafts to the unanswered state by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5377
react-generative-ui
narrow convertSurfaceToUISpec return to UIElement by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5383
ui
let defaultOpen decide the reasoning resting state by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5387
react-langgraph
route the values-path reconcile through appendMessage by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5390
tap
re-add deprecated useMemoCache export by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5399
core
reset copied feedback timer by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5404
core
derive group status from member statuses instead of the last member by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5410
cloud
enumerate the attachment content fields aui/v0 persists by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5419
react-langgraph
report loading on initial thread frame by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5428
react-opencode
avoid repeated child session scans by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5431
react-ai-sdk,eve
forward audio parts instead of throwing by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5441
react-langchain,react-langgraph
carry audio through file parts by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5444
ui
handle url file parts in File download and size by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5443
react-ai-sdk
wrap bare base64 file and image payloads in a data url by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5452
react-google-adk
stop mangling file parts with an audio mime type by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5456
react
refresh mcp app resources after host changes by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5432
react-opencode
wrap a file payload that is not a parsable url by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5459
react-ag-ui
convert file parts placed directly in message content by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5461
assistant-stream,react-data-stream
carry a file part filename to the model message by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5463
docs
stop the header star flicker and calm the heatmap by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5460
react-ai-sdk
detect the media type of a bare base64 image by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5466
docs
cover the missing pages in the sitemap by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5475
react-opencode
send image parts as file parts so they reach the model by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5468
docs
index the tap docs everywhere the main docs are indexed by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5478
docs
drop the public cache bypass on the stats pages by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5483
react-ai-sdk,react-opencode
converge the image media type ladder by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5479
react-opencode
align pending message fingerprints by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5480
react-ai-sdk
pass null-body-status responses through the resumable fetch wrapper by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5337
react-ai-sdk
scope resumable stream id storage key per thread by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5332
react-opencode
stop fingerprinting parts the outbound path never sends by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5491
react-opencode
project user file parts as message attachments by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5490
ui
honor file part sourceType in File download and size by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5473
core
prevent removed attachments from reappearing by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5233
docs
center sidebar indent line under section icons by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5434
react-langchain,react-langgraph
surface audio transcripts by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5503
react-langchain,react-langgraph
preserve file attachment filenames by @Gujiassh in https://github.com/assistant-ui/assistant-ui/pull/5504
store
preserve notification state in StrictMode by @nyl199310 in https://github.com/assistant-ui/assistant-ui/pull/5411
core,react
preserve composer draft when suggestion send fires mid-run by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5417
react-pi
isolate thread controller subscribers by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5518
react-opencode
isolate thread controller subscribers by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5520
react-langgraph
make cancelRun a hard stop by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5525
assistant-stream
guard pending tool settlement after cancellation by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5521
assistant-stream
close out tool calls that have no result by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5535
keep a settled tool call distinguishable from an unfinished one by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5537
react-langgraph
preserve sends racing load and cancellation by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5530
safe-content-frame
surface iframe content load errors by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5539
react-langgraph
let cancelRun end a run whose stream hangs by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5543
react-google-adk
keep message ids stable across event replays by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5544
core
handle failed initial thread runtime starts by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5552
cloud
validate anonymous auth token responses by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5555
restore UI Builder runtime context by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5556
keep navbar submenu above banner by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5558
react-data-stream
report cancellation during request setup by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5563
react
skip add-message commands with no supported parts by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5566
core
preserve falsy tool results by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5569
react-a2a
preserve replacement run state by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5570
defer blob URL revocation until after download click by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5420
fall back to attachment type for extension-less filenames in AttachmentThumb by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5421
ui
restore rtl support in the base sidebar flavor by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5474
ui
keep Radix tooltips instant after shadcn replacement (#5575) by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5576
react
compose SelectionToolbarRoot onMouseDown with composeEventHandlers by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5418
Performance6
turbo
restore git-aware build cache inputs by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4738
ui
contain offscreen message rows with content-visibility by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4786
mcp-docs-server
cache docs and examples file listings by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4626
ui
memoize diff parsing and contain offscreen diff files by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4783
react-ink-markdown
memoize markdansi render in MarkdownText by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4867
store
simplify useAui notification plumbing by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5385
Refactors46
docs
split Xulux markdown from shared docs assistant component by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4457
react-langchain
split runtime file and adopt createRuntimeExtras by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4467
react-opencode
adopt createRuntimeExtras and split the runtime file by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4470
react-langgraph
adopt createRuntimeExtras and split the runtime file by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4471
react-a2a
adopt createRuntimeExtras and split accessor hooks/types by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4473
react-pi
adopt createRuntimeExtras and split accessor hooks/types by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4474
react-google-adk
adopt createRuntimeExtras by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4475
react-langgraph
adopt shared streaming timing primitive by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4549
react-ai-sdk
adopt shared streaming timing primitive by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4551
react-opencode
adopt shared streaming timing primitive by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4553
with-mcp
migrate test server to registerTool with read-only annotations by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4604
react-ai-sdk
use addToolOutput instead of deprecated addToolResult by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4651
react-ink
move useTextBuffer beside TextInput by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4767
ui
polish assistant modal motion, elevation, and shape by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4812
ui
single-source the collapsible components across flavors by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4832
move the docs chrome to Base UI and drop stray radix deps by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4841
nest the shadcn trees and make the unmarked alias mean Base UI by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4844
make the unmarked component file the Base UI source by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4873
react-ai-sdk
emit file tool output parts instead of deprecated image-data/file-data by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4902
react-ag-ui
back thread state with MessageRepository by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4938
host the streaming-stable tool-args stringifier in @assistant-ui/core/internal by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4901
assistant-stream
dedupe internal SSE event parsing by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4949
remove dead is-json copy from assistant-stream by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4955
host the shared JSON type guards in @assistant-ui/core/internal by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4971
assistant-stream
single wire protocol (assistant-transport); remove gorp-shaped exports by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5064
react-ag-ui
share interrupt-response validation between submitInterruptResponses and steerAway by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5025
Change externalId to optional in RemoteThreadInitializeResponse by @darreleng in https://github.com/assistant-ui/assistant-ui/pull/5034
share parseDataUrl and httpUrlPattern from core internal by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5039
eve
migrate convertEveMessage onto fromThreadMessageLike by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5183
cloud-ai-sdk
route thread action state writes through a shared commit guard by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5187
tap
single-param ResourceElement by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5190
docs
dedupe base demo sidebar onto CloneThreadShell by @rupic-app[bot] in https://github.com/assistant-ui/assistant-ui/pull/5209
migrate internal source-guard selectors to s.optional by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5304
docs
serve /api/mcp through the v2 web-standard MCP transport by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5320
core
move createRuntimeExtras to the react entry by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5329
store
drop redundant keys memo in useClientLookup by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5361
tap
hoist createTapRoot's scheduler out of dispatch by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5357
tap
shared throwAggregated error helper by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5358
store
single shared InferClientState type by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5356
store
per-facet ValidateClient checks; require error accessor name by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5362
core
make Thread client importExternalState required by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5369
store
local useShallowStable helper, drop tap useMemoCache export by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5368
adopt React's useEffectEvent for latest-client reads by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5312
store
two-mode useAui — pure React for Derived-only hosts, tap root only for root scopes by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5373
store
inline useAui helper hooks by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5380
core
share the media type ladder and wire url between adapters by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5485
Reverts1
"docs: serve the artifacts demo from the deployed with-artifacts example" by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5340
Docs48
update nav and pricing layout by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4459
add the adapter-orchestration convention to AGENTS.md by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4469
add standalone-tool-call grouping key to chain-of-thought sample by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4479
agents
add a general do's and don'ts section by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4483
don't generate api-reference on dev by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4498
minor updates to pi READMEs by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4502
fix speech guide snippet to use AuiIf instead of nonexistent useMessageTTS by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4529
show file parts in user message by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4537
mermaid diagrams by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4437
part-grouping
document flat tool row pattern with GroupedParts by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4541
react-langchain
document per-message metadata and media hooks by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4552
agents
sharpen do/don't and add adapter/build guardrails by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4559
api-ref
regenerate, update classification logic by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4572
react-langchain
reframe react-langgraph comparison as at-parity by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4558
demo
add user editable notepad tool-ui showcasing new interactables API by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4371
add follow-up suggestions component page by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4612
generative ui actions registry by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4638
update mcp apps client example by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4689
clarify frontend tool auto resume by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4709
cli
rename langgraph template to langchain in package READMEs by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4716
add react native markdown rendering docs by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4711
cli
list all supported examples in the create table by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4721
add ChatGPT subscription guide by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4748
add generative ui api reference by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4644
add missing link for react data stream api reference by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4781
rework voice guides into realtime, dictation, and speech story by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4830
use transport instead of removed useChatRuntime({ api }) in guides by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4797
react-ai-sdk
move the resumable streams cross-links into jsdoc by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4849
add mcp tool approval patterns by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4778
add missing migrations page by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4848
point install snippets at the style-aware registry by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4866
document useChatRuntime runtime options in the ai-sdk v7 guide by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4909
fix ai sdk overview link by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4996
fix stale langchain links by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5068
codify the upstream-majors bump doctrine in AGENTS.md by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5077
replace DevTools screenshots with interactive live demos by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5161
mcp-apps
document ag-ui tool result contract by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5114
store
re-parent Derived JSDoc; test(tap): phantom-typed TestFiber by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5199
skills
butflow review policy — approaches, not diffs by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5239
test policy — repro vs contract tests by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5244
property accessor sweep for guides and tap-docs by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5276
serve the artifacts demo from the deployed with-artifacts example by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5338
store
trim AuiIf JSDoc and add a mount/unmount contract test by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5364
store
fix drift against current store source and document s.optional by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5388
explain that only the last message part reports running by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5400
tap
revise tap documentation content by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5402
core,react
deprecate Unstable_AudioMessagePart in favour of file parts by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5447
add runtime thread refetch support by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5567
Styles2
ui
refine cot/tool disclosure motion, contrast & reduced-motion by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4480
docs
refine ChatGPT example to match real ChatGPT UI by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4568
Tests22
react-native
add a vitest suite for the primitives by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4514
react-ai-sdk
cover toolOutputConversion and sliceMessagesUntil by @naamanu in https://github.com/assistant-ui/assistant-ui/pull/4614
api-surface
cover generator union normalizers by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4631
cloud-ai-sdk
exercise the ai v6 leg of the peer union in CI by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5076
core
run compiler-sensitive hooks against built output by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/5028
react-ai-sdk
pin history append retry semantics by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5179
tap
caller-side keying in withKey resource tests by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5189
delete incident repro tests (core, react, assistant-stream) by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5245
cloud-ai-sdk
dedupe unit tests against the contract suite by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5246
assistant-stream, react-streamdown
drop below-seam changeTree tests and export-smoke file by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5247
react-langgraph
dedupe reconcile tests; reframe regression-tagged suites as contracts by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5248
core
reframe regression-tagged titles as contracts by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5251
drop react duplicates of core-owned suites (BaseSubscribable, auiV0Encode) by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5254
fold react legacy-runtime suites into core (shouldContinue, convertExternalMessages, LocalThreadRuntimeCore) by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5255
fold react BaseComposerRuntimeCore suite into core, pruned by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5264
fold react ExternalStoreThreadRuntimeCore suite into core, pruned by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5265
rewrite DataRenderers against the real store, prune react integration suites by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5266
prune framework adapter suites (react-ai-sdk, react-langchain, assistant-stream) by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5267
prune small package suites (cloud, react-pi, react-google-adk, react-a2a, react-data-stream) by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5268
assistant-stream
cross-language interop fixture for assistant-transport by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5289
docs
pin the mcp header-leniency shim contract by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5326
event-path contract tests for tap/store by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5366
CI23
template size metrics gate by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4468
update actions for Node 24 by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4595
check api surface in tests by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4619
clarify template sync only targets minimal template by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4668
use Fable 5 as review model by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4691
claude-review
warn if fable refuses and falls back to opus by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4698
claude-review
change fable review effort to high by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4697
claude-review
fail the job when Claude execution errors by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4719
de-duplicate .turbo cache key between build and test jobs by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4742
temporarily run Claude Code review on Opus 4.8 by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4747
template-metrics
compare against the merge-base instead of a cached baseline by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4853
install root tooling for the template sync check by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4836
fix the template sync install and api-reference drift on main by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4894
skip claude review on bot pushes and scope concurrency to the job by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4900
split app and example builds into a separate job by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4977
re-enable Fable 5 for Claude code review by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/5016
fail claude-review when the run ends without posting the final review by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/5026
claude-review
simplify and improve review prompt by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/5035
claude-review
run reviews on fork PRs via pull_request_target by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/5104
review with Opus 5 at high effort, name the author model in review comment by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/5146
right-size 7 GitHub Actions runners by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5303
merge expo and ink deploy workflows by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5343
scope autofix and claude review to prs targeting main by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5436
Chores41
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/4427
harden CI secret usage by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4453
require maintainer review for CI config by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4454
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/4458
devtools
stop committing the generated panel css by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4499
update dependencies by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4517
add API surface snapshots by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4588
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/4465
update dependencies by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4608
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/4599
update README traction chart by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/4661
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/4624
cap concurrency in root build script by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4736
update README traction chart by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/4745
add okisdev as code owner for CODEOWNERS and api-surface by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4789
update dependencies by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4746
bump TypeScript to v7 by @Kinfe123 in https://github.com/assistant-ui/assistant-ui/pull/4777
update dependencies by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4815
release the ai sdk v7 switch as a patch by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4855
react-ink
delete dead re-export shims and stale local RuntimeAdapterProvider by @ShobhitPatra in https://github.com/assistant-ui/assistant-ui/pull/4878
add @AVGVSTVS96 to CODEOWNERS by @AVGVSTVS96 in https://github.com/assistant-ui/assistant-ui/pull/4827
update dependencies by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/4887
upgrade oxfmt to 0.59 and apply its reformat by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/4976
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/4717
remove @assistant-ui/gorp (migrated into assistant-stream assistant-transport) by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5071
update dependencies by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5079
upgrade oxfmt to 0.60 by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5197
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/5012
enable erasableSyntaxOnly + verbatimModuleSyntax in the shared tsconfig base by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5208
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/5203
add missing changesets for the v0.15 train by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5285
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/5273
drop private @assistant-ui/ui from migrate-optional-selectors changeset by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5305
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/5286
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/5306
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/5392
docs
refresh the model list to the cheapest current models by @okisdev in https://github.com/assistant-ui/assistant-ui/pull/5538
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/5429
update versions by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/5554
update next to 16.3 by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/5571
python
assistant-stream 0.0.35 by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5578
Other21
examples: use latest assistant-ui components in with-chain-of-thought by @ephraimduncan in https://github.com/assistant-ui/assistant-ui/pull/4478
Update README traction chart by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/4530
Track Xulux chat turn outcomes by @vivek100 in https://github.com/assistant-ui/assistant-ui/pull/4603
Revert "fix(cloud): normalize response timestamps" by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5015
python: consolidate on assistant-transport; remove gorp-named module and SSE dialect; rename state container to AssistantState by @Yonom in https://github.com/assistant-ui/assistant-ui/pull/5065
Update README traction chart by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/5072
Update README traction chart by @github-actions[bot] in https://github.com/assistant-ui/assistant-ui/pull/5232
@ephraimduncan made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/4479
@Kinfe123 made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/4536
@naamanu made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/4614
@GuYounes made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/4740
@rupic-app[bot] made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/4768
@DLOVRIC2 made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/4806
@AkhilTrivediX made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/5020
@VihaanAgarwal made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/5090
@Nick-Lucas made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/5123
@Solaris-star made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/5107
@SiKreuz made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/5160
@darreleng made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/5034
@nyl199310 made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/5325
@taoche made their first contribution in https://github.com/assistant-ui/assistant-ui/pull/5522
Aug 3, 2026
32 releases
>@assistant-ui/core@0.3.5handle stopped initial thread runtime starts1 change
>@assistant-ui/core@0.3.4sourceType opt-in on file message parts so attachment adapters can send url/id file references12 changes
Features5
sourceType opt-in on file message parts so attachment adapters can send url/id file references
honor sourceType "url" in a2a, ag-ui, and adk file converters
add the in-place refetch contract behind
threads.reloadMainThread. A runtime opts in with unstable_refetchThread on ThreadRuntimeCore, which an external store supplies through the new ExternalStoreAdapter.onRefetchThread (unrelated to onReload, which re-generates an assistant message) and which surfaces as RuntimeCapabilities.refetchThread, reporting which mechanism a call would take rather than whether it does anything. Runtimes that opt in keep their runtime identity, so composer drafts survive and messages stay rendered while the refetch runs; the rest fall back to remounting the runtime hook. Core does not stop a run in progress before calling the capability: doing that means cancelRun, whose contract is that the user abandoned a send, so it returns the trailing user message to the composer. An implementation owns whatever coordination a concurrent run needs.Fixes5
suggestion trigger with
send no longer overwrites the composer draft while a run is in progress; on runtimes without queue support it now renders disabled mid-run, matching ComposerPrimitive.Send>@assistant-ui/core@0.3.3honour a supplied per-part status while the message is running4 changes
Fixes3
>@assistant-ui/eve@0.0.7forward audio message parts as file parts and skip data parts instead of throwing1 change
Fixes1
>@assistant-ui/react@0.15.4add opt-in strict: false mode that reconciles malformed stream input instead of throwing (decoders, state accumulator); assistant-transport resume runs always decode leniently2 changes
>@assistant-ui/react@0.15.3sourceType opt-in on file message parts so attachment adapters can send url/id file references7 changes
Features3
sourceType opt-in on file message parts so attachment adapters can send url/id file references
Fixes3
suggestion trigger with
send no longer overwrites the composer draft while a run is in progress; on runtimes without queue support it now renders disabled mid-run, matching ComposerPrimitive.Send>@assistant-ui/react@0.15.2enumerate the attachment content fields the aui/v0 encoder persists so per-part status stays out of the stored shape2 changes
>@assistant-ui/react-a2a@0.2.26honor sourceType "url" in a2a, ag-ui, and adk file converters1 change
Features1
honor sourceType "url" in a2a, ag-ui, and adk file converters
>@assistant-ui/react-ag-ui@0.0.50honor sourceType "url" in a2a, ag-ui, and adk file converters2 changes
Features1
honor sourceType "url" in a2a, ag-ui, and adk file converters
>@assistant-ui/react-ai-sdk@1.4.4resume stream ids discovered after the chat runtime mounts9 changes
Features2
Fixes6
pass null-body-status responses through the resumable fetch wrapper instead of reconstructing them, avoiding a
TypeError on WebKit when a 204/205/304 carries a non-null empty body>@assistant-ui/react-ai-sdk@1.4.3map AI SDK text and reasoning part state onto the per-part status1 change
Features1
map AI SDK text and reasoning part state onto the per-part status
>@assistant-ui/react-data-stream@0.12.24report cancellations that occur while resolving request options1 change
>@assistant-ui/react-data-stream@0.12.23carry a file part's filename through to the model message1 change
>@assistant-ui/react-google-adk@0.0.21honor sourceType "url" in a2a, ag-ui, and adk file converters4 changes
>@assistant-ui/react-langchain@0.0.23sourceType opt-in on file message parts so attachment adapters can send url/id file references4 changes
Features1
sourceType opt-in on file message parts so attachment adapters can send url/id file references
Fixes3
>@assistant-ui/react-langgraph@0.14.19sourceType opt-in on file message parts so attachment adapters can send url/id file references9 changes
Features2
sourceType opt-in on file message parts so attachment adapters can send url/id file references
register
onRefetchThread, so threads.reloadMainThread refetches in place instead of remounting the runtime hook. The load effect body moves into a shared runLoad(purpose) with one AbortController per in-flight load, and a refetch goes through the same load boundary the initial load already uses, so it merges into whatever a run has produced since rather than replacing it. A run in progress is left alone: it is neither cancelled nor reset, because the merge already decides what each side keeps. A refetch that arrives while the initial load is still in flight defers to it, a new run supersedes an in-flight refetch, and one still in flight at unmount is aborted.Fixes7
react-langgraph
preserve sends racing thread load and cancellation
>@assistant-ui/react-langgraph@0.14.18route the values-path message reconcile through appendMessage1 change
>@assistant-ui/react-opencode@0.2.17add OpenCodeAttachmentAdapter, converting browser files into attachments that preserve OpenCode's native file semantics10 changes
>@assistant-ui/react-opencode@0.2.16project OpenCode Task child sessions as nested messages1 change
Features1
project OpenCode Task child sessions as nested messages
>@assistant-ui/react-pi@0.0.12isolate thread controller subscriber failures1 change
>@assistant-ui/store@0.3.3prevent Composer updates from being lost under React StrictMode1 change
Fixes1
prevent Composer updates from being lost under React StrictMode
>assistant-cloud@0.1.38validate successful anonymous authentication responses before use1 change
>assistant-stream@0.3.33add opt-in strict: false mode that reconciles malformed stream input instead of throwing (decoders, state accumulator); assistant-transport resume runs always decode leniently1 change
Features1
>assistant-stream@0.3.32prevent pending frontend tool output from enqueuing after stream cancellation4 changes
Fixes4
>safe-content-frame@0.0.26surface iframe content load errors instead of reporting a timeout1 change
>7 maintenance releasesdependency updates and chores
>@assistant-ui/cloud-ai-sdk@0.1.29assistant-cloud@0.1.381 change
Other1
assistant-cloud@0.1.38
>@assistant-ui/react-mcp@0.1.3@assistant-ui/core@0.3.51 change
Other1
@assistant-ui/core@0.3.5
>@assistant-ui/react-mcp@0.1.2@assistant-ui/core@0.3.41 change
Other1
@assistant-ui/core@0.3.4
>@assistant-ui/react-mcp@0.1.1@assistant-ui/core@0.3.31 change
Other1
@assistant-ui/core@0.3.3
>@assistant-ui/react-o11y@0.0.33@assistant-ui/store@0.3.31 change
Other1
@assistant-ui/store@0.3.3
>@assistant-ui/react-o11y@0.0.32@assistant-ui/tap@0.9.91 change
Other1
@assistant-ui/tap@0.9.9
>@assistant-ui/tap@0.9.9re-add the deprecated useMemoCache export for older @assistant-ui/store versions1 change
Other1
Jul 30, 2026
18 releases
>@assistant-ui/cloud-ai-sdk@0.1.28preserve AI SDK finish callback error handling1 change
>@assistant-ui/core@0.3.2AuiProvider accepts value={null} as an isolation boundary; useAui runs a fixed hook count per overload and deprecates the explicit-parent config7 changes
Features1
Fixes3
accept case-insensitive
data: URL schemes and normalize parsed mime types to lowercaseparse zero-byte base64 payloads in parseDataUrl
Refactors3
>@assistant-ui/mcp-docs-server@0.2.0Minormigrate to MCP TypeScript SDK v2 scoped packages (@modelcontextprotocol/client, @modelcontextprotocol/core, @modelcontextprotocol/server), replacing the monolithic @modelcontextprotocol/sdk 1.x dependency1 change
Features1
>@assistant-ui/react-a2a@0.2.25cancel A2A response streams when consumers stop iteration early4 changes
Fixes3
forward audio and data parts to the wire and pass unparseable data URLs through as URLs
accept case-insensitive
data: URL schemes and normalize parsed mime types to lowercaseRefactors1
>@assistant-ui/react-ag-ui@0.0.49send A2UI actions back to the agent as forwardedProps.a2uiAction on the next run7 changes
Features4
rehydrate A2UI surfaces from restored activity history
Fixes2
forward audio message parts and skip data parts instead of dropping or throwing
keep streaming across mid-run MESSAGES_SNAPSHOT imports. The active assistant is preserved and re-anchored when the snapshot omits it, and when a snapshot shape still evicts it, the placeholder is recreated under its original id on the next content-bearing emit, so neither the token stream nor the message identity is lost.
Refactors1
>@assistant-ui/react-ai-sdk@1.4.2read the canonical nested meta.ui.resourceUri MCP Apps pointer, keeping the deprecated flat "ui/resourceUri" key as a fallback3 changes
Features1
Fixes1
accept case-insensitive
data: URL schemes and normalize parsed mime types to lowercaseRefactors1
>@assistant-ui/react-devtools@1.2.12case-insensitive data: and http(s) scheme checks in preview parsing1 change
Fixes1
case-insensitive data: and http(s) scheme checks in preview parsing
>@assistant-ui/react-generative-ui@0.0.11add react-free ./a2ui subpath with an A2UI operation reducer and UISpec converter2 changes
>@assistant-ui/react-google-adk@0.0.20forward audio message parts and skip data parts instead of dropping or throwing3 changes
>@assistant-ui/react-langchain@0.0.22forward audio parts as base64 audio blocks and skip data parts instead of throwing2 changes
Fixes1
forward audio parts as base64 audio blocks and skip data parts instead of throwing
Refactors1
>@assistant-ui/react-langgraph@0.14.17forward audio parts as base64 audio blocks and skip data parts instead of throwing2 changes
Fixes1
forward audio parts as base64 audio blocks and skip data parts instead of throwing
Refactors1
>@assistant-ui/react-mcp@0.1.0Minormigrate to MCP TypeScript SDK v2 scoped packages (@modelcontextprotocol/client, @modelcontextprotocol/core, @modelcontextprotocol/server), replacing the monolithic @modelcontextprotocol/sdk 1.x dependency6 changes
>@assistant-ui/react-opencode@0.2.15connect OpenCode permissions to standard tool approvals3 changes
>@assistant-ui/react-pi@0.0.11accept case-insensitive data: URL schemes and normalize parsed mime types to lowercase4 changes
>@assistant-ui/store@0.3.2AuiProvider accepts value={null} as an isolation boundary; useAui runs a fixed hook count per overload and deprecates the explicit-parent config13 changes
>@assistant-ui/tap@0.9.8count update depth per scheduler in UpdateScheduler and drop only the offending scheduler from a flush, so one looping root no longer starves or wedges unrelated roots6 changes
>assistant-stream@0.3.31DataStreamDecoder drops tool-call args deltas for an already-closed args stream instead of crashing mid-decode when a text delta interleaves between a tool call's begin and its args2 changes
Fixes2
DataStreamDecoder drops tool-call args deltas for an already-closed args stream instead of crashing mid-decode when a text delta interleaves between a tool call's begin and its args
accept case-insensitive
data: URL schemes and normalize parsed mime types to lowercase>1 maintenance releasedependency updates and chores
>@assistant-ui/react-o11y@0.0.31@assistant-ui/store@0.3.21 change
Other1
@assistant-ui/store@0.3.2
Jul 29, 2026
7 releases
>@assistant-ui/core@0.3.1keep replacement runs cancellable after superseded runs settle2 changes
>@assistant-ui/react@0.15.1internal selectors read optional scopes via s.optional.part instead of guarding on aui.part.source1 change
Refactors1
>@assistant-ui/react-langgraph@0.14.16honor LangChain RemoveMessage (type: "remove") in updates events instead of crashing1 change
Fixes1
honor LangChain RemoveMessage (type: "remove") in
updates events instead of crashing>@assistant-ui/store@0.3.1optional state view — s.optional.<scope> resolves to undefined when the scope is unavailable instead of throwing, so useAuiState((s) => s.optional.threadListItem?.remoteId) works outside a thread list item. The base state stays non-optional and keeps throwing on unavailable scopes.1 change
Features1
optional state view —
s.optional.<scope> resolves to undefined when the scope is unavailable instead of throwing, so useAuiState((s) => s.optional.threadListItem?.remoteId) works outside a thread list item. The base state stays non-optional and keeps throwing on unavailable scopes.>assistant-stream@0.3.30addToolCallPart({response}) settles the tool-call part so the stream closes1 change
Fixes1
addToolCallPart({response}) settles the tool-call part so the stream closes
>2 maintenance releasesdependency updates and chores
>@assistant-ui/react-mcp@0.0.22@assistant-ui/core@0.3.11 change
Other1
@assistant-ui/core@0.3.1
>@assistant-ui/react-o11y@0.0.30@assistant-ui/store@0.3.11 change
Other1
@assistant-ui/store@0.3.1