fix seen set pollution from agent tool calls
The CLI render command was marking keys as seen in the user's session whenever POC_SESSION_ID was set. Agent processes inherit POC_SESSION_ID (they need to read the conversation and seen set), so their tool calls to poc-memory render were writing to the seen file as a side effect — bypassing the dedup logic in surface_agent_cycle. Fix: set POC_AGENT=1 at the start of cmd_run_agent (covers all agents, not just surface), and guard the CLI render seen-marking on POC_AGENT being absent. Agents can read the seen set but only surface_agent_cycle should write to it. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
9782365b10
commit
c5ce6e515f
2 changed files with 20 additions and 13 deletions
|
|
@ -4,8 +4,12 @@ use crate::store;
|
|||
use crate::agents::llm;
|
||||
|
||||
pub fn cmd_run_agent(agent: &str, count: usize, target: &[String], query: Option<&str>, dry_run: bool, local: bool) -> Result<(), String> {
|
||||
// Mark as agent so tool calls (e.g. poc-memory render) don't
|
||||
// pollute the user's seen set as a side effect
|
||||
// SAFETY: single-threaded at this point (CLI startup, before any agent work)
|
||||
unsafe { std::env::set_var("POC_AGENT", "1"); }
|
||||
|
||||
if dry_run {
|
||||
// SAFETY: single-threaded at this point (CLI startup, before any agent work)
|
||||
unsafe { std::env::set_var("POC_MEMORY_DRY_RUN", "1"); }
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue