diff --git a/src/agent/runner.rs b/src/agent/runner.rs index de3f659..eb4824c 100644 --- a/src/agent/runner.rs +++ b/src/agent/runner.rs @@ -967,17 +967,19 @@ impl Agent { fn do_compact(&mut self) { let conversation: Vec = self.context.entries.iter() .map(|e| e.api_message().clone()).collect(); - let (messages, journal) = crate::agent::context::build_context_window( + let (messages, _) = crate::agent::context::build_context_window( &self.context, &conversation, &self.client.model, &self.tokenizer, ); - self.context.journal = journal::parse_journal_text(&journal); + // Don't overwrite journal — it was loaded from the memory graph + // in load_startup_journal. The old build_context_window reads + // from a stale flat file. TODO: remove build_context_window. self.context.entries = messages.into_iter() .map(ConversationEntry::Message).collect(); self.last_prompt_tokens = 0; - + self.publish_context_state(); } @@ -1028,15 +1030,15 @@ impl Agent { .collect(); dbglog!("[restore] {} messages after filtering system", conversation.len()); - let (messages, journal) = crate::agent::context::build_context_window( + let (messages, _) = crate::agent::context::build_context_window( &self.context, &conversation, &self.client.model, &self.tokenizer, ); - dbglog!("[restore] journal text: {} chars, {} lines", - journal.len(), journal.lines().count()); - self.context.journal = journal::parse_journal_text(&journal); + dbglog!("[restore] journal preserved: {} entries", + self.context.journal.len()); + // Don't overwrite journal — already loaded from memory graph self.context.entries = messages.into_iter() .map(ConversationEntry::Message).collect(); dbglog!("[restore] built context window: {} entries", self.context.entries.len());