@cloudflare/codemode@0.5.2

AIEraDev/Clypra@cloudflare/codemode@0.5.2Sep 11, 2026by github-actions[bot]

Upgrading?

AI Summary

This patch release introduces structural truncation for oversized results to ensure valid JSON output, preventing the model from receiving incomplete documents. It also separates durable call logs from the model's context and improves how MCP servers handle response budgets.

Key Highlights

  • Structural truncation of oversized values (strings, arrays, objects) instead of arbitrary slicing to ensure valid JSON.
  • Projection of calls and bounding of sandbox logs to prevent model context overflow.
  • MCP servers now apply response budgets to text emission.

New Features

  • Structural truncation logic for results
  • Projection mechanism for model output

Full Release Notes

### Patch Changes

-   [#2224](https://github.com/cloudflare/agents/pull/2224) [`dcca089`](https://github.com/cloudflare/agents/commit/dcca0896cc829e4a602a1feb47466ac79d1ca096) Thanks [@mattzcarey](https://github.com/mattzcarey)! - Truncate structured results structurally instead of slicing their JSON.

    `truncateResult` (the default `transformResult` in Think's execute tool and the browser tools) and the `codeMcpServer` / `openApiMcpServer` response path used to pretty-print an oversized object and cut it at a character count, leaving the model with half a JSON document. Oversized values are now shrunk in place, largest values first: strings are clipped with a `--- TRUNCATED --- <n> chars` suffix, arrays keep their leading items and end with a `--- TRUNCATED --- <n> more items` element, and an object only loses entries (largest first, named in a `"--- TRUNCATED ---"` entry) when its values cannot share the budget. The output is always valid JSON of the original shape and small values pass through untouched.

    The Code Mode tool now carries a `toModelOutput` that projects `calls` out of what the model sees and bounds the sandbox `logs` the same way a result is bounded. The durable call log — every connector call's args and result — stays on the persisted tool part for UIs and audit, but no longer rides into the model's context uncapped alongside the transformed `result`. The projection never throws: a BigInt or cyclic value is rendered rather than failing a completed run at model assembly.

    The MCP servers apply the response budget to the text they emit, pretty-printing only while that still fits.

    Fixes [#2009](https://github.com/cloudflare/agents/issues/2009), [#2143](https://github.com/cloudflare/agents/issues/2143) and [#2182](https://github.com/cloudflare/agents/issues/2182).

Related Repositories