What
- Message schema gains an internal
historicalboolean field, stamped by the Remote Control bridge on messages it flushes to the session server, and by the server on deliveries it replays. - A new
runner_exitfield is set by the self-hosted runner when a session process fails to start or exits abnormally. - Documentation for
user_message_uuid/user_message_uuids(across turn, error-result, and thinking_tokens frames) was expanded: a turn started by a synthetic/scheduled (meta) prompt can now stamp a later, non-ping stream event when a queued user message is folded into the turn mid-stream, in addition to the turn's first stream event. A turn started by a typed prompt still stamps only its first event.
Why
These are schema and documentation additions for SDK consumers: historical and runner_exit give more visibility into replayed messages and runner failures, and the clarified uuid-stamping rules help SDK clients correctly match stream events to the user message that triggered them, including when a message is folded into an already-running turn.
Names in the bundleuser_message_uuid
Documented inclaude-code/agent-sdk/streaming-output
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
Confirmed since
Anthropic's documentation has since written up user_message_uuid, on Agent SDK reference - TypeScript.
Claude Code sets the list together with `user_message_uuid` on each reply frame that carries that field and on the result. For the full set of turn frames that echo the answered message's `uuid`, and the version each requires, see [`user_m…agent-sdk/typescript see the edit
One source agreesOne thing we can check says the same as this entry.
Anthropic's documentation agrees
Anthropic's documentation has since written up user_message_uuid, on Agent SDK reference - TypeScript.