Skip to content

Version Packages - #1995

Merged
mattzcarey merged 1 commit into
mainfrom
changeset-release/main
Aug 18, 2026
Merged

Version Packages#1995
mattzcarey merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

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 f9d71d6 Thanks @cjol! - Expose WebSocketChatTransport and its connection types from the framework-neutral agents/chat/transport entry point. React peers are now optional for framework-neutral clients and servers.

    Existing users of agents/chat/react or @cloudflare/ai-chat/react must continue to declare compatible react and @ai-sdk/react dependencies explicitly.

  • #2091 4d2084c Thanks @cjol! - Accept AI SDK flexible schemas in agentTool, 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 FlexibleSchema must use the schema library's AI SDK adapter or wrap raw JSON Schema with jsonSchema(). Validation-only Standard Schema implementations are insufficient because tool inputs must expose JSON Schema to the model.

  • #2098 fe82e05 Thanks @cjol! - Add connection-scoped Kitesurf support to Browser Tools through the browser: "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:

    • Large base64 values returned outside the canonical { type: "browser_screenshot", mediaType, data } shape are now redacted. Return screenshots in that shape or store binary output elsewhere.
    • TanStack browser tools have one output channel, so screenshot output is reduced to the compact model-facing summary rather than returning raw base64 data.
  • #1948 aed6d8f Thanks @ericclemmons! - Pass Workflow retention through Agent.runWorkflow().

Patch Changes

  • #2037 1bca2a6 Thanks @cjol! - Add buildAgentPath() and buildAgentUrl() 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 b9343a0 Thanks @AntoniTok! - Stream forwarded request bodies into sub-agents instead of buffering them in the parent Durable Object.

    Agent._cf_forwardToFacet and routeSubAgentRequest both did forwardInit.body = await req.arrayBuffer() before dispatching to a child facet, materialising the entire request body in the parent's isolate. Two consequences:

    • The read sat in front of application-level validation. Agent.fetch returns before onRequest whenever the path matches /sub/{class}/{name}, so an app that carefully bounded request bodies in onRequest still had an unbounded read ahead of it — and no way to bound it itself.
    • The cost was per hop. A nested /sub/.../sub/... address re-materialised the same bytes at every level.

    Both call sites now pass req.body through as a stream. Measured on wrangler dev --local with a handler that never reads the body, peak RSS across the workerd processes for a single POST:

    Request body facet route, before facet route, after canonical route (control)
    16 MB +75 MB +4 MB +2 MB
    64 MB +268 MB +4 MB +2 MB
    128 MB +546 MB +4 MB +2 MB

    This restores the behaviour from before #1443, which switched to an explicit RequestInit in order to set a header on WebSocket upgrades and re-attached the body with arrayBuffer() as a side effect. The Upgrade header 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.body before returning.

  • #2034 efcb316 Thanks @cjol! - Send Browser Run extraction schemas under response_format.json_schema, matching the Quick Actions /json contract.

    Direct browserExtract() and runQuickAction() callers must rename response_format.schema to response_format.json_schema. The model-facing browser_extract tool still accepts its schema in the top-level schema field.

  • #2023 2b2b598 Thanks @threepointone! - Treat useAgentChat observer 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 753a674 Thanks @mattzcarey! - Update PartyServer and the Cloudflare Workers development toolchain for @cloudflare/workers-types v5 compatibility. New Think projects now use Workers Types v5 with matching Wrangler and Vite plugin versions.

  • #1994 6e77f62 Thanks @mattzcarey! - Use wrapAISDK() as the single AI SDK v6 and v7 tracing integration, removing the separate createAISDKTelemetry() callback adapter that could not preserve the invoke_agent parent 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:

      import * as ai from "ai";
      import { wrapAISDK } from "agents/observability/ai";
      
      const tracedAI = wrapAISDK(ai, {
        storeMessages: true,
        storeTools: true,
      });
      
      await tracedAI.generateText(/* ... */);
    • Update telemetry queries that use the removed callback-only cloudflare.agents.call.id or cloudflare.agents.tool_context.* attributes.

  • #2035 5d66723 Thanks @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:

    • Pass extraction schemas as JSON objects, not JSON strings.
    • Pass the string returned in attachToTarget().sessionId to cdp.send, not the complete attachment result.
  • #2049 ce0e608 Thanks @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 from agents/chat.

    Existing users must:

    • Replace imports of textDeltaFromStreamChunk() from @cloudflare/think/messengers with TextStreamCallback, passing it the complete structured stream events.
    • Upgrade to agents@0.21.0 when installing @cloudflare/think@0.16.0 or @cloudflare/voice@0.3.6; both now require agents >=0.20.2.
    • Update exact-text expectations if they relied on segments around tool calls being concatenated without a space.

