Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.280 ·

Denying a tool during a 'permission stop' now cleanly ends the turn

A new 'permission-stop' abort reason makes denied tool calls end the turn cleanly instead of being logged as a plain interruption

Group of 5 You'll notice Internal Changes
JSON All of v2.1.280
You'll noticeTier: how much it should matter to you
3Useful: my rating, 1 to 5
3Signal: worth watching, 1 to 5
PermissionsArea: what it touches
Internal ChangesKind: in v2.1.280,
ImprovementsSection of the release

What

  • A new abort/interrupt reason, permission-stop, was added alongside the existing interrupt, turn-abort, and refusal-fallback-edit reasons, with its own error mapping.
  • When a tool call is denied while the abort reason is permission-stop, the resulting tool-result message now carries a toolDenialEndsTurn flag. A new helper walks backward through the conversation and treats a user message with this flag set as one that ended the turn, rather than one that was merely interrupted.
  • This toolDenialEndsTurn flag is now carried through the rest of the tool-result plumbing (alongside existing fields like toolDenialKind/userFeedback) and is checked to short-circuit processing when a denial should end the turn.
  • Subagents are affected too: when a synchronous subagent is stopped for this reason, it's now recorded distinctly (permission_stop_sync) in telemetry and cleaned up as a system action rather than being reported as a plain user cancellation.

Why

Previously, denying a tool call during a permission stop could be misclassified as a generic interruption. This change makes Claude Code correctly recognize that the turn ended because of the permission denial, so the conversation transcript and telemetry reflect what actually happened.

See this entry in the whole of v2.1.280 →

Feedback