pub struct SessionSection {
pub id: String,
pub name: Option<String>,
pub mode: LifecycleMode,
pub started_at: String,
pub ended_at: Option<String>,
pub status: SessionStatus,
pub duration_ms: Option<u64>,
pub ship_id: Option<String>,
pub narrative: Option<Narrative>,
pub total_tokens_in: u64,
pub total_tokens_out: u64,
pub room: Option<RoomInfo>,
}Expand description
Session metadata section of the receipt.
Fields§
§id: String§name: Option<String>§mode: LifecycleMode§started_at: String§ended_at: Option<String>§status: SessionStatus§duration_ms: Option<u64>§ship_id: Option<String>Ship ID this session ran under, parsed from the manifest actor URI
(ship://<ship_id>). Absent on pre-v0.9.0 receipts or when the actor
URI was not a ship:// URI (e.g. human://alice for a human-led session).
Cross-verification uses this to check that a receipt and a presented
Agent Certificate reference the same ship.
narrative: Option<Narrative>Structured narrative for human review. All fields optional.
total_tokens_in: u64Cumulative input tokens across all agents.
total_tokens_out: u64Cumulative output tokens across all agents.
room: Option<RoomInfo>Room this session hosted, mirrored from the manifest. Carried here so
invitation_authority sits inside the DSSE-signed payload instead of
only in unsigned session.json – see RoomInfo’s doc comment for
why an unsigned authority field is a wire-controllable-dispatch-field
risk. Absent for ordinary (non-room) sessions.
Trait Implementations§
Source§impl Clone for SessionSection
impl Clone for SessionSection
Source§fn clone(&self) -> SessionSection
fn clone(&self) -> SessionSection
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more