Follow Discord
Sweep 09 Oct 2026 · 17:27Z Build v2.1.296 517 read Stable v2.1.287 Latest v2.1.296 Next v2.1.296 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.296 ·

project_write errors and refusals now carry reason codes

project_write by local_path now attaches machine-readable codes to its errors and refusals, and reports when a file is saved

Group of 3 You'll notice Improvements
JSON All of v2.1.296
You'll noticeTier: how much it should matter to you
2Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
ArtifactsArea: what it touches
ImprovementsKind: in v2.1.296,
ImprovementsSection of the release

What

The project_write tool, which writes a file into a project, gains structured reporting when it works from a local_path (a file on your machine):

  • Errors now carry a code next to the message, such as local_path_outside_cwd, local_path_too_long and content_has_nul.
  • Refusals carry reason codes such as local_path_file_too_large, local_path_hard_link, local_path_protected_file and project_knowledge_full.
  • After a successful write with local_path set, a saved event is emitted with whether an existing file was replaced (replaced) and how many bytes were saved (savedBytes).
  • The outcome of a write by local path (cancelled, refused or failed), its reason, and where the file was read from are now recorded.

The error and refusal text you see is unchanged.

Why

Nothing changes in what you see when a write is refused. The codes let failures be told apart and counted reliably instead of by matching message text.

See this entry in the whole of v2.1.296 →

Feedback