Version Packages#1409
Merged
threepointone merged 1 commit intomainfrom Apr 28, 2026
Merged
Conversation
4fff04a to
1beb058
Compare
1beb058 to
13133fd
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
agents@0.11.8
Patch Changes
#1411
2fa68beThanks @threepointone! - AddAbortRegistry.linkExternal(id, signal)for connecting externalAbortSignals to per-request abort controllers, and add"aborted"to theSaveMessagesResult.statusunion (#1406).linkExternalis the integration point for callers that drive a chat turn programmatically and want to cancel it from outside without knowing the internally-generated request id (the helper-as-sub-agent pattern, where a parent'sAbortSignalfrom the AI SDK toolexecuteneeds to land inside a sub-agent'ssaveMessagescall). When the external signal aborts, the registry's controller foridis cancelled — the same pathchat-request-canceltakes over the WebSocket. The returned detacher must be called infinallyto avoid leaking listeners on long-lived parent signals.SaveMessagesResult.statusnow includes"aborted"alongside"completed"and"skipped". Existing callers that only switch on"completed"are unaffected; turns cancelled via the new signal API surface as"aborted"rather than"completed".Also exposes
SaveMessagesOptionsfromagents/chatfor use by@cloudflare/thinkand@cloudflare/ai-chattyped APIs.AbortRegistry.cancel(id, reason?)now accepts an optional reason that flows through tosignal.reasonon the cancelled controller.See
cloudflare/agents#1406for the motivating use case.ca510d4Thanks @threepointone! - Tighten internal peer dependency floors to reflect the current monorepo set we actually test against:@cloudflare/ai-chat(>=0.0.8→>=0.5.2) and@cloudflare/codemode(>=0.0.7→>=0.3.4). Upper bound (<1.0.0) is unchanged.No runtime change in
agentsitself. The visible effect for consumers: pairing the latestagentswith a stale@cloudflare/ai-chat(<0.5.2) or@cloudflare/codemode(<0.3.4) now produces a peer warning where it previously did not. That's the intended signal — those older combinations are no longer tested in the monorepo.@cloudflare/ai-chat@0.5.3
Patch Changes
ca510d4Thanks @threepointone! - Tighten theagentspeer dependency floor from>=0.8.7to>=0.11.7to reflect the current monorepo set we actually test against. Upper bound (<1.0.0) is unchanged.No runtime change in
@cloudflare/ai-chatitself. The visible effect for consumers: pairing the latest@cloudflare/ai-chatwith a staleagents(<0.11.7) now produces a peer warning where it previously did not. That's the intended signal —agentsversions older than 0.11.7 are no longer tested against this@cloudflare/ai-chat.#1411
2fa68beThanks @threepointone! - Addoptions.signaltoAIChatAgent.saveMessagesandcontinueLastTurnfor external cancellation of programmatic turns, plus protectedabortRequest(id)/abortAllRequests()methods (#1406).saveMessagesandcontinueLastTurnaccept a secondSaveMessagesOptionsargument:The signal is linked to AIChatAgent's per-turn
AbortControllerand produces the same end state as achat-request-cancelWebSocket message: the inference loop's signal aborts, partial chunks persist, the result reportsstatus: "aborted", andonChatResponsefires with the same status. Pre-aborted signals short-circuit before any model work runs. Listeners are detached cleanly when the turn finishes, so the same long-lived signal can be passed to many turns without leaking.abortRequest(id, reason?)andabortAllRequests()are protected entry points for subclasses that want to cancel turns without tracking ids.SaveMessagesResult.statusnow includes"aborted"alongside"completed"and"skipped". Existing callers that only switch on"completed"are unaffected.Limitations.
AbortSignalcannot cross Durable Object RPC. Construct the controller inside the DO that callssaveMessages.chatRecoveryis enabled, the recovered turn runs without the original signal.See
cloudflare/agents#1406for the motivating use case.hono-agents@3.0.11
Patch Changes
ca510d4Thanks @threepointone! - Tighten theagentspeer dependency floor from>=0.9.0to>=0.11.7to reflect the current monorepo set we actually test against. Upper bound (<1.0.0) is unchanged. The correspondingagentsdevDependency is also bumped from^0.11.0to^0.11.7so dev and peer floors line up.No runtime change in
hono-agentsitself. The visible effect for consumers: pairing the latesthono-agentswith a staleagents(<0.11.7) now produces a peer warning where it previously did not. That's the intended signal —agentsversions older than 0.11.7 are no longer tested against thishono-agents.@cloudflare/shell@0.3.5
Patch Changes
19a4c08Thanks @threepointone! - Bump dependencies:isomorphic-gitfrom^1.37.5to^1.37.6(runtime) and@cloudflare/vitest-pool-workersfrom^0.15.0to^0.15.1(devDependency, test-only — does not affect the published artifact).No API or runtime behavior change in
@cloudflare/shellitself.@cloudflare/think@0.4.2
Patch Changes
ca510d4Thanks @threepointone! - Tighten internal peer dependency floors to reflect the current monorepo set we actually test against:agents(>=0.8.7→>=0.11.7),@cloudflare/codemode(>=0.0.7→>=0.3.4), and@cloudflare/shell(>=0.2.0→>=0.3.4). Upper bounds (<1.0.0) are unchanged.No runtime change in
@cloudflare/thinkitself. The visible effect for consumers: pairing the latest@cloudflare/thinkwith a staleagents(<0.11.7),@cloudflare/codemode(<0.3.4), or@cloudflare/shell(<0.3.4) now produces a peer warning where it previously did not. That's the intended signal — those older combinations are no longer tested in the monorepo.#1411
2fa68beThanks @threepointone! - Addoptions.signaltoThink.saveMessagesandThink.continueLastTurnfor external cancellation of programmatic turns, plus protectedabortRequest(id)/abortAllRequests()methods to replace bracket access into the private_abortsregistry (#1406).saveMessagesandcontinueLastTurnaccept a secondSaveMessagesOptionsargument:The signal is linked to Think's per-turn
AbortControllerfor the duration of the call. When it aborts:chat-request-canceltakes);saveMessagesresolves with{ status: "aborted" };onChatResponsefires withstatus: "aborted".Pre-aborted signals short-circuit before any model work runs. Listeners are detached cleanly when the turn finishes, so passing the same long-lived
AbortSignalto many turns (e.g. a parent chat-turn signal driving multiple sub-agent calls) is safe and leak-free.abortRequest(id, reason?)andabortAllRequests()are protected entry points for DO subclasses (e.g. RPC-driven helpers) that want to cancel turns without tracking ids — they replace the historical(this as unknown as { _aborts: ... })._aborts.destroyAll()workaround used by helper-as-sub-agent implementations.SaveMessagesResult.statusnow includes"aborted"alongside"completed"and"skipped". Existing callers that only switch on"completed"are unaffected.Limitations.
AbortSignalcannot cross Durable Object RPC. Construct the controller inside the DO that callssaveMessages. To bridge a parent's intent into a child DO, return aReadableStreamfrom the child whosecancelcallback aborts a per-turn controller —examples/agents-as-toolsshows the canonical pattern.chatRecoveryis enabled, the recovered turn callscontinueLastTurn()internally without the original signal — an abort fired after restart has no effect on the recovered turn.See
cloudflare/agents#1406for the motivating use case.@cloudflare/voice@0.1.3
Patch Changes
ca510d4Thanks @threepointone! - Tighten theagentspeer dependency floor from>=0.9.0to>=0.11.7to reflect the current monorepo set we actually test against. Upper bound (<1.0.0) is unchanged.No runtime change in
@cloudflare/voiceitself. The visible effect for consumers: pairing the latest@cloudflare/voicewith a staleagents(<0.11.7) now produces a peer warning where it previously did not. That's the intended signal —agentsversions older than 0.11.7 are no longer tested against this@cloudflare/voice.@cloudflare/worker-bundler@0.1.3
Patch Changes
19a4c08Thanks @threepointone! - Bumpes-module-lexerfrom^2.0.0to^2.1.0. Caret upper bound (<3.0.0) is unchanged.No API or runtime behavior change in
@cloudflare/worker-bundleritself.