#[non_exhaustive]pub struct SessionRollup {
pub kind_counts: BTreeMap<String, i32>,
pub model: String,
pub model_usage: Vec<ModelUsage>,
pub preview: String,
pub status: String,
pub tasks: Vec<TreeTask>,
pub title: String,
pub turn_count: i32,
pub usage: SessionUsage,
}Expand description
The deriver-owned session projection — status, title, counts, and spend, all folded from the span layer at derive time.
Models the contract’s SessionRollup schema.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.kind_counts: BTreeMap<String, i32>KindCounts (spans per call_kind) and Tasks (TaskCreate/TaskUpdate folds) are pinned so the rollup shape is uniform across sessions.
model: StringThe dominant conversation-spine model; ModelUsage is the per- model spend breakdown across every thread (subagent models included), cost- ordered so the UI can show “dominant model + share” without a cheap- subagent fan-out skewing it.
model_usage: Vec<ModelUsage>The contract’s model_usage.
preview: StringThe contract’s preview.
status: StringThe contract’s status.
tasks: Vec<TreeTask>The contract’s tasks.
title: StringThe deriver’s folded session title (derived_title), generated from the conversation.
turn_count: i32The contract’s turn_count.
usage: SessionUsageThe contract’s usage.
Trait Implementations§
Source§impl Clone for SessionRollup
impl Clone for SessionRollup
Source§fn clone(&self) -> SessionRollup
fn clone(&self) -> SessionRollup
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more