Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.219 Home All releases olderv2.1.218 v2.1.220newer
Claude Code v2.1.219

Shutdown-synthesized tool results no longer resolve an interrupted turn

Not switched on
Useful3 Signal3
Sessions Notable

Resuming a turn interrupted by shutdown now correctly sees the tool call as still pending instead of faked-answered.

The corrected resume logic only runs when CLAUDE_CODE_RESUME_INTERRUPTED_TURN is set.

CLAUDE_CODE_RESUME_INTERRUPTED_TURN
What

When history is rebuilt to resume an interrupted turn, tool results that were only synthesized by a shutdown are no longer treated as answers, so the underlying tool call is seen as still pending.

Details
  • the unwind pass is called with a new option shutdownUnwindResultsDoNotResolve: !0
  • the affected messages are user messages with interruptedByShutdown === !0 that contain a tool_result block; these no longer resolve their tool_use and are dropped from the rebuilt list
  • the transcript scan for an unresolved tool_use skips those same messages, so a synthesized result cannot mask a genuinely unresolved tool use
  • that scan was split into a pure over-messages helper, findUnresolvedToolUseInTranscript, with I/O, warn logging and try/catch left in the async wrapper
  • consecutive user messages are no longer merged if either was interrupted by shutdown, and the tail-scan for the last live turn skips shutdown-interrupted content
  • the user-rejected tool denial path now records interruptedByShutdown from the abort signal
  • the whole path is reached only under the CLAUDE_CODE_RESUME_INTERRUPTED_TURN environment variable
Evidence

shutdownUnwindResultsDoNotResolve, findUnresolvedToolUseInTranscript, interruptedByShutdown

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.219 →