Version Packages - #1995
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
12 times, most recently
from
August 5, 2026 14:56
637103b to
8d52f29
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
2 times, most recently
from
August 6, 2026 13:22
b442062 to
a42469e
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
14 times, most recently
from
August 14, 2026 14:37
d893e6f to
e7be0e9
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
5 times, most recently
from
August 17, 2026 08:12
925ab20 to
eea5181
Compare
agents
@cloudflare/ai-chat
@cloudflare/codemode
hono-agents
@cloudflare/shell
@cloudflare/think
@cloudflare/voice
@cloudflare/worker-bundler
commit: |
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
August 17, 2026 18:04
eea5181 to
97c494a
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.21.0
Minor Changes
#2052
f9d71d6Thanks @cjol! - ExposeWebSocketChatTransportand its connection types from the framework-neutralagents/chat/transportentry point. React peers are now optional for framework-neutral clients and servers.Existing users of
agents/chat/reactor@cloudflare/ai-chat/reactmust continue to declare compatiblereactand@ai-sdk/reactdependencies explicitly.#2091
4d2084cThanks @cjol! - Accept AI SDK flexible schemas inagentTool, including Valibot adapters, while preserving schema-driven input inference and structured output validation. Zod is no longer a peer requirement of@cloudflare/ai-chat.Existing custom schemas that no longer type-check as AI SDK
FlexibleSchemamust use the schema library's AI SDK adapter or wrap raw JSON Schema withjsonSchema(). Validation-only Standard Schema implementations are insufficient because tool inputs must expose JSON Schema to the model.#2098
fe82e05Thanks @cjol! - Add connection-scoped Kitesurf support to Browser Tools through thebrowser: "kitesurf"session option. Unsupported durable session, Live View, recording, pause/resume, and Kitesurf-backed Quick Action surfaces remain unavailable.Existing Browser Tools users should note:
{ type: "browser_screenshot", mediaType, data }shape are now redacted. Return screenshots in that shape or store binary output elsewhere.#1948
aed6d8fThanks @ericclemmons! - Pass WorkflowretentionthroughAgent.runWorkflow().Patch Changes
#2037
1bca2a6Thanks @cjol! - AddbuildAgentPath()andbuildAgentUrl()for constructing canonical root-first Agent and sub-agent addresses for external HTTP requests, WebSocket connections, callbacks, and webhooks. React sub-agent connections now share the same descendant path encoder.#2051
b9343a0Thanks @AntoniTok! - Stream forwarded request bodies into sub-agents instead of buffering them in the parent Durable Object.Agent._cf_forwardToFacetandrouteSubAgentRequestboth didforwardInit.body = await req.arrayBuffer()before dispatching to a child facet, materialising the entire request body in the parent's isolate. Two consequences:Agent.fetchreturns beforeonRequestwhenever the path matches/sub/{class}/{name}, so an app that carefully bounded request bodies inonRequeststill had an unbounded read ahead of it — and no way to bound it itself./sub/.../sub/...address re-materialised the same bytes at every level.Both call sites now pass
req.bodythrough as a stream. Measured onwrangler dev --localwith a handler that never reads the body, peak RSS across theworkerdprocesses for a single POST:This restores the behaviour from before #1443, which switched to an explicit
RequestInitin order to set a header on WebSocket upgrades and re-attached the body witharrayBuffer()as a side effect. TheUpgradeheader handling from that fix is unchanged.One behavioural note: backpressure now reaches the client. A child that returns without reading the body will cause the remainder of the upload to be cancelled, where previously the parent drained it in full. Existing handlers that require the complete upload must consume or stream
request.bodybefore returning.#2034
efcb316Thanks @cjol! - Send Browser Run extraction schemas underresponse_format.json_schema, matching the Quick Actions/jsoncontract.Direct
browserExtract()andrunQuickAction()callers must renameresponse_format.schematoresponse_format.json_schema. The model-facingbrowser_extracttool still accepts its schema in the top-levelschemafield.#2023
2b2b598Thanks @threepointone! - TreatuseAgentChatobserver error frames as terminal responses.Plain-text error bodies are no longer parsed as stream chunks or merged into an empty assistant message. Error frames now clear observer streaming, replay, recovery, and tool-continuation state even when they omit
done, matching the transport-owned stream behavior.Existing observer UIs that displayed error bodies as assistant messages must move those diagnostics to a dedicated error surface.
#1996
753a674Thanks @mattzcarey! - Update PartyServer and the Cloudflare Workers development toolchain for@cloudflare/workers-typesv5 compatibility. New Think projects now use Workers Types v5 with matching Wrangler and Vite plugin versions.#1994
6e77f62Thanks @mattzcarey! - UsewrapAISDK()as the single AI SDK v6 and v7 tracing integration, removing the separatecreateAISDKTelemetry()callback adapter that could not preserve theinvoke_agentparent hierarchy. Mark asynchronously decided AI SDK v7 top-level approval spans when they outlive their invocation.Existing
createAISDKTelemetry()users must:Remove it from
registerTelemetry()and per-call telemetry integrations.Wrap the AI SDK namespace and call the wrapped functions instead:
Update telemetry queries that use the removed callback-only
cloudflare.agents.call.idorcloudflare.agents.tool_context.*attributes.#2035
5d66723Thanks @cjol! - Validate BrowserConnector tool arguments before execution and reject JSON-stringified Browser Run extraction schemas with an actionable error.Existing callers that pass values outside the documented schemas must correct them before execution:
attachToTarget().sessionIdtocdp.send, not the complete attachment result.#2049
ce0e608Thanks @cjol! - Preserve spacing between streamed text segments separated by tool calls. Think messenger delivery and Voice now share the same boundary-aware text joining logic fromagents/chat.Existing users must:
textDeltaFromStreamChunk()from@cloudflare/think/messengerswithTextStreamCallback, passing it the complete structured stream events.agents@0.21.0when installing@cloudflare/think@0.16.0or@cloudflare/voice@0.3.6; both now requireagents >=0.20.2.@cloudflare/think@0.16.0
Minor Changes
#2063
3de6c8eThanks @cjol! - Remove the convention-driven Think framework, including the Vite plugin, generated Worker entry and virtual modules, CLI, Studio, framework helpers, and server-entry helpers. Remove the separatecreate-thinkscaffolder and its starter templates. Think remains available as an explicit runtime for hand-written Worker entries.Migration for existing framework users
If you only use the
Thinkruntime, React integration, messengers, workflows, extensions, or tools, no migration is required.@cloudflare/think/viteagents/vitefor decorators andagents:skills, alongside@cloudflare/vite-plugin.virtual:think/entrysrc/server.ts, that explicitly exports each Think class.wrangler.jsonc; route withrouteAgentRequest()and, for custom sub-agent routing,routeSubAgentRequest().@cloudflare/think/framework@cloudflare/think/server-entrythink typeswrangler types.think initorcreate-thinknpx create-cloudflare@latest --template cloudflare/agents-starter, or manually configure a Think Worker.think studio,think state, orthink inspectExisting deployments must preserve generated
ThinkAgent_*andThinkSubAgent_*constructor names and existing migration history. Sub-agent registries useClass.name, so export aliases alone do not preserve compatibility. If renaming classes, use a data-preserving Durable Object rename migration.#2049
ce0e608Thanks @cjol! - Preserve spacing between streamed text segments separated by tool calls. Think messenger delivery and Voice now share the same boundary-aware text joining logic fromagents/chat.Existing users must:
textDeltaFromStreamChunk()from@cloudflare/think/messengerswithTextStreamCallback, passing it the complete structured stream events.agents@0.21.0when installing@cloudflare/think@0.16.0or@cloudflare/voice@0.3.6; both now requireagents >=0.20.2.Patch Changes
#2082
9d35e81Thanks @cjol! - Emit workspace image reads asimage-datamodel content so AI SDK v6 routes them as images, while preservingfile-dataoutput for PDFs.Existing consumers that inspect raw workspace tool content must handle
image-datafor images; PDFs continue to usefile-data. Normal tool callers require no change.#2023
2b2b598Thanks @threepointone! - TreatuseAgentChatobserver error frames as terminal responses.Plain-text error bodies are no longer parsed as stream chunks or merged into an empty assistant message. Error frames now clear observer streaming, replay, recovery, and tool-continuation state even when they omit
done, matching the transport-owned stream behavior.Existing observer UIs that displayed error bodies as assistant messages must move those diagnostics to a dedicated error surface.
#1996
753a674Thanks @mattzcarey! - Update PartyServer and the Cloudflare Workers development toolchain for@cloudflare/workers-typesv5 compatibility. New Think projects now use Workers Types v5 with matching Wrangler and Vite plugin versions.#2062
882ae63Thanks @ben-reitz! - ExposeTurnConfig.repairToolCallso callers can repair malformed tool calls before tool execution.@cloudflare/voice-plivo@0.1.0
Minor Changes
#2048
3172a23Thanks @cjol! - Add Plivo audio streaming adapter for the Cloudflare Agents voice pipeline.PlivoAdapterbridges Plivo's bidirectional audio streaming WebSocket protocol toVoiceAgent, structured as a sibling to the Twilio provider. Audio is mulaw 8kHz on the Plivo side, decoded and resampled to 16kHz PCM for the agent. Includes barge-in support via Plivo'sclearAudioevent and asetupPlivoApplication()helper that configures the Plivo application and phone number through the REST API.@cloudflare/ai-chat@0.10.2
Patch Changes
#2023
2b2b598Thanks @threepointone! - TreatuseAgentChatobserver error frames as terminal responses.Plain-text error bodies are no longer parsed as stream chunks or merged into an empty assistant message. Error frames now clear observer streaming, replay, recovery, and tool-continuation state even when they omit
done, matching the transport-owned stream behavior.Existing observer UIs that displayed error bodies as assistant messages must move those diagnostics to a dedicated error surface.
#2052
f9d71d6Thanks @cjol! - ExposeWebSocketChatTransportand its connection types from the framework-neutralagents/chat/transportentry point. React peers are now optional for framework-neutral clients and servers.Existing users of
agents/chat/reactor@cloudflare/ai-chat/reactmust continue to declare compatiblereactand@ai-sdk/reactdependencies explicitly.#2091
4d2084cThanks @cjol! - Accept AI SDK flexible schemas inagentTool, including Valibot adapters, while preserving schema-driven input inference and structured output validation. Zod is no longer a peer requirement of@cloudflare/ai-chat.Existing custom schemas that no longer type-check as AI SDK
FlexibleSchemamust use the schema library's AI SDK adapter or wrap raw JSON Schema withjsonSchema(). Validation-only Standard Schema implementations are insufficient because tool inputs must expose JSON Schema to the model.hono-agents@3.0.12
Patch Changes
#2115
caba4caThanks @ben-reitz! - Preserve HTTP rejection responses returned byonBeforeConnectinstead of continuing through downstream Hono handlers.Existing applications that relied on rejected Agent WebSocket requests falling through to another Hono handler must mount
agentsMiddlewareon a narrower path or configure a distinct Agent route prefix.hono-agents@3.0.12also requiresagents >=0.17.1.@cloudflare/voice@0.3.6
Patch Changes
#2083
48eeba7Thanks @cjol! - DefineVoiceTurnContext.messagesas completed history before the current transcript for both text and audio turns, preventing duplicate user messages when following the documented prompt construction.Existing
onTurn()implementations:context.messagesdirectly as the complete LLM input, appendtranscriptexactly once.transcripttocontext.messages, no change is required.getConversationHistory()calls insideonTurn()continue to include the current transcript.#2004
0efd545Thanks @cjol! - Pass the fullkeytermsarray to Workers AI Flux and Nova-3 STT instead of only the first term.#2049
ce0e608Thanks @cjol! - Preserve spacing between streamed text segments separated by tool calls. Think messenger delivery and Voice now share the same boundary-aware text joining logic fromagents/chat.Existing users must:
textDeltaFromStreamChunk()from@cloudflare/think/messengerswithTextStreamCallback, passing it the complete structured stream events.agents@0.21.0when installing@cloudflare/think@0.16.0or@cloudflare/voice@0.3.6; both now requireagents >=0.20.2.@cloudflare/worker-bundler@0.2.3
Patch Changes
#2043
38bbf5aThanks @abstractedfox! - Add Python package support.Existing worker-bundler users should note:
package.jsonorpyproject.toml, not both. Projects that provide both must remove one manifest from the bundler input or install dependencies separately.index.pyis now considered beforesrc/worker.tsandsrc/worker.jsduring default entry-point detection. SetentryPoint,server, orwrangler.mainin projects where that is ambiguous.FileSystem.write()implementations used with Python packages must accept both strings and{ data: Uint8Array }binary entries.#2016
2ee8424Thanks @ben-reitz! - Fix dependency extraction for npm tarballs whose enclosing directory is not namedpackage, including DefinitelyTyped packages.@cloudflare/agent-think@0.0.6
Patch Changes
9d35e81,1bca2a6,b9343a0,efcb316,2b2b598,753a674,f9d71d6,882ae63,4d2084c,6e77f62,fe82e05,3de6c8e,5d66723,ce0e608,aed6d8f]: