Problem
Every search scores every row. That's exact — no recall loss from approximate indexing — and deliberate. But it's linear, and a shared or long-lived memory store will eventually find the ceiling.
Blocked on #21. Don't start here until the benchmarks exist. If embedding time dominates scoring time, an index buys nothing and this issue should be closed as unnecessary.
What to investigate
sqlite-vec is the natural candidate: it's a SQLite extension, so it holds the one-file property that makes this project what it is. A separate vector database is an explicit non-goal.
Acceptance criteria
Why this needs discussion first
Three things could make this the wrong call:
- Recall loss. For memory, a missed result isn't a slightly worse search — it's the agent confidently saying it doesn't know something it was told.
- Install weight. A platform-specific binary extension complicates the "pip install and it works" story on every OS the CI matrix covers.
- Complexity. An index needs maintaining, rebuilding, and invalidating on model change. The current design has none of that.
Please comment with findings before writing much code.
Pointers
src/localmem_mcp/store.py — search() and _keyword_hits(); the FTS5 try/except fallback is the pattern to copy for optional-extension handling
- ROADMAP.md — 0.3
Problem
Every search scores every row. That's exact — no recall loss from approximate indexing — and deliberate. But it's linear, and a shared or long-lived memory store will eventually find the ceiling.
What to investigate
sqlite-vec is the natural candidate: it's a SQLite extension, so it holds the one-file property that makes this project what it is. A separate vector database is an explicit non-goal.
Acceptance criteria
MemoryStore.search()signature. The public API must not change to accommodate a storage strategyWhy this needs discussion first
Three things could make this the wrong call:
Please comment with findings before writing much code.
Pointers
src/localmem_mcp/store.py—search()and_keyword_hits(); the FTS5try/exceptfallback is the pattern to copy for optional-extension handling