diff --git a/src/user/chat.rs b/src/user/chat.rs index 451c10e..5d6c965 100644 --- a/src/user/chat.rs +++ b/src/user/chat.rs @@ -883,12 +883,24 @@ impl ScreenView for InteractScreen { let sys = ctx.system().iter().map(|n| n.tokens()).sum::(); let id = ctx.identity().iter().map(|n| n.tokens()).sum::(); let jnl = ctx.journal().iter().map(|n| n.tokens()).sum::(); - let conv = ctx.conversation().iter().map(|n| n.tokens()).sum::(); - let total = sys + id + jnl + conv; + let (mem, conv) = { + let mut mem = 0usize; + let mut conv = 0usize; + for n in ctx.conversation() { + let t = n.tokens(); + if matches!(n, AstNode::Leaf(l) if matches!(l.body(), NodeBody::Memory { .. })) { + mem += t; + } else { + conv += t; + } + } + (mem, conv) + }; + let total = sys + id + jnl + mem + conv; let pct = |n: usize| if budget > 0 { n * 100 / budget } else { 0 }; app.status.context_budget = format!( - "sys {}% id {}% jnl {}% conv {}% = {}K/{}K", - pct(sys), pct(id), pct(jnl), pct(conv), + "sys {}% id {}% jnl {}% mem {}% conv {}% = {}K/{}K", + pct(sys), pct(id), pct(jnl), pct(mem), pct(conv), total / 1000, budget / 1000, ); }