# What changed in @assistant-ui/react-ai-sdk

> 68 changes in @assistant-ui/react-ai-sdk 1 from its official release notes, upgrade guides and advisories: 7 breaking, 1 deprecations, 1 security, 21 new APIs and options. Each one cited. Sources checked 2026-11-13. HTML: https://unstale.sh/npm/@assistant-ui/react-ai-sdk/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @assistant-ui/react-ai-sdk 1

### Breaking changes

- 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.13) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.13)
- The ^1.4 line targets ai@^7; v6 users should pin 1.3.40 and v5 users should pin 1.1.21. (1.4.0) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.0)
- 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.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- Use AISDKToolkit with its async tools method instead of generativeTools; it supports MCP server connections and replaces generativeTools for every toolkit. (1.3.33) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.33)
- 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.33) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.33)
- `useAISDKRuntime` now throws if the supplied ThreadHistoryAdapter omits `withFormat`, rather than silently dropping history load, append, and update calls. (1.3.20) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.20)
- The aui-source export condition was removed from package.json exports, changing how consumers resolve package exports. (1.3.17) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.17)

### Security

- Resumable session storage access is now guarded. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)

### Deprecations

- Deprecated in favor of AISDKToolkit; it continues to work but will be removed in a future version. (1.3.33) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.33)

### New APIs and options

- 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.18) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.18)
- AISDKThreads({ cloud }) hosts assistant-cloud thread lists via RemoteThreadList and remounts each thread like useChatRuntime. (1.4.6) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.6)
- The resumable stream ID storage key can be derived lazily from a getter, allowing apps to scope it per thread. (1.4.4) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.4)
- Exposes the AI SDK chat helper through a runtime extras accessor hook. (1.4.0) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.0)
- Exposes the AI SDK error through a runtime extras accessor hook. (1.4.0) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.0)
- adapters.suggestion generates follow-up suggestions after each run. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- Chat runtime resume errors are now exposed to developers. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- MCP toolkit tools can now be disabled. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- A FrontendTools type is exported for typing uploaded frontend tool definitions. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- MCP toolkit tool names can now be prefixed. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- An optional serverId is passed through MCP Apps metadata and host calls to support multi-MCP routing. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- Adds support for server-side MCP connection timeouts. (1.3.40) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.40)
- Core exports a shared type for the "concat-content" | "none" union used by the converter and runtimes. (1.3.33) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.33)
- Accepts joinStrategy so consecutive assistant messages can remain separate turns with "none" instead of being merged. (1.3.33) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.33)
- Accepts joinStrategy so consecutive assistant messages can remain separate turns with "none" instead of being merged. (1.3.33) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.33)
- Tool-call parts in the approval-requested state now carry approval metadata, including an id and optional isAutomatic flag. (1.3.28) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.28)
- Tool components can call respondToApproval({ approved, reason? }) to acknowledge approval gates without threading chatHelpers through application context. (1.3.28) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.28)
- Adds the injectQuoteContext helper. (1.3.14) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.14)
- Adds quote.tsx registry components for developers to use. (1.3.14) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.14)
- Adds support for AI SDK error toolOutput. (1.1.12) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.1.12)
- Adds a custom toCreateMessage callback for creating messages. (1.1.11) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.1.11)

### Behavior and default changes

- Skips rewriting unchanged messages after each run. (1.4.0) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.0)
- Pending tool approvals are persisted, and post-approval continuations are appended. (1.4.0) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.0)
- The external store adapter now forwards onResumeToolCall. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- Integrates AI SDK v5 data parts in message content. (1.1.11) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.1.11)
- AI SDK errors are displayed to users. (1.1.9) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.1.9)
- Uses the assistant UI thread ID remote ID as the thread ID by default. (1.1.9) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.1.9)

### Fixes and other changes

- Waits for threadListItem.remoteId instead of latching on the first empty paint. (1.4.6) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.6)
- Cloud history resolves persistence per call, allowing one adapter to serve many threads. (1.4.6) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.6)
- Audio message parts are forwarded as file parts instead of causing an error. (1.4.4) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.4)
- 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.4) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.4)
- 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.4) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.4)
- 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.4) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.4)
- Streams can resume using IDs discovered after the chat runtime mounts. (1.4.4) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.4)
- AI SDK text and reasoning part state is mapped onto the per-part status. (1.4.3) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.3)
- Data URL schemes are accepted case-insensitively, and parsed MIME types are normalized to lowercase. (1.4.2) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.2)
- MCP Apps reads the canonical nested resource URI pointer and retains the deprecated flat key as a fallback. (1.4.2) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.2)
- Waits for external thread history to load before resuming a stream. (1.4.0) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.0)
- Serializes history persistence to prevent duplicate appends. (1.4.0) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.0)
- 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.0) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.4.0)
- 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.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- AI SDK message creation now preserves direct file parts. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- Frontend tool schemas are validated before conversion. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- AI SDK message creation now preserves image media types. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- MCP toolkit entry names are included in close, connection, and tool-listing errors. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- providerMetadata now survives conversion on text, reasoning, and tool-call message parts. (1.3.41) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.41)
- Detects MCP tool name collisions with toolkit tools. (1.3.40) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.40)
- Partial-JSON metadata is attached to streaming tool arguments so consumers can tell which field is still mid-arrival. (1.3.35) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.35)
- 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.33) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.33)
- Distinguishes interrupt and pending tool calls using an actual interrupt or approval field instead of result being undefined. (1.3.28) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.28)
- Fixes a transient requires-action flicker for the approval-responded state. (1.3.28) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.28)
- The request body id is now the real thread id instead of the literal DEFAULT_THREAD_ID. (1.3.20) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.20)
- Preserves the latest thread token usage during pending turns. (1.3.19) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.19)
- All file types are accepted and validated against the adapter's accept constraint. (1.3.16) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.16)
- Assistant file parts are converted to FileMessagePart instead of being dropped. (1.3.16) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.16)
- Preserves runConfig.custom metadata after tool call resume in human-in-the-loop tools. (1.3.15) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.3.15)
- Uses AI SDK's idGenerator function for new messages. (1.1.11) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.1.11)
- Correctly initializes the history loading state. (1.1.10) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.1.10)
- Fixed history loading. (1.0.0) — [release notes](https://github.com/assistant-ui/assistant-ui/releases/tag/%40assistant-ui/react-ai-sdk%401.0.0)
