Summary
Graph memory extraction is silently disabled for all ACP sessions because with_graph_config() is never called in src/acp.rs.
Root Cause
In src/acp.rs, the agent factory function builds the agent but omits agent.with_graph_config(config.memory.graph.clone()).
The graph_config field in MemoryState defaults to GraphConfig::default() which has enabled = false. The guard in maybe_spawn_graph_extraction() checks !cfg.enabled and returns early, so extraction never fires regardless of what the TOML config says.
Comparison:
src/runner.rs:827 — agent.with_graph_config(config.memory.graph.clone()) ✓
src/daemon.rs:368 — agent.with_graph_config(config.memory.graph.clone()) ✓
src/acp.rs — missing ✗
Fix
In src/acp.rs, add:
agent = agent.with_graph_config(app.config().memory.graph.clone());
near the other with_* calls, after with_memory.
Verification
Live test: two ACP prompts with named entities → poll graph_entities table for 35s → 0 rows despite [memory.graph] enabled = true in config.
Expected: entities/edges extracted in background after each assistant response.
Severity
Medium — graph memory is a non-default feature but completely broken for ACP-connected clients (Zed, Helix, VS Code).
Summary
Graph memory extraction is silently disabled for all ACP sessions because
with_graph_config()is never called insrc/acp.rs.Root Cause
In
src/acp.rs, the agent factory function builds the agent but omitsagent.with_graph_config(config.memory.graph.clone()).The
graph_configfield inMemoryStatedefaults toGraphConfig::default()which hasenabled = false. The guard inmaybe_spawn_graph_extraction()checks!cfg.enabledand returns early, so extraction never fires regardless of what the TOML config says.Comparison:
src/runner.rs:827—agent.with_graph_config(config.memory.graph.clone())✓src/daemon.rs:368—agent.with_graph_config(config.memory.graph.clone())✓src/acp.rs— missing ✗Fix
In
src/acp.rs, add:near the other
with_*calls, afterwith_memory.Verification
Live test: two ACP prompts with named entities → poll
graph_entitiestable for 35s → 0 rows despite[memory.graph] enabled = truein config.Expected: entities/edges extracted in background after each assistant response.
Severity
Medium — graph memory is a non-default feature but completely broken for ACP-connected clients (Zed, Helix, VS Code).