unstale

npm / @assistant-ui/react-ai-sdk

@assistant-ui/react-ai-sdk

What changed in @assistant-ui/react-ai-sdk 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-13.

7 breaking1 security1 deprecations21 new APIs and options6 behavior and defaults32 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.3.0 on npm

@assistant-ui/react-ai-sdk 168 changes

Breaking changes 7

  • ai (7.0.101 or newer) is now a peer dependency, so the adapter shares the app's ai and avoids duplicate assistant-cloud copies with incompatible AssistantCloud types.

    1.4.13release notes

  • The ^1.4 line targets ai@^7; v6 users should pin 1.3.40 and v5 users should pin 1.1.21.

    1.4.0release notes

  • The package upgrades to AI SDK v7, including ai@^7, @ai-sdk/react@^4, and @ai-sdk/mcp@^2; the previous release remains on v6.

    1.3.41release notes

  • Use AISDKToolkit with its async tools method instead of generativeTools; it supports MCP server connections and replaces generativeTools for every toolkit.

    1.3.33release notes

  • The package root now bundles on edge, Cloudflare Workers, Deno, and browsers; stdio MCP throws a runtime error where subprocesses cannot be spawned, while Node, Bun, and Deno retain the real transport.

    1.3.33release notes

  • useAISDKRuntime now throws if the supplied ThreadHistoryAdapter omits withFormat, rather than silently dropping history load, append, and update calls.

    1.3.20release notes

  • The aui-source export condition was removed from package.json exports, changing how consumers resolve package exports.

    1.3.17release notes

Security 1

  • Resumable session storage access is now guarded.

    1.3.41release notes

Deprecations 1

  • Deprecated in favor of AISDKToolkit; it continues to work but will be removed in a future version.

    1.3.33release notes

New APIs and options 21

  • Enables message queuing in AI SDK runtimes; steered messages run first after the current request and its client tools finish, while failed queued sends remain available for retry.

    1.4.18release notes

  • AISDKThreads({ cloud }) hosts assistant-cloud thread lists via RemoteThreadList and remounts each thread like useChatRuntime.

    1.4.6release notes

  • The resumable stream ID storage key can be derived lazily from a getter, allowing apps to scope it per thread.

    1.4.4release notes

  • Exposes the AI SDK chat helper through a runtime extras accessor hook.

    1.4.0release notes

  • Exposes the AI SDK error through a runtime extras accessor hook.

    1.4.0release notes

  • adapters.suggestion generates follow-up suggestions after each run.

    1.3.41release notes

  • Chat runtime resume errors are now exposed to developers.

    1.3.41release notes

  • MCP toolkit tools can now be disabled.

    1.3.41release notes

  • A FrontendTools type is exported for typing uploaded frontend tool definitions.

    1.3.41release notes

  • MCP toolkit tool names can now be prefixed.

    1.3.41release notes

  • An optional serverId is passed through MCP Apps metadata and host calls to support multi-MCP routing.

    1.3.41release notes

  • Adds support for server-side MCP connection timeouts.

    1.3.40release notes

  • Core exports a shared type for the "concat-content" | "none" union used by the converter and runtimes.

    1.3.33release notes

  • Accepts joinStrategy so consecutive assistant messages can remain separate turns with "none" instead of being merged.

    1.3.33release notes

  • Accepts joinStrategy so consecutive assistant messages can remain separate turns with "none" instead of being merged.

    1.3.33release notes

  • Tool-call parts in the approval-requested state now carry approval metadata, including an id and optional isAutomatic flag.

    1.3.28release notes

  • Tool components can call respondToApproval({ approved, reason? }) to acknowledge approval gates without threading chatHelpers through application context.

    1.3.28release notes

  • Adds the injectQuoteContext helper.

    1.3.14release notes

  • Adds quote.tsx registry components for developers to use.

    1.3.14release notes

  • Adds support for AI SDK error toolOutput.

    1.1.12release notes

  • Adds a custom toCreateMessage callback for creating messages.

    1.1.11release notes

