Group of 2 You'll notice
Documentation for the SDK's user_message_uuid now matches its actual behavior across partial and complete assistant messages
What
- The documented behavior of
user_message_uuidchanged: it stamps the turn's first top-level assistant message (which may be only a thinking block, or a synthetic API-error message), not simply the first reply frame. - With
--include-partial-messages, the first non-ping stream event is now stamped independently of the completed message, so the same uuid can appear on two frames instead of the partial stream replacing the complete-message stamp. - The SDK docstring now also clarifies that a turn started by a typed prompt stamps both its first non-ping stream event and, independently, its first complete assistant message (
SDKAssistantMessage.user_message_uuid), so both can carry the same uuid.
Why
This makes the SDK's documentation match its real streaming behavior, so integrators relying on user_message_uuid to correlate partial and complete messages get accurate expectations instead of being misled by outdated docs.
Names in the bundleuser_message_uuid
Documented inclaude-code/agent-sdk/streaming-output