Skip to main content

Module conversation

Module conversation 

Source
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_started records it (crates/kernel/Spec.lean §8-82-1). How a run’s first user message opens.