-
Notifications
You must be signed in to change notification settings - Fork 2
bug(memory): A-MEM note linking never creates edges due to missing entity embeddings #1817
Description
Problem
A-MEM dynamic note linking (PR #1788, #1694) never creates similar_to edges because zeph_graph_entities Qdrant collection is always empty.
Root cause
In extract_and_store() (crates/zeph-memory/src/semantic/graph.rs:313):
let resolver = EntityResolver::new(&store);EntityResolver is created without with_embedding_store(). As a result:
store_entity_embedding()is never called (gated onself.embedding_store.is_some())zeph_graph_entitiesQdrant collection is never populatedlink_memory_notes()fires after extraction but finds an empty (or non-existent) collection
with_embedding_store() is called only in test helpers (resolver.rs:1325 etc.), not in the production extract_and_store() path.
Reproduction
Run with [memory.graph.note_linking] enabled = true, vector_backend = "qdrant", Qdrant running. After extraction completes:
note_linking: search failed for entity "alice": ... Collection 'zeph_graph_entities' doesn't exist!
No note_linking: insert_edge or note_linking: edges_created log lines ever appear.
Expected behavior
After entity extraction, entity embeddings should be stored in zeph_graph_entities, enabling note linking to find semantically similar entities from prior sessions.
Fix sketch
Pass embedding_store to extract_and_store() (or thread it into EntityResolver construction in graph.rs) so that with_embedding_store() is called in the production path.
Severity
Medium — feature is silently broken (no edges created, no user-visible error), but does not cause data loss or crashes.