Resuming could drop unanswered permission prompts instead of re-running the interrupted turn, but only with an env var set.
Parked permission prompts can be retired on resume, gated behind an unset environment variable.
What's wrong with this entry?
When a session is resumed and a permission request was parked without an answer, Claude Code can now drop that request, record why, and skip re-running the interrupted turn. All parked prompts left over from the session are cleared together rather than just one, anchored to the latest assistant message among them. The code is present in this build but does nothing unless the environment variable that gates it is set, so by default resume still re-runs the interrupted turn.
- Set
CLAUDE_CODE_RETIRE_UNANSWERED_PARKED_PERMISSIONto take the clearing path, for exampleCLAUDE_CODE_RETIRE_UNANSWERED_PARKED_PERMISSION=1 claude --resume; unset, the previous re-run behaviour is what you get. - Every unanswered parked prompt from the resumed session is retired in one pass, not one per resume, and the retirement is anchored to the most recent assistant message among them.
- The outcome is logged to the
tengu_resume_parked_permissionevent asretired_unanswered,retire_supersededwhen a user command arrived before the retirement could happen, orretire_write_failed, alongside aretired_countof how many prompts were cleared. - Independently of that gate, a rewind that the server refuses now re-anchors the remote view of the transcript after a persist failure or a state-changed refusal, retrying up to three times in the state-changed case, so the remote and local transcripts do not drift apart.
tengu_resume_parked_permission, retiring it unanswered (CLAUDE_CODE_RETIRE_UNANSWERED_PARKED_PERMISSION); not re-running the interrupted turn
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.