You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
startQueryEmbedding (src/main/presenter/memoryPresenter/services/retrievalService.ts:90-112) dedupes in-flight query embeddings by agentId::embeddingFingerprint — the query text is not part of the key — and returns null for any caller while a fresh entry exists, making that caller skip vector recall for the turn.
Consequences:
Memory injection and a memory_recall tool call in the same turn collide; the second silently degrades to FTS-only.
After an 800 ms soft timeout (RECALL_QUERY_EMBEDDING_TIMEOUT_MS), the timed-out promise stays in flight, so subsequent recalls keep skipping the vector path until the provider call settles or the 30 s staleness window (RECALL_QUERY_EMBEDDING_STALE_MS) expires.
The single-entry skip was an accepted AC of docs/issues/memory-recall-hot-path-keyword-recall/spec.md; this issue revisits that tradeoff: share identical-query embeddings and allow a small bounded number of concurrent distinct-query embeddings instead of skipping outright.
Severity
P2 — silent recall-quality degradation under normal concurrency; only a warn log distinguishes it.
Summary
startQueryEmbedding(src/main/presenter/memoryPresenter/services/retrievalService.ts:90-112) dedupes in-flight query embeddings byagentId::embeddingFingerprint— the query text is not part of the key — and returnsnullfor any caller while a fresh entry exists, making that caller skip vector recall for the turn.Consequences:
memory_recalltool call in the same turn collide; the second silently degrades to FTS-only.RECALL_QUERY_EMBEDDING_TIMEOUT_MS), the timed-out promise stays in flight, so subsequent recalls keep skipping the vector path until the provider call settles or the 30 s staleness window (RECALL_QUERY_EMBEDDING_STALE_MS) expires.The single-entry skip was an accepted AC of
docs/issues/memory-recall-hot-path-keyword-recall/spec.md; this issue revisits that tradeoff: share identical-query embeddings and allow a small bounded number of concurrent distinct-query embeddings instead of skipping outright.Severity
P2 — silent recall-quality degradation under normal concurrency; only a warn log distinguishes it.
SDD doc:
docs/issues/memory-audit-hardening/ (spec.md + plan.md + tasks.md)