Behavior and default changes 6

  • Skips rewriting unchanged messages after each run.

    1.4.0release notes

  • Pending tool approvals are persisted, and post-approval continuations are appended.

    1.4.0release notes

  • The external store adapter now forwards onResumeToolCall.

    1.3.41release notes

  • Integrates AI SDK v5 data parts in message content.

    1.1.11release notes

  • AI SDK errors are displayed to users.

    1.1.9release notes

  • Uses the assistant UI thread ID remote ID as the thread ID by default.

    1.1.9release notes

Fixes and other changes 32

  • Waits for threadListItem.remoteId instead of latching on the first empty paint.

    1.4.6release notes

  • Cloud history resolves persistence per call, allowing one adapter to serve many threads.

    1.4.6release notes

  • Audio message parts are forwarded as file parts instead of causing an error.

    1.4.4release notes

  • Raw base64 file and image payloads are wrapped in data URLs using the part's media type; data URLs and HTTP sources remain unchanged.

    1.4.4release notes

  • Image media types are resolved from content type, data URL, and leading bytes before falling back to image/png; mismatched data URL envelopes are rebuilt.

    1.4.4release notes

  • Null-body-status responses pass through the wrapper rather than being reconstructed, avoiding a WebKit TypeError for 204, 205, or 304 responses with a non-null empty body.

    1.4.4release notes

  • Streams can resume using IDs discovered after the chat runtime mounts.

    1.4.4release notes

  • AI SDK text and reasoning part state is mapped onto the per-part status.

    1.4.3release notes

  • Data URL schemes are accepted case-insensitively, and parsed MIME types are normalized to lowercase.

    1.4.2release notes

  • MCP Apps reads the canonical nested resource URI pointer and retains the deprecated flat key as a fallback.

    1.4.2release notes

  • Waits for external thread history to load before resuming a stream.

    1.4.0release notes

  • Serializes history persistence to prevent duplicate appends.

    1.4.0release notes

  • The callback now receives the initialized remote thread id as options.id, so integrations building request bodies from it send the correct id.

    1.4.0release notes

  • The default attachment adapter now works without FileReader, including in Node, react-ink, and SSR, using a chunked base64 fallback that does not require Buffer.

    1.3.41release notes

  • AI SDK message creation now preserves direct file parts.

    1.3.41release notes

  • Frontend tool schemas are validated before conversion.

    1.3.41release notes

  • AI SDK message creation now preserves image media types.

    1.3.41release notes

  • MCP toolkit entry names are included in close, connection, and tool-listing errors.

    1.3.41release notes

  • providerMetadata now survives conversion on text, reasoning, and tool-call message parts.

    1.3.41release notes

  • Detects MCP tool name collisions with toolkit tools.

    1.3.40release notes

  • Partial-JSON metadata is attached to streaming tool arguments so consumers can tell which field is still mid-arrival.

    1.3.35release notes

  • React Native and Expo resolve a client-only entry that omits the server toolkit, preventing Metro from reaching Node-only code during bundling.

    1.3.33release notes

  • Distinguishes interrupt and pending tool calls using an actual interrupt or approval field instead of result being undefined.

    1.3.28release notes

  • Fixes a transient requires-action flicker for the approval-responded state.

    1.3.28release notes

  • The request body id is now the real thread id instead of the literal DEFAULT_THREAD_ID.

    1.3.20release notes

  • Preserves the latest thread token usage during pending turns.

    1.3.19release notes

  • All file types are accepted and validated against the adapter's accept constraint.

    1.3.16release notes

  • Assistant file parts are converted to FileMessagePart instead of being dropped.

    1.3.16release notes

  • Preserves runConfig.custom metadata after tool call resume in human-in-the-loop tools.

    1.3.15release notes

  • Uses AI SDK's idGenerator function for new messages.

    1.1.11release notes

  • Correctly initializes the history loading state.

    1.1.10release notes

  • Fixed history loading.

    1.0.0release notes