From 736307b4c28d37d92cd73e9fb48364defab994e4 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Thu, 2 Apr 2026 22:58:25 -0400 Subject: [PATCH] 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 --- src/agent/runner.rs | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/agent/runner.rs b/src/agent/runner.rs index ec69412..9ea1778 100644 --- a/src/agent/runner.rs +++ b/src/agent/runner.rs @@ -951,6 +951,11 @@ impl Agent { 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 let entries = self.context.entries.clone(); self.context.entries = crate::thought::context::trim_entries( @@ -958,6 +963,17 @@ impl Agent { &entries, &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.last_prompt_tokens = 0; self.publish_context_state(); @@ -977,9 +993,14 @@ impl Agent { }; // 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) .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(); true }