Changelog

Release history

All releases published from the assistant-ui monorepo, grouped by date.

Jun 15, 2026

20 packages

@assistant-ui/cloud-ai-sdk@0.1.22patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/core@0.2.17patchGitHub →

Features

1
featexport fromThreadMessageLike and generateId from the public API

Performance

1
perfsync the external-store messageRepository incrementally instead of clear+import
@assistant-ui/react@0.14.22patchGitHub →

Features

3
featexport fromThreadMessageLike and generateId from the public API
feat· reactadd minCommitMs to SmoothOptions to throttle committed reveal updates
featadd unstable_useLiveCompletionAdapter for async trigger completions
@assistant-ui/react@0.14.21patchGitHub →

Fixes

1
fixprevent compiled context store hooks from skipping subscriptions
@assistant-ui/react-a2a@0.2.20patchGitHub →

Chores

1
choreimport generateId and fromThreadMessageLike from the public @assistant-ui/core entry instead of /internal
@assistant-ui/react-ag-ui@0.0.41patchGitHub →

Chores

1
choreimport generateId and fromThreadMessageLike from the public @assistant-ui/core entry instead of /internal
@assistant-ui/react-ai-sdk@1.3.37patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-hook-form@0.12.21patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-ink@0.0.28patchGitHub →

Features

1
featexport fromThreadMessageLike and generateId from the public API

Chores

1
choreupdate dependencies
@assistant-ui/react-ink-markdown@0.0.27patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-markdown@0.14.4patchGitHub →

Features

1
featexport math-delimiter preprocess helpers for the markdown text primitives
@assistant-ui/react-mcp@0.0.14patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-mcp@0.0.13patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-native@0.1.26patchGitHub →

Features

1
featexport fromThreadMessageLike and generateId from the public API
@assistant-ui/react-o11y@0.0.24patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-opencode@0.2.9patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-pi@0.0.4patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-streamdown@0.3.4patchGitHub →

Features

1
featexport math-delimiter preprocess helpers for the markdown text primitives

Performance

1
perfrepair only the trailing block of streaming markdown instead of the whole message
@assistant-ui/tap@0.9.2patchGitHub →

Fixes

1
fixkeep tap React hooks compatible with React 18 builds
@assistant-ui/x-buildutils@0.0.15patchGitHub →

Fixes

1
fixkeep tap React hooks compatible with React 18 builds

Jun 14, 2026

31 packages

@assistant-ui/agent-launcher@0.1.7patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/cloud-ai-sdk@0.1.21patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/core@0.2.16patchGitHub →

Fixes

1
fixresolve typecheck regressions

Chores

1
choreupdate peer and dependency ranges for @assistant-ui/tap 0.9
@assistant-ui/gorp@0.0.3patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/mcp-docs-server@0.1.35patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/metro@0.0.3patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/next@0.0.7patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react@0.14.20patchGitHub →

Fixes

1
fixresolve typecheck regressions

Chores

2
choreupdate dependencies
choreupdate peer and dependency ranges for @assistant-ui/tap 0.9
@assistant-ui/react-ag-ui@0.0.40patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-ai-sdk@1.3.36patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-devtools@1.2.6patchGitHub →

Chores

2
choreupdate dependencies
choreupdate peer and dependency ranges for @assistant-ui/tap 0.9
@assistant-ui/react-generative-ui@0.0.5patchGitHub →

Fixes

1
fixresolve typecheck regressions
@assistant-ui/react-hook-form@0.12.20patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-ink@0.0.27patchGitHub →

Chores

2
choreupdate dependencies
choreupdate peer and dependency ranges for @assistant-ui/tap 0.9
@assistant-ui/react-ink-markdown@0.0.26patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-langchain@0.0.14patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-langgraph@0.14.8patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-mcp@0.0.12patchGitHub →

Other

1
@assistant-ui/react-native@0.1.25patchGitHub →

Chores

2
choreupdate dependencies
choreupdate peer and dependency ranges for @assistant-ui/tap 0.9
@assistant-ui/react-o11y@0.0.23patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-opencode@0.2.8patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-pi@0.0.3patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/store@0.2.18patchGitHub →

Fixes

1
fixpreserve tap context across nested tap root rerenders and mark tap context as supported

Chores

1
choreupdate peer and dependency ranges for @assistant-ui/tap 0.9
@assistant-ui/tap@0.9.1patchGitHub →

Fixes

1
fixpreserve tap context across nested tap root rerenders and mark tap context as supported

Chores

1
choreupdate dependencies
@assistant-ui/vite@0.0.5patchGitHub →

Fixes

1
fixresolve typecheck regressions

Chores