@cloudflare/think@0.16.0

Minor Changes

  • #2063 3de6c8e Thanks @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 separate create-think scaffolder 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 Think runtime, React integration, messengers, workflows, extensions, or tools, no migration is required.

    Existing use Required change
    @cloudflare/think/vite Use agents/vite for decorators and agents:skills, alongside @cloudflare/vite-plugin.
    virtual:think/entry Add a real Worker entry, such as src/server.ts, that explicitly exports each Think class.
    Generated bindings, migrations, and routing Declare top-level Durable Object bindings and migrations in wrangler.jsonc; route with routeAgentRequest() and, for custom sub-agent routing, routeSubAgentRequest().
    @cloudflare/think/framework Move generated configuration and class exports into application code.
    @cloudflare/think/server-entry Use Agents SDK routing helpers and application-owned request handlers.
    think types Use wrangler types.
    think init or create-think Use npx create-cloudflare@latest --template cloudflare/agents-starter, or manually configure a Think Worker.
    think studio, think state, or think inspect No direct replacement.

    Existing deployments must preserve generated ThinkAgent_* and ThinkSubAgent_* constructor names and existing migration history. Sub-agent registries use Class.name, so export aliases alone do not preserve compatibility. If renaming classes, use a data-preserving Durable Object rename migration.

  • #2049 ce0e608 Thanks @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 from agents/chat.

    Existing users must:

    • Replace imports of textDeltaFromStreamChunk() from @cloudflare/think/messengers with TextStreamCallback, passing it the complete structured stream events.
    • Upgrade to agents@0.21.0 when installing @cloudflare/think@0.16.0 or @cloudflare/voice@0.3.6; both now require agents >=0.20.2.
    • Update exact-text expectations if they relied on segments around tool calls being concatenated without a space.

Patch Changes

  • #2082 9d35e81 Thanks @cjol! - Emit workspace image reads as image-data model content so AI SDK v6 routes them as images, while preserving file-data output for PDFs.

    Existing consumers that inspect raw workspace tool content must handle image-data for images; PDFs continue to use file-data. Normal tool callers require no change.

  • #2023 2b2b598 Thanks @threepointone! - Treat useAgentChat observer 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 753a674 Thanks @mattzcarey! - Update PartyServer and the Cloudflare Workers development toolchain for @cloudflare/workers-types v5 compatibility. New Think projects now use Workers Types v5 with matching Wrangler and Vite plugin versions.

  • #2062 882ae63 Thanks @ben-reitz! - Expose TurnConfig.repairToolCall so callers can repair malformed tool calls before tool execution.

@cloudflare/voice-plivo@0.1.0

Minor Changes

  • #2048 3172a23 Thanks @cjol! - Add Plivo audio streaming adapter for the Cloudflare Agents voice pipeline.

    PlivoAdapter bridges Plivo's bidirectional audio streaming WebSocket protocol to VoiceAgent, 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's clearAudio event and a setupPlivoApplication() helper that configures the Plivo application and phone number through the REST API.

@cloudflare/ai-chat@0.10.2

Patch Changes

  • #2023 2b2b598 Thanks @threepointone! - Treat useAgentChat observer 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 f9d71d6 Thanks @cjol! - Expose WebSocketChatTransport and its connection types from the framework-neutral agents/chat/transport entry point. React peers are now optional for framework-neutral clients and servers.

    Existing users of agents/chat/react or @cloudflare/ai-chat/react must continue to declare compatible react and @ai-sdk/react dependencies explicitly.

  • #2091 4d2084c Thanks @cjol! - Accept AI SDK flexible schemas in agentTool, 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 FlexibleSchema must use the schema library's AI SDK adapter or wrap raw JSON Schema with jsonSchema(). 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 caba4ca Thanks @ben-reitz! - Preserve HTTP rejection responses returned by onBeforeConnect instead of continuing through downstream Hono handlers.

    Existing applications that relied on rejected Agent WebSocket requests falling through to another Hono handler must mount agentsMiddleware on a narrower path or configure a distinct Agent route prefix. hono-agents@3.0.12 also requires agents >=0.17.1.

