Minor Changes
-
#2388
1031c0fThanks @threepointone! - Requireai@^7and@ai-sdk/react@^4, because Think bundles providers that return AI SDK v7 models. See Think dependencies. -
#2056
20142e5Thanks @AntoniTok! - Breaking: declared scheduled tasks now run on the root agent only; overridegetScheduledTasksScope()to return"all"for per-facet scheduling. See Think scheduled tasks. -
#2330
e80278eThanks @threepointone! - Browser chat turns now use thewebchannel, so its configured tools and turn limit apply. See Think channels.
Patch Changes
-
#2390
c55ec80Thanks @threepointone! - Report a failed agent-tool child as failed even when it was evicted before recording the failure. See Agent tools. -
#2384
f904999Thanks @threepointone! - Fix agent-tool chunks being duplicated or dropped on reconnect, child re-attach, and fiber recovery. See Agent tools. -
#2364
5e0507eThanks @threepointone! - AddeventDelivery: "terminal"torunAgentToolto forward only lifecycle, progress, and milestone events for a run. See Agent tools. -
#2334
7f564e7Thanks @threepointone! - AI Chat and Think send the terminaldoneframe after persisting and broadcasting the assistant reply, so later sends are not overwritten. See Chat agents. -
#2391
d3fe93cThanks @threepointone! - Keep a tool call's input when its approval request arrives before the input finishes streaming (#1872). See Human in the loop. -
#2326
a3e4eefThanks @threepointone! - Fix two Think warnings that fired, or failed to fire, because of a false method-override check. See Think lifecycle hooks. -
#2408
6c8f85aThanks @threepointone! - Requireagents@>=0.25.0so Think and AI Chat can import the chat helpers provided by that release. -
#2378
dbf170cThanks @threepointone! -useAgentChatgainsonTurnEnd, and terminal chat frames carry outcomes and user message IDs so clients can settle sends correctly across recovery and reconnects. Replay, tool callbacks, and turn state now remain consistent through terminal delivery; see Chat agents. -
#2005
c2f7672Thanks @cjol! - Native RPC calls to async Agent and Think methods now start lifecycle initialization first; address Agents by name because raw IDs fromnewUniqueId()andidFromString()now fail their first async RPC. See Lifecycle. -
#2036
040db5cThanks @justanotherbyte! - Stop storing compaction summaries that clients echo back, and hide duplicates already stored (#1984). See Sessions. -
#2405
11f87b5Thanks @threepointone! - Context blocks can setwhenChanged: "remind"to send changes as a reminder after the cached prompt instead of rewriting it. See Context. -
#2393
a7d0e02Thanks @threepointone! - Continuation turns that fail before streaming now report an error to clients andonChatResponseinstead of appearing to hang (#2381). See Client tools. -
#2323
57e2e46Thanks @threepointone! - Messenger attachments load whenfetchDatareturns a plainArrayBuffer. See Messengers. -
#2325
6289a15Thanks @threepointone! - Messenger replies now see every message in a quick burst, not just the last one. See Messengers. -
#2324
34df44bThanks @threepointone! - Messenger replies no longer post a...placeholder on adapters without native streaming. See Messengers. -
#2347
00a07bdThanks @threepointone! - A recovered messenger turn delivers its answer to the thread instead of an "interrupted" apology. See Messengers. -
#2353
06d50ebThanks @threepointone! -rejectExecution()accepts{ autoContinue: false }to record a rejection without starting another turn. See Actions. -
#2238
c3a4010Thanks @mattzcarey! - Interfaces can now be used asPropsonAgent,AIChatAgent,Think, and routing helpers. See Routing. -
#2040
2afe0e0Thanks @AntoniTok! - Keep assistant messages and tool outputs attached to the correct turn when a provider reuses atoolCallId;resolveToolMergeIdis deprecated in favour ofreconcileMessages. See Chat agents. -
#2039
c658b83Thanks @justanotherbyte! -useAgentChatkeeps messages sent while disconnected when reconnecting, including Think transcripts, instead of erasing them (#1983). See Chat agents. -
#2348
39361faThanks @threepointone! - Fix text appearing twice when reconnecting during a tool continuation. See Resumable streaming. -
#2340
3b278b2Thanks @threepointone! -onChatResponsestill fires, withrecovered: true, for a turn persisted just before a Durable Object reset (#2266, #1842). See Think lifecycle hooks. -
#2404
9d125c8Thanks @threepointone! - Addsession.mirror()to keep an in-memory transcript in sync with a session's change feed. See Sessions. -
#2392
4f26402Thanks @threepointone! - Settle approved tool calls that never ran once the conversation moves past them, so later turns don't send unresolved tool calls (#2382). See Human in the loop. -
#2321
7d58adeThanks @threepointone! - Think can write server-authoredmessageMetadataonto assistant messages, per agent or per turn, and recovery preserves metadata even when keys match built-in object properties. See Think lifecycle hooks. -
#2329
558424cThanks @threepointone! - Recovery continuations extend the interrupted assistant message instead of adding a second one. See Think. -
#2331
0c5fd95Thanks @threepointone! - Resolving a paused execution removes the model's now-stale "waiting for approval" text from the transcript (#2054). See Actions. -
#2355
ccca389Thanks @threepointone! - AddgetGateway(model)to set AI Gateway options such as metadata and caching for string models (#2262). See Think. -
#2388
1031c0fThanks @threepointone! -resolveModel()rejects malformed model ids up front, and@hf/...ids get the same Workers AI settings as@cf/.... See Think. -
#2354
d3cb4e1Thanks @threepointone! - AddmessengerConcurrencyto choose the Chat SDK concurrency strategy for messenger replies (#2313). See Messengers. -
#2387
9f70bc8Thanks @threepointone! - Messenger replies hold the thread lock and retain queued follow-ups during slow delivery; typing updates are serialized and settle before reply text arrives. See Think messengers. -
#2413
bcb1f12Thanks @threepointone! - Fix regenerate continuing the old response instead of replacing it (#2028). See Multi-chat. -
#2417
9906881Thanks @threepointone! - A regeneration interrupted by a restart now recovers on its own branch. See Multi-chat. -
#2356
f92420fThanks @threepointone! - Older-message truncation moves in steps (truncationStep), so the prompt-cache prefix stays stable across turns (#2200). See Think. -
#2328
84e6e5cThanks @threepointone! - Stream-stall recovery retries stalls before the first chunk and now callsonChatRecovery. See Think lifecycle hooks. -
#2362
7a30c1fThanks @threepointone! -step.prompt()turns interrupted mid-stream now recover with their structured output instead of failing (#1727). See Workflows. -
#2351
0b13fe0Thanks @threepointone! - AddwaitForSubmission()for durable submissions and harden cancellation, status-hook, reset-turn, and paused-tool lifecycle handling so waits settle and terminal status is reported once. See Programmatic submissions. -
#2414
484f7abThanks @threepointone! -telegramMessengeradds anativeStreamingoption and works withverifyWebhookon@chat-adapter/telegram4.38 (#2397). See Messengers. -
#2350
52e624eThanks @threepointone! - Think hooks and tools can read the running turn identity, andactiveChannelstays scoped to its owning turn. See Lifecycle hooks. -
#2343
a2f6f94Thanks @threepointone! - Harden transient chat recovery across Think and AI Chat, including retry budgeting, cancellation, terminal error delivery, and recovery after restarts. See theagents/chatrecovery helpers. -
#2339
1edc989Thanks @threepointone! - Truncate older tool results after model conversion sotoModelOutputand provider-executed tools keep valid outputs (#2014). See Sessions. -
#2290
5848d71Thanks @ben-reitz! -runTurn({ mode: "wait" })returns the assistant message from its own turn, even if other turns persist in the meantime. See Programmatic submissions. -
#2341
caef62aThanks @threepointone! - Wait-modeTurnResult.outputreturns the parsed structured output, and submission inspections include the persistedmessageId(#2263, #2264). See Programmatic submissions.