# What changed in @ai-sdk/react

> 31 changes in @ai-sdk/react 2 to 4 from its official release notes, upgrade guides and advisories: 6 breaking, 3 new APIs and options. Each one cited. Sources checked 2026-10-17. HTML: https://unstale.sh/npm/@ai-sdk/react/

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

## @ai-sdk/react 4

### Breaking changes

- addToolOutput now rejects continuous sessions. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)
- Removes the deferred managed Responses coordinator and the autoContinueTools option. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)
- Backend usage state is removed from the realtime runtime. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)
- Live tool-result aliases are removed. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)
- Realtime configuration now requires explicitly selecting relay transport mode. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)
- sendTextMessage now rejects continuous sessions. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)

### New APIs and options

- Applications exchange WebRTC SDP through an application endpoint using api.session. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)
- Experimental client-delegated Live conversations can use browser-direct WebRTC alongside WebSockets. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)
- Adds realtime WebSocket sessions with lifecycle management, transcripts, context append, reversible capture, acknowledgements, and continuous PCM playback. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)

### Performance

- Unused realtime runtime code can now be tree-shaken, potentially reducing application bundle size. (4.0.107) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.107)

### Behavior and default changes

- Default chat IDs are generated on first access, allowing useChat() to prerender without reading a random value when the ID is unused during rendering. (4.0.147) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.147)
- Live continuous sessions enforce 128 KiB frame and combined buffered-send budgets using actual encoded wire bytes. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)
- Adds WebSocket relay support with shared session state, capture controls, bounded playback, graceful close, and application-handled Live delegation. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)

### Fixes and other changes

- Preserves replay semantics when using custom chat transports. (4.0.141) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.141)
- Prevents a second resume request on mount when an already submitted or streaming chat remounts with a shared Chat instance. (2.0.277, 3.0.307, 4.0.141) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.141), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%403.0.307), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%402.0.277)
- Prevents stale object streams from overwriting newer results. (2.0.277, 3.0.306, 4.0.141) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.141), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%402.0.277), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%403.0.306)
- Streamed chat updates no longer starve navigation transitions. (4.0.130) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.130)
- Automatic stream resumption is deduplicated for shared Chat instances, preventing duplicate resumption behavior. (4.0.126) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.126)
- Replacement completion requests remain loading and cancellable when an earlier request settles. (4.0.112) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.112)
- Prevents stale throttled completion updates from overwriting a newer request. (4.0.112) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.112)
- Preserves Headers instances in useCompletion requests. (4.0.110) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.110)
- Handles rejected asynchronous onFinish callbacks. (4.0.110) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.110)
- Preserves active cancellation state during overlapping requests. (2.0.268, 3.0.293, 4.0.110) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%403.0.293), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%402.0.268), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.110)
- Keeps useObject cleared when an initial value is configured. (4.0.110) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.110)
- Realtime session ownership and callbacks publish only after React commits, preserving connected sessions across abandoned renders and unmounting controls safely. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)
- Omitted onToolCall remains undefined, preserving missing-tool-handler diagnostics; defined handlers returning undefined still support manual tool output. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)
- maxPlaybackBufferSeconds is supported only for continuous PCM sessions. (4.0.105) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.105)
- Chats are aborted when their useChat id changes during a stream. (4.0.101) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.101)
- Fallback errors are surfaced for empty HTTP response bodies. (4.0.95) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.95)
- Preserves the generated useObject value when the API URL changes. (4.0.69) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%404.0.69)

## @ai-sdk/react 2

### Fixes and other changes

- Nullish useChat IDs are treated like omitted IDs, preventing chat instance recreation on every render. (2.0.275) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/react%402.0.275)
