essessey v0.7.0 — ConversationID becomes StreamID Breaking. MessageMeta.ConversationID is now MessageMeta.StreamID, and its JSON tag moves from conversation_id to stream_id -- a wire change, so a client reading message_start must read the new key. ParsedStream.ConversationID is now ParsedStream.StreamID. SendMessageStart and SendStreamPreamble take streamID. Migration is mechanical: conversation_id to stream_id on the wire, .ConversationID to .StreamID in Go. Nothing in this library is chat-specific -- it streams content blocks for a conversation turn, a build log, a document render, a long-running job. Naming the identifier after one caller's domain made every other use read as a workaround. This also closes an incoherence from v0.6.0: EventStore keyed retention by streamID while the wire said conversation_id. EventStore now documents that they are the same value, that it is caller-minted and opaque, and that a reconnecting client supplies it -- so a resume needs the same authorization as opening the stream.