add debug logging to compact and restore_from_log

Logs entry counts before/after compaction (memory vs conversation),
budget breakdown, and restore load counts. Helps diagnose context
utilization issues.

Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
Kent Overstreet 2026-04-02 22:58:25 -04:00
parent d921e76f82
commit 736307b4c2

View file

@ -951,6 +951,11 @@ impl Agent {
eprintln!("warning: failed to reload identity: {:#}", e); eprintln!("warning: failed to reload identity: {:#}", e);
} }
} }
let before = self.context.entries.len();
let before_mem = self.context.entries.iter().filter(|e| e.is_memory()).count();
let before_conv = before - before_mem;
// Dedup memory, trim to budget, reload journal // Dedup memory, trim to budget, reload journal
let entries = self.context.entries.clone(); let entries = self.context.entries.clone();
self.context.entries = crate::thought::context::trim_entries( self.context.entries = crate::thought::context::trim_entries(
@ -958,6 +963,17 @@ impl Agent {
&entries, &entries,
&self.tokenizer, &self.tokenizer,
); );
let after = self.context.entries.len();
let after_mem = self.context.entries.iter().filter(|e| e.is_memory()).count();
let after_conv = after - after_mem;
dbglog!("[compact] entries: {} → {} (mem: {} → {}, conv: {} → {})",
before, after, before_mem, after_mem, before_conv, after_conv);
let budget = self.budget();
dbglog!("[compact] budget: {}", budget.status_string());
self.load_startup_journal(); self.load_startup_journal();
self.last_prompt_tokens = 0; self.last_prompt_tokens = 0;
self.publish_context_state(); self.publish_context_state();
@ -977,9 +993,14 @@ impl Agent {
}; };
// Load extra — compact() will dedup, trim, reload identity + journal // Load extra — compact() will dedup, trim, reload identity + journal
self.context.entries = entries.into_iter() let all: Vec<_> = entries.into_iter()
.filter(|e| e.message().role != Role::System) .filter(|e| e.message().role != Role::System)
.collect(); .collect();
let mem_count = all.iter().filter(|e| e.is_memory()).count();
let conv_count = all.len() - mem_count;
dbglog!("[restore] loaded {} entries from log (mem: {}, conv: {})",
all.len(), mem_count, conv_count);
self.context.entries = all;
self.compact(); self.compact();
true true
} }