1
choreupdate dependencies
@assistant-ui/x-buildutils@0.0.14patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/x-generative-compiler@0.0.5patchGitHub →

Chores

1
choreupdate dependencies
assistant-cloud@0.1.33patchGitHub →

Chores

1
choreupdate dependencies
assistant-stream@0.3.23patchGitHub →

Fixes

1
fixresolve typecheck regressions
assistant-ui@0.0.101patchGitHub →

Chores

1
choreupdate dependencies
create-assistant-ui@0.0.64patchGitHub →

Jun 13, 2026

14 packages

@assistant-ui/core@0.2.15patchGitHub →

Features

4
featadd reasoningEffort to LanguageModelConfig
featprecompile packages with React Compiler
featapproval options vocabulary on tool approvals. ToolCallMessagePart.approval gains request-supplied options (machine-readable kinds allow-once / allow-always / reject-once / reject-always, open to _-prefixed custom kinds), a recorded optionId, and a terminal resolution ("cancelled" | "expired") for non-decision outcomes. respondToApproval additionally accepts { optionId }, resolved in core against the option's kind; custom kinds require an explicit approved. ExternalThread gains an onRespondToToolApproval callback. The kit approval bar renders supplied options with an opt-in confirmation step showing the grants an option would persist. Persistence stays host-owned.
featper-tool-call timing and stall detection. ToolCallMessagePart gains a timing field ({ startedAt, completedAt? } in epoch ms), auto-populated by the assistant-stream accumulator at part start and result, and accepted on ThreadMessageLike for external-store hosts. New useToolCallElapsed hook returns the call's elapsed milliseconds, ticking once per second while running; unstable_useMessageStallDetection({ thresholdMs }) reports mid-run output stalls by watching a message content fingerprint. The kit ToolFallback trigger renders the duration when timing is present.
@assistant-ui/react@0.14.19patchGitHub →

Features

3
featprecompile packages with React Compiler
featapproval options vocabulary on tool approvals. ToolCallMessagePart.approval gains request-supplied options (machine-readable kinds allow-once / allow-always / reject-once / reject-always, open to _-prefixed custom kinds), a recorded optionId, and a terminal resolution ("cancelled" | "expired") for non-decision outcomes. respondToApproval additionally accepts { optionId }, resolved in core against the option's kind; custom kinds require an explicit approved. ExternalThread gains an onRespondToToolApproval callback. The kit approval bar renders supplied options with an opt-in confirmation step showing the grants an option would persist. Persistence stays host-owned.
featper-tool-call timing and stall detection. ToolCallMessagePart gains a timing field ({ startedAt, completedAt? } in epoch ms), auto-populated by the assistant-stream accumulator at part start and result, and accepted on ThreadMessageLike for external-store hosts. New useToolCallElapsed hook returns the call's elapsed milliseconds, ticking once per second while running; unstable_useMessageStallDetection({ thresholdMs }) reports mid-run output stalls by watching a message content fingerprint. The kit ToolFallback trigger renders the duration when timing is present.
@assistant-ui/react-ag-ui@0.0.39patchGitHub →

Features

2
feataccept any AbstractAgent in useAgUiRuntime instead of requiring HttpAgent
featforward the full ExternalStoreThreadListAdapter (threads, archivedThreads, onRename, onArchive, ...) through adapters.threadList so server-persisted threads can be registered and switched to; clear messages before onSwitchToThread so the previous thread's messages no longer merge in as a phantom sibling branch; onSwitchToThread can return unstable_resume to reattach to an in-flight run after switching (resumes in the background and requires a ThreadHistoryAdapter with resume, otherwise it reports through onError instead of re-running the agent)

Fixes

2
fixattach a TOOL_CALL_RESULT for a prior run's tool call to its owning message instead of synthesizing a duplicate empty-args part
fixkeep failed and aborted runs visible. the synthetic RUN_FINISHED from onRunFinalized used to overwrite RUN_ERROR with a successful status, so failed runs rendered as complete and MessagePrimitive.Error never showed. aborts (which @ag-ui/client routes through onRunFailed) now map to RUN_CANCELLED instead of RUN_ERROR, so the run lands as incomplete/cancelled.
@assistant-ui/react-devtools@1.2.5patchGitHub →

Features

1
featprecompile packages with React Compiler
@assistant-ui/react-ink@0.0.26patchGitHub →

Features

1
featprecompile packages with React Compiler
@assistant-ui/react-ink-markdown@0.0.25patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-mcp@0.0.11patchGitHub →

Features

1
featprecompile packages with React Compiler
@assistant-ui/react-native@0.1.24patchGitHub →

Features

