Skip to content

fix(acp): graph memory config not applied to ACP sessions #1633

@bug-ops

Description

@bug-ops

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:827agent.with_graph_config(config.memory.graph.clone())
  • src/daemon.rs:368agent.with_graph_config(config.memory.graph.clone())
  • src/acp.rsmissing

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingmemoryzeph-memory crate (SQLite)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions