Expand description
The run’s conversation history: the volatile half of a request.
Frozen-prefix bytes never live here. What does is every message the run has exchanged since it started, folded forward turn by turn by the executor that owns it, and handed to the model beneath the prefix on each call.
One invariant, enforced at every entrance: consecutive user content joins the message already open rather than opening a second one. A steer, a tool result and the opening task are three doors into the same rule, so none of them can produce the alternating shape a provider refuses.
A message already sent is never rewritten. Text that arrives after
the last assembly, while the open user message is on the wire, is held
and lands after the next tool results, so the next request extends the
last one instead of editing it. The one exception is tool results after
an empty reply, which extend the sent message rather than open a second
adjacent user message, and leave it open again (crates/runtime/spec/Conversation.lean §8-47).
Structs§
- Conversation
- The run’s conversation history, owned by the executor and folded forward turn by turn. Frozen-prefix bytes never live here — the conversation is the volatile half of the request.
Enums§
- Opening
- How the first user message opens: kernel’s, because
run_startedrecords it (crates/kernel/Spec.lean§8-82-1). How a run’s first user message opens.