3
featprecompile packages with React Compiler
featapproval options vocabulary on tool approvals. ToolCallMessagePart.approval gains request-supplied options (machine-readable kinds allow-once / allow-always / reject-once / reject-always, open to _-prefixed custom kinds), a recorded optionId, and a terminal resolution ("cancelled" | "expired") for non-decision outcomes. respondToApproval additionally accepts { optionId }, resolved in core against the option's kind; custom kinds require an explicit approved. ExternalThread gains an onRespondToToolApproval callback. The kit approval bar renders supplied options with an opt-in confirmation step showing the grants an option would persist. Persistence stays host-owned.
featper-tool-call timing and stall detection. ToolCallMessagePart gains a timing field ({ startedAt, completedAt? } in epoch ms), auto-populated by the assistant-stream accumulator at part start and result, and accepted on ThreadMessageLike for external-store hosts. New useToolCallElapsed hook returns the call's elapsed milliseconds, ticking once per second while running; unstable_useMessageStallDetection({ thresholdMs }) reports mid-run output stalls by watching a message content fingerprint. The kit ToolFallback trigger renders the duration when timing is present.
@assistant-ui/react-o11y@0.0.22patchGitHub →

Features

1
featprecompile packages with React Compiler
@assistant-ui/react-pi@0.0.2patchGitHub →

Features

1
featinitial @assistant-ui/react-pi MVP — a Pi coding-agent runtime adapter
@assistant-ui/store@0.2.17patchGitHub →

Features

1
featprecompile packages with React Compiler
@assistant-ui/tap@0.8.1patchGitHub →

Features

1
featprecompile packages with React Compiler

Performance

1
perfoptimize tap memo hook hot paths
@assistant-ui/x-buildutils@0.0.13patchGitHub →

Features

1
featprecompile packages with React Compiler
assistant-stream@0.3.22patchGitHub →

Features

1
featper-tool-call timing and stall detection. ToolCallMessagePart gains a timing field ({ startedAt, completedAt? } in epoch ms), auto-populated by the assistant-stream accumulator at part start and result, and accepted on ThreadMessageLike for external-store hosts. New useToolCallElapsed hook returns the call's elapsed milliseconds, ticking once per second while running; unstable_useMessageStallDetection({ thresholdMs }) reports mid-run output stalls by watching a message content fingerprint. The kit ToolFallback trigger renders the duration when timing is present.

Jun 12, 2026

20 packages

@assistant-ui/core@0.2.14patchGitHub →

Features

3
featbranch switching for the ExternalThread client
featsupport tool approvals on the local runtime
featexpose lastMessageAt on thread list items, populated from the cloud thread list adapter

Fixes

2
fixexclude reasoning parts from copied message text
fixstable identity for grouped message parts across reorders

Chores

1
choreupdate @assistant-ui/tap dependency ranges to ^0.7.0
@assistant-ui/next@0.0.6patchGitHub →

Fixes

1
fixgive each "use generative" module a distinct bundler-redirect identity so two toolkits in one app no longer collide under next dev
@assistant-ui/react@0.14.18patchGitHub →

Features

3
featunstable_useComposerInputHistory
featbranch switching for the ExternalThread client
featpublic, tunable useSmooth

Fixes

4
fixexclude reasoning parts from copied message text
fixemit the GroupedParts streaming indicator for empty running messages, so the assistant slot shows a loading affordance immediately after sending instead of staying blank
fixcompensate scrollbar gutter in useScrollLock so collapsible animations don't shift centered content horizontally on classic scrollbars
fixclear pending viewport bottom-scroll intent on pointer interaction, preventing collapsible expand/collapse from yanking the thread to the bottom

Chores

1
choreupdate @assistant-ui/tap dependency ranges to ^0.7.0
@assistant-ui/react-ag-ui@0.0.38patchGitHub →

Features

1
featrestore multimodal user input (image, audio, video, document, and legacy binary parts) as attachments in fromAgUiMessages, so persisted conversations reload attachments instead of dropping them and re-send them on the next run
@assistant-ui/react-ai-sdk@1.3.35patchGitHub →

Fixes

1
fixattach partial-JSON meta to streaming tool args so consumers can tell which field is still mid-arrival
@assistant-ui/react-devtools@1.2.4patchGitHub →

Chores

1
choreupdate @assistant-ui/tap dependency ranges to ^0.7.0
@assistant-ui/react-generative-ui@0.0.4patchGitHub →

Fixes

1
fixhold back nodes whose $type is still streaming instead of reporting them as unknown components
@assistant-ui/react-hook-form@0.12.19patchGitHub →

Refactors

1
refactorreplace deprecated useAssistantToolUI with the tools client API
@assistant-ui/react-ink@0.0.25patchGitHub →

Docs

1
docsreword the useNotification JSDoc from "pauses for human approval" to "pauses for user input"; the needs-input trigger fires on requires-action with reason interrupt, not on tool approval gates

