What
A headless session is Claude Code running without its interactive screen, usually driven by another program through the SDK, the kit developers use to build on Claude Code. This release changes how such sessions describe an interrupted turn and its resumption. A turn is one round of you asking and Claude answering.
- The receipt for an interrupt now includes a
turnfield describing the turn's state. Before, it held onlystill_queuedandcancelled. A newheadless_interrupt_turnevent is also emitted. - When an interrupted turn is resumed, the queued command now carries
resumedTurnUserMessageUuid,resumedTurnOpenerVouchedandresumeReason. - The description of
user_message_uuidwas rewritten to match. A turn that carriesresume_reasonnow stamps the interrupted turn's last user prompt "where that can be vouched for". A turn that continues after a permission answer may send the assistant message again without a stamp. The old description talked about a start-up rescue turn re-running a turn that a worker restart had cut off.
Why
Programs built on Claude Code can tell what state a turn was in when it was interrupted. They can also link a resumed turn back to the prompt that started it, and they know when that link cannot be trusted.
Names in the bundleuser_message_uuid
Documented inclaude-code/agent-sdk/streaming-output