Skip to content

v0.3.0 — Hybrid retrieval & relevance gate

Choose a tag to compare

@bnimit bnimit released this 05 Jun 11:31
· 54 commits to main since this release
6936f12

Retrieval-quality release. Memor now retrieves over two channels and refuses to inject when nothing is relevant.

Highlights

Hybrid retrieval (dense + lexical). Added a SQLite FTS5 / BM25 channel fused with the dense vector channel via Reciprocal Rank Fusion. Recovers exact identifiers, error strings, and API names that static embeddings blur together. The FTS index syncs on ingest and auto-backfills existing databases on first open — no re-ingest needed.

Absolute-similarity gate. Min-max normalization previously forced the top hit to look perfect regardless of its true cosine, so the relevance threshold could never reject anything. The gate now drops anti-correlated candidates before ranking — an off-topic prompt injects nothing instead of the least-bad guess. Validated on a real ~10K-artifact DB: off-topic queries now return no_hits with zero injected tokens. Tunable via MEMOR_MIN_SIMILARITY.

Recall guards (P0). Per-recall token-injection budget (default 1500, MEMOR_MAX_TOKENS) and trivial-prompt skipping so confirmations like "yes"/"lgtm" don't trigger recall.

Feedback & metrics (P1). Working implicit-feedback loop (detects whether recalled memories were actually used), session-level dedup so the same memory isn't re-injected within a session, and the dashboard "precision" metric renamed to the more honest "coverage".

Install

pipx install --force memor-cli   # or: pipx upgrade memor-cli

Then restart the daemon + hook so they pick up 0.3.0.

Full changelog: v0.2.0...v0.3.0