Chores

1
choreupdate @assistant-ui/tap dependency ranges to ^0.7.0
@assistant-ui/react-ink-markdown@0.0.24patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-markdown@0.14.3patchGitHub →

Features

2
featopt-in defer prop on the markdown text primitives
featpublic, tunable useSmooth
@assistant-ui/react-mcp@0.0.10patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-native@0.1.23patchGitHub →

Chores

1
choreupdate @assistant-ui/tap dependency ranges to ^0.7.0
@assistant-ui/react-o11y@0.0.21patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-opencode@0.2.7patchGitHub →

Fixes

2
fix· react-opencodere-sync thread history, session status, and pending permissions/questions after the event stream reconnects, so events lost while disconnected (e.g. session.idle or permission.asked) cannot leave isRunning stuck or deadlock a run
fix· react-opencodestop re-subscribing to the OpenCode event stream on every render, which could drop session.idle and leave isRunning stuck at true
@assistant-ui/react-streamdown@0.3.3patchGitHub →

Features

2
featopt-in defer prop on the markdown text primitives
featsmooth prop on StreamdownTextPrimitive
@assistant-ui/store@0.2.16patchGitHub →

Features

1
feathost the assistant client with useTapHost so the tap commit runs in the passive phase (no paint blocking); AuiProvider mounts the host's commit effects ahead of its children's effects

Chores

1
choreupdate @assistant-ui/tap dependency ranges to ^0.7.0
@assistant-ui/tap@0.7.1patchGitHub →

Features

1
featadd useTapHost, a React host that commits the resource in the passive phase without blocking paint; the returned per-render effects callback lets descendant consumers mount the commit ahead of their own effects via useEffect(effects). The React bridge hosts (useResource, useResources, useTapRoot) now also commit in useEffect instead of useLayoutEffect.

Fixes

1
fixmatch React semantics: support render-phase updates (setState during render re-renders before committing, capped at 25 passes, instead of throwing; discarded render attempts drop their render-phase dispatches like React; updating a resource other than the one currently rendering throws), apply dispatches exactly once across React-discarded and replayed renders of tap sub-roots, run all effect cleanups before any setups within a commit, and compare only the common prefix of deps arrays that change length (with a dev warning)
assistant-ui@0.0.100patchGitHub →

Docs

1
docsteach defineToolkit instead of deprecated makeAssistantToolUI in the assistant-ui skill
create-assistant-ui@0.0.63patchGitHub →

Jun 9, 2026

6 packages

@assistant-ui/core@0.2.12patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/gorp@0.0.2patchGitHub →

Features

1
featadd gorp state-sync primitives
@assistant-ui/react@0.14.16patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-mcp@0.0.8patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-o11y@0.0.19patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/tap@0.6.1patchGitHub →

Fixes

1
fixkeep the tap React shim compatible with React 18 builds

Jun 8, 2026

38 packages

@assistant-ui/agent-launcher@0.1.6patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/cloud-ai-sdk@0.1.20patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/core@0.2.11patchGitHub →

Features

5
featexpose joinStrategy on useAISDKRuntime / useChatRuntime
featcheck the generative compiler version against the core package compatibility range
featmessage queuing for external-store, langgraph, and local runtimes
featadd externalTool for render-only generative toolkit entries
featrename hitlTool to humanTool while keeping deprecated compatibility aliases

Fixes

2
fixmake defineToolkit usable for plain runtime toolkits
fixmake SimpleTextAttachmentAdapter and SimpleImageAttachmentAdapter work without FileReader. they read files via the browser only FileReader, so sending an attachment in a non browser runtime (e.g. @assistant-ui/react-ink in a terminal) threw ReferenceError: FileReader is not defined. the adapters now feature detect: they keep using FileReader when it exists (browser, and React Native whose Blob polyfill provides it) and fall back to file.text / file.arrayBuffer in Node. output is byte identical across all three environments, so @assistant-ui/react, @assistant-ui/react-native, and @assistant-ui/react-ink all keep re-exporting the same core implementation.

Chores

1
choreupdate dependencies
@assistant-ui/mcp-docs-server@0.1.34patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/metro@0.0.2patchGitHub →

Features

2
featmerge toolkits across "use generative" files and allow a bare defineMcpToolkit default export
featadd @assistant-ui/metro — the "use generative" directive compiler for Expo / React Native, so RN apps author tools with the same defineToolkit API as the web via withAui in metro.config.js

Fixes

1
fixbake the compiler version into the build so the core compatibility check works when the compiler is bundled

Chores

1
choreupdate dependencies
@assistant-ui/next@0.0.5patchGitHub →

Features

1
featrename hitlTool to humanTool while keeping deprecated compatibility aliases