@cloudflare/voice@0.3.6

Patch Changes

  • #2083 48eeba7 Thanks @cjol! - Define VoiceTurnContext.messages as 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:

    • If you pass context.messages directly as the complete LLM input, append transcript exactly once.
    • If you already append transcript to context.messages, no change is required.
    • Direct getConversationHistory() calls inside onTurn() continue to include the current transcript.
  • #2004 0efd545 Thanks @cjol! - Pass the full keyterms array to Workers AI Flux and Nova-3 STT instead of only the first term.

  • #2049 ce0e608 Thanks @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 from agents/chat.

    Existing users must:

    • Replace imports of textDeltaFromStreamChunk() from @cloudflare/think/messengers with TextStreamCallback, passing it the complete structured stream events.
    • Upgrade to agents@0.21.0 when installing @cloudflare/think@0.16.0 or @cloudflare/voice@0.3.6; both now require agents >=0.20.2.
    • Update exact-text expectations if they relied on segments around tool calls being concatenated without a space.

@cloudflare/worker-bundler@0.2.3

Patch Changes

  • #2043 38bbf5a Thanks @abstractedfox! - Add Python package support.

    Existing worker-bundler users should note:

    • Automatic dependency installation accepts either package.json or pyproject.toml, not both. Projects that provide both must remove one manifest from the bundler input or install dependencies separately.
    • index.py is now considered before src/worker.ts and src/worker.js during default entry-point detection. Set entryPoint, server, or wrangler.main in projects where that is ambiguous.
    • Custom FileSystem.write() implementations used with Python packages must accept both strings and { data: Uint8Array } binary entries.
  • #2016 2ee8424 Thanks @ben-reitz! - Fix dependency extraction for npm tarballs whose enclosing directory is not named package, including DefinitelyTyped packages.

@cloudflare/agent-think@0.0.6

Patch Changes

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@github-actions
github-actions Bot force-pushed the changeset-release/main branch 12 times, most recently from 637103b to 8d52f29 Compare August 5, 2026 14:56
@github-actions
github-actions Bot force-pushed the changeset-release/main branch 2 times, most recently from b442062 to a42469e Compare August 6, 2026 13:22
@github-actions
github-actions Bot force-pushed the changeset-release/main branch 14 times, most recently from d893e6f to e7be0e9 Compare August 14, 2026 14:37
@github-actions
github-actions Bot force-pushed the changeset-release/main branch 5 times, most recently from 925ab20 to eea5181 Compare August 17, 2026 08:12
@pkg-pr-new

pkg-pr-new Bot commented Aug 17, 2026

Copy link
Copy Markdown

Open in StackBlitz

agents

npm i https://pkg.pr.new/agents@1995

@cloudflare/ai-chat

npm i https://pkg.pr.new/@cloudflare/ai-chat@1995

@cloudflare/codemode

npm i https://pkg.pr.new/@cloudflare/codemode@1995

hono-agents

npm i https://pkg.pr.new/hono-agents@1995

@cloudflare/shell

npm i https://pkg.pr.new/@cloudflare/shell@1995

@cloudflare/think

npm i https://pkg.pr.new/@cloudflare/think@1995

@cloudflare/voice

npm i https://pkg.pr.new/@cloudflare/voice@1995

@cloudflare/worker-bundler

npm i https://pkg.pr.new/@cloudflare/worker-bundler@1995

commit: eea5181

@github-actions
github-actions Bot force-pushed the changeset-release/main branch from eea5181 to 97c494a Compare August 17, 2026 18:04
@mattzcarey
mattzcarey merged commit d424945 into main Aug 18, 2026
@mattzcarey
mattzcarey deleted the changeset-release/main branch August 18, 2026 09:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant