Description
APEX-MEM append-only MAGMA (#3223) is implemented in GraphStore::insert_or_supersede_with_metrics() with full conflict resolution, ontology normalization, and supersede chain tracking. However, SemanticMemory (and all callers in src/) still use the old destructive-update path — insert_or_supersede is never called from the production memory write path.
The playbook at .local/testing/playbooks/apex-mem.md references config.apex_mem.enabled = true in [memory.graph], but this config key does not exist in zeph-config.
Reproduction Steps
grep -rn "insert_or_supersede" crates/zeph-memory/src/semantic/ — no results
grep -rn "apex_mem" crates/zeph-config/ — no results
insert_or_supersede exists only in graph/store/mod.rs and graph/store/tests.rs
- 3 integration tests pass in isolation, but the write path is never activated
Expected Behavior
SemanticMemory::remember() should call insert_or_supersede (or insert_or_supersede_with_metrics) when apex_mem.enabled = true in [memory.graph] config, activating the append-only write path with conflict resolution.
Actual Behavior
The APEX-MEM write path is implemented and unit-tested in isolation, but SemanticMemory never calls it. All production writes use the legacy destructive path.
Environment
- Version: 0.20.1
- Features: full
Logs / Evidence
grep -rn "insert_or_supersede" crates/ --include="*.rs" | grep -v "store/mod.rs\|store/tests" → empty
grep -rn "apex_mem" crates/zeph-config/ → empty
Description
APEX-MEM append-only MAGMA (#3223) is implemented in
GraphStore::insert_or_supersede_with_metrics()with full conflict resolution, ontology normalization, and supersede chain tracking. However,SemanticMemory(and all callers insrc/) still use the old destructive-update path —insert_or_supersedeis never called from the production memory write path.The playbook at
.local/testing/playbooks/apex-mem.mdreferencesconfig.apex_mem.enabled = truein[memory.graph], but this config key does not exist inzeph-config.Reproduction Steps
grep -rn "insert_or_supersede" crates/zeph-memory/src/semantic/— no resultsgrep -rn "apex_mem" crates/zeph-config/— no resultsinsert_or_supersedeexists only ingraph/store/mod.rsandgraph/store/tests.rsExpected Behavior
SemanticMemory::remember()should callinsert_or_supersede(orinsert_or_supersede_with_metrics) whenapex_mem.enabled = truein[memory.graph]config, activating the append-only write path with conflict resolution.Actual Behavior
The APEX-MEM write path is implemented and unit-tested in isolation, but
SemanticMemorynever calls it. All production writes use the legacy destructive path.Environment
Logs / Evidence