Docs

1
docsreference AISDKToolkit instead of the deprecated generativeTools in the README

Chores

1
choreupdate dependencies
@assistant-ui/react@0.14.15patchGitHub →

Features

3
featmessage queuing for external-store, langgraph, and local runtimes
featadd externalTool for render-only generative toolkit entries
featrename hitlTool to humanTool while keeping deprecated compatibility aliases

Fixes

2
fixmake defineToolkit usable for plain runtime toolkits
fix· mcp-appssend the 2026-01-26 dialect on host→app messages so widgets built with @modelcontextprotocol/ext-apps initialize and receive tool results

Refactors

1
refactorextract a shared sandbox host (SafeContentFrame lifecycle, the single cross-origin guarded message listener, auto-resize) and reuse it for the MCP app frame, with no behavior change

Chores

1
choreupdate dependencies
@assistant-ui/react-a2a@0.2.19patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-ag-ui@0.0.36patchGitHub →

Features

3
featconsume ACTIVITY_SNAPSHOT events to support MCP Apps on the AG-UI runtime
featexport fromAgUiMessages from the package root
featemit AG-UI multimodal input parts (image/audio/video/document with typed data/url sources) for file attachments instead of the legacy binary input content

Fixes

1
fiximport AG-UI reasoning messages from MESSAGES_SNAPSHOT

Chores

1
choreupdate dependencies
@assistant-ui/react-ai-sdk@1.3.33patchGitHub →

Features

1
featexpose joinStrategy on useAISDKRuntime / useChatRuntime

Fixes

2
fix· react-ai-sdkmake the package metro-bundleable in react native / expo by serving a client-only entry under the react-native export condition
fix· react-ai-sdkmake the package root bundle on edge, cloudflare workers, deno, and browsers, not just react native. the node-only stdio MCP transport is now resolved through a package.json "imports" condition (#mcp-stdio), so importing @assistant-ui/react-ai-sdk at root carries the full server toolkit on every target with http/sse MCP working on edge, while stdio MCP throws a clear runtime error only where a subprocess cannot be spawned (browser, react native, edge, workers) instead of breaking the build via @ai-sdk/mcp/mcp-stdio -> node:child_process. node, bun, and deno keep the real stdio transport.

Chores

2
choredeprecate generativeTools in favor of AISDKToolkit
choreupdate dependencies
@assistant-ui/react-data-stream@0.12.17patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-devtools@1.2.3patchGitHub →

Features

2
featsurface full tool metadata (type, provider id, MCP server, providerOptions, deferred-results, backend defaults) in the devtools model context, and redact credentials (apiKey, authorization headers, tokens, MCP server headers/env) at the serializer boundary before they cross the postMessage bridge
featforward the scope graph from the host (each accessor's name, source, query, and available method names) so the devtools frame can show a Scopes tab with the scope hierarchy and a per-scope read-only method catalog

Chores

2
choreupdate dependencies
choreallow @assistant-ui/tap 0.6 in the peer dependency range
@assistant-ui/react-generative-ui@0.0.3patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-google-adk@0.0.15patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-hook-form@0.12.18patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-ink@0.0.24patchGitHub →

Features

3
featadd externalTool for render-only generative toolkit entries
featdefineToolkit and the tool markers (hitlTool / stubTool / providerTool) now have runtime implementations in @assistant-ui/react-ink, so Ink apps author tools with the same defineToolkit API (and typed args) as the web. An Ink app runs in a single Node process with no client/server boundary, so there is nothing for the "use generative" compiler to split: defineToolkit resolves each tool's type at runtime and no build step is required.
featrename hitlTool to humanTool while keeping deprecated compatibility aliases

Fixes

2
fixmake defineToolkit usable for plain runtime toolkits
fix· react-inkblock Enter submission while the thread is running unless the runtime supports queueing. ComposerInput called composer.send unconditionally, so pressing Enter mid-run interrupted the active stream even on runtimes with capabilities.queue: false. It now applies the same gate as the web ComposerInput (isRunning && !capabilities.queue no-ops, keeping the typed text). The onSubmit override path is unaffected; apps using it own their submit behavior.

Chores

1
choreupdate dependencies
@assistant-ui/react-ink-markdown@0.0.23patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-langchain@0.0.13patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-langgraph@0.14.7patchGitHub →

Features

1
featmessage queuing for external-store, langgraph, and local runtimes

Fixes

2
fixbatch parallel tool results so a turn with multiple tool calls resumes in a single run
fixpreserve LangChain reasoning content when summary is absent

Chores

1
choreupdate dependencies
@assistant-ui/react-lexical@0.2.3patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-markdown@0.14.2patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-mcp@0.0.7patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-native@0.1.22patchGitHub →

Features

2
featadd externalTool for render-only generative toolkit entries
featrename hitlTool to humanTool while keeping deprecated compatibility aliases

Fixes

1
fixmake defineToolkit usable for plain runtime toolkits

Chores

1
choreupdate dependencies
@assistant-ui/react-o11y@0.0.18patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-opencode@0.2.6patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-streamdown@0.3.2patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-syntax-highlighter@0.14.2patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/store@0.2.14patchGitHub →

Refactors

1
refactorrename the client composition and event hooks to the use* convention to match the tap resource API: tapClientResource -> useClientResource, tapClientLookup -> useClientLookup, tapClientList -> useClientList, tapAssistantClientRef -> useAssistantClientRef, tapAssistantEmit -> useAssistantEmit.

Chores

1
choreupdate dependencies
@assistant-ui/tap@0.6.0minorGitHub →

Features

1
featReact integration

Chores

1
choreupdate dependencies
@assistant-ui/vite@0.0.4patchGitHub →

Features

1
featrename hitlTool to humanTool while keeping deprecated compatibility aliases

Chores

1
choreupdate dependencies
@assistant-ui/x-buildutils@0.0.12patchGitHub →

Fixes

1
fixomit onSuccess instead of passing undefined so the tsdown config type-checks under exactOptionalPropertyTypes

Chores

1
choreupdate dependencies
@assistant-ui/x-generative-compiler@0.0.4patchGitHub →

Features

4
featcheck the generative compiler version against the core package compatibility range
featadd externalTool for render-only generative toolkit entries
featmerge toolkits across "use generative" files and allow a bare defineMcpToolkit default export
featrename hitlTool to humanTool while keeping deprecated compatibility aliases

Fixes

2
fixbake the compiler version into the build so the core compatibility check works when the compiler is bundled
fixomit externalTool entries from server toolkits

Chores

1
choreupdate dependencies
assistant-cloud@0.1.32patchGitHub →

Chores

1
choreupdate dependencies
assistant-stream@0.3.21patchGitHub →

Chores

1
choreupdate dependencies
assistant-ui@0.0.99patchGitHub →

Chores

1
choreupdate dependencies
create-assistant-ui@0.0.62patchGitHub →
heat-graph@0.0.11patchGitHub →

Chores

1
choreupdate dependencies
safe-content-frame@0.0.21patchGitHub →

Chores

1
choreupdate dependencies

Jun 1, 2026

12 packages

@assistant-ui/core@0.2.9patchGitHub →

Features

2
featadd the ToolkitDeclaration / ToolkitDeclarationDefinition types for authoring a toolkit permissively (a backend tool may declare description/parameters/execute); the canonical Toolkit keeps those fields erased. Author with defineToolkit from @assistant-ui/react, which the "use generative" compiler strips per build.
featmove the defineToolkit and hitl use-generative markers from @assistant-ui/next into @assistant-ui/core/react, so they ship once from every distribution (@assistant-ui/react, @assistant-ui/react-native, @assistant-ui/react-ink) and stay portable across build targets. Import them from @assistant-ui/react instead of @assistant-ui/next; they remain no-op markers stripped at build time by a "use generative" compiler.
@assistant-ui/next@0.0.3patchGitHub →

Features

3
featadd @assistant-ui/next — the withAui Next.js config wrapper and the compiler for the "use generative" directive that colocates a tool's schema, server-only execute, and client-only render in one file
featextract the framework-agnostic "use generative" compiler into the internal @assistant-ui/x-generative-compiler package. @assistant-ui/next now consumes the shared compiler instead of bundling its own copy, so other build integrations can reuse it.
featmove the defineToolkit and hitl use-generative markers from @assistant-ui/next into @assistant-ui/core/react, so they ship once from every distribution (@assistant-ui/react, @assistant-ui/react-native, @assistant-ui/react-ink) and stay portable across build targets. Import them from @assistant-ui/react instead of @assistant-ui/next; they remain no-op markers stripped at build time by a "use generative" compiler.
@assistant-ui/react@0.14.13patchGitHub →

Features

2
featadd the ToolkitDeclaration / ToolkitDeclarationDefinition types for authoring a toolkit permissively (a backend tool may declare description/parameters/execute); the canonical Toolkit keeps those fields erased. Author with defineToolkit from @assistant-ui/react, which the "use generative" compiler strips per build.
featmove the defineToolkit and hitl use-generative markers from @assistant-ui/next into @assistant-ui/core/react, so they ship once from every distribution (@assistant-ui/react, @assistant-ui/react-native, @assistant-ui/react-ink) and stay portable across build targets. Import them from @assistant-ui/react instead of @assistant-ui/next; they remain no-op markers stripped at build time by a "use generative" compiler.
@assistant-ui/react-ink@0.0.22patchGitHub →

Features

1
featmove the defineToolkit and hitl use-generative markers from @assistant-ui/next into @assistant-ui/core/react, so they ship once from every distribution (@assistant-ui/react, @assistant-ui/react-native, @assistant-ui/react-ink) and stay portable across build targets. Import them from @assistant-ui/react instead of @assistant-ui/next; they remain no-op markers stripped at build time by a "use generative" compiler.
@assistant-ui/react-ink-markdown@0.0.21patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-mcp@0.0.5patchGitHub →

Other

1
@assistant-ui/react-native@0.1.20patchGitHub →

Features

1
featmove the defineToolkit and hitl use-generative markers from @assistant-ui/next into @assistant-ui/core/react, so they ship once from every distribution (@assistant-ui/react, @assistant-ui/react-native, @assistant-ui/react-ink) and stay portable across build targets. Import them from @assistant-ui/react instead of @assistant-ui/next; they remain no-op markers stripped at build time by a "use generative" compiler.
@assistant-ui/vite@0.0.2patchGitHub →

Features

1
featadd @assistant-ui/vite — a Vite plugin (aui) that compiles the "use generative" directive for Vite apps and TanStack Start. It transforms each toolkit per Vite environment (client keeps render, server environments keep execute), so no facade/redirect is needed; it also skips the Next-only server-only import, which has no react-server layer under Vite.
@assistant-ui/x-generative-compiler@0.0.2patchGitHub →

Features

1
featextract the framework-agnostic "use generative" compiler into the internal @assistant-ui/x-generative-compiler package. @assistant-ui/next now consumes the shared compiler instead of bundling its own copy, so other build integrations can reuse it.
assistant-stream@0.3.19patchGitHub →

Features

1
featadd the ToolkitDeclaration / ToolkitDeclarationDefinition types for authoring a toolkit permissively (a backend tool may declare description/parameters/execute); the canonical Toolkit keeps those fields erased. Author with defineToolkit from @assistant-ui/react, which the "use generative" compiler strips per build.
assistant-ui@0.0.97patchGitHub →

Features

1
featprompt to add assistant-ui agent skills when creating a project. npx assistant-ui create now asks whether to add the agent skills and, on yes, delegates to the skills CLI (skills add assistant-ui/skills) so it installs into your chosen agent platforms (Claude Code, Cursor, Zed, etc.). Use --skills / --no-skills to skip the prompt; non-interactive runs default to adding them.
create-assistant-ui@0.0.60patchGitHub →

May 31, 2026

1 package

@assistant-ui/next@0.0.2patchGitHub →

Features

1
featadd @assistant-ui/next — the withAui Next.js config wrapper, the defineToolkit authoring helper, and the compiler for the "use generative" directive that colocates a tool's schema, server-only execute, and client-only render in one file

Chores

1
choreupdate dependencies

May 27, 2026

17 packages

@assistant-ui/cloud-ai-sdk@0.1.17patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/core@0.2.7patchGitHub →

Features

2
featdetect and diagnose duplicate @assistant-ui/core installs
feat· corebuild a client-side tool-invocations pipeline directly into useExternalStoreRuntime. Tool-call parts in messages now fire streamCall / execute automatically for any external-store runtime that opts in. Opt in per-adapter via unstable_enableToolInvocations: true (off by default — most external-store runtimes either run tools server-side or already wire their own client-side dispatch path; double-firing is the risk). The _store.isLoading flag signals when initial history is loaded: snapshots observed while isLoading === true are treated as historical (no fire), matching the contract that callers like importExternalState already rely on. Six in-tree runtimes (useAssistantTransportRuntime, useAISDKRuntime, useLangGraphRuntime, useStreamRuntime, useAgUiRuntime, useAdkRuntime) are migrated to the embedded tracker; the standalone useToolInvocations React hook is removed. Adds ExternalStoreAdapter.setToolStatuses so adapters can mirror the tracker's per-tool-call status into local React state for converter metadata. Auto-aborts in-flight tool calls on new turns (append with startRun, startRun) so a tool that finishes after the user moves on can no longer feed a stale result into the next turn.
@assistant-ui/react@0.14.11patchGitHub →

Chores

1
choredrop tracker-behaviour explainer comments left behind in satellite runtimes
@assistant-ui/react-ag-ui@0.0.33patchGitHub →

Chores

1
choredrop tracker-behaviour explainer comments left behind in satellite runtimes
@assistant-ui/react-ai-sdk@1.3.30patchGitHub →

Chores

1
choredrop tracker-behaviour explainer comments left behind in satellite runtimes
@assistant-ui/react-google-adk@0.0.12patchGitHub →

Chores

1
choredrop tracker-behaviour explainer comments left behind in satellite runtimes
@assistant-ui/react-hook-form@0.12.16patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-ink@0.0.20patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-ink-markdown@0.0.19patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/react-langchain@0.0.10patchGitHub →

Chores

1
choredrop tracker-behaviour explainer comments left behind in satellite runtimes
@assistant-ui/react-langgraph@0.14.4patchGitHub →

Chores

1
choredrop tracker-behaviour explainer comments left behind in satellite runtimes
@assistant-ui/react-mcp@0.0.3patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-o11y@0.0.16patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-opencode@0.2.3patchGitHub →

Chores

1
choreupdate dependencies
@assistant-ui/tap@0.5.13patchGitHub →

Tests

1
teststabilize flaky StrictMode setTimeout rerender test on slow CI
assistant-ui@0.0.95patchGitHub →

Features

1
featdetect and diagnose duplicate @assistant-ui/core installs
create-assistant-ui@0.0.58patchGitHub →

May 26, 2026

10 packages

@assistant-ui/core@0.2.6patchGitHub →

Features

2
featsimplify MessagePrimitive.GroupedParts API and add groupPartByType helper.
featsurface AI SDK v6 tool approvals as a first-class respondToApproval prop on tool components. tool-call parts in the approval-requested state now carry part.approval = { id, isAutomatic? }; tool components call respondToApproval({ approved, reason? }) to ack the gate without threading chatHelpers through application context. also fixes a transient requires-action flicker for the approval-responded state and tightens the external-message converter so interrupt vs pending tool calls are distinguished by an actual interrupt/approval field rather than by result === undefined.
@assistant-ui/react@0.14.9patchGitHub →

Features

2
featsimplify MessagePrimitive.GroupedParts API and add groupPartByType helper.
featsurface AI SDK v6 tool approvals as a first-class respondToApproval prop on tool components. tool-call parts in the approval-requested state now carry part.approval = { id, isAutomatic? }; tool components call respondToApproval({ approved, reason? }) to ack the gate without threading chatHelpers through application context. also fixes a transient requires-action flicker for the approval-responded state and tightens the external-message converter so interrupt vs pending tool calls are distinguished by an actual interrupt/approval field rather than by result === undefined.
@assistant-ui/react-ai-sdk@1.3.28patchGitHub →

Features

1
featsurface AI SDK v6 tool approvals as a first-class respondToApproval prop on tool components. tool-call parts in the approval-requested state now carry part.approval = { id, isAutomatic? }; tool components call respondToApproval({ approved, reason? }) to ack the gate without threading chatHelpers through application context. also fixes a transient requires-action flicker for the approval-responded state and tightens the external-message converter so interrupt vs pending tool calls are distinguished by an actual interrupt/approval field rather than by result === undefined.
@assistant-ui/react-ink@0.0.19patchGitHub →

Features

1
featsurface AI SDK v6 tool approvals as a first-class respondToApproval prop on tool components. tool-call parts in the approval-requested state now carry part.approval = { id, isAutomatic? }; tool components call respondToApproval({ approved, reason? }) to ack the gate without threading chatHelpers through application context. also fixes a transient requires-action flicker for the approval-responded state and tightens the external-message converter so interrupt vs pending tool calls are distinguished by an actual interrupt/approval field rather than by result === undefined.
@assistant-ui/react-ink-markdown@0.0.18patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-mcp@0.0.2patchGitHub →

Other

1
misc@assistant-ui/[email protected]
@assistant-ui/react-native@0.1.18patchGitHub →

Features

2
featsimplify MessagePrimitive.GroupedParts API and add groupPartByType helper.
featsurface AI SDK v6 tool approvals as a first-class respondToApproval prop on tool components. tool-call parts in the approval-requested state now carry part.approval = { id, isAutomatic? }; tool components call respondToApproval({ approved, reason? }) to ack the gate without threading chatHelpers through application context. also fixes a transient requires-action flicker for the approval-responded state and tightens the external-message converter so interrupt vs pending tool calls are distinguished by an actual interrupt/approval field rather than by result === undefined.
assistant-stream@0.3.17patchGitHub →

Fixes

1
fixpreserve parentId on streamed text and reasoning parts
assistant-ui@0.0.94patchGitHub →

Chores

1
chore· clidrop with-parent-id-grouping from the --example list. the example demonstrated MessagePrimitive.Unstable_PartsGroupedByParentId, which is deprecated; its grouping pattern is now better demonstrated by with-chain-of-thought using MessagePrimitive.GroupedParts, and the sources gap is closed by emitting source-url parts from a search_web tool in the same example. npx assistant-ui create -e with-parent-id-grouping will no longer resolve.
create-assistant-ui@0.0.57patchGitHub →