v2.4.0 — hybrid search actually on, memory_learn no longer destroys data
Both core fixes in this release were contributed by @pmario, who read the whitepaper, evaluated the code against it, and filed four issues with file:line root causes, cross-platform repros, and an explanation of why 233 green tests could not see either bug. This is the kind of contribution maintainers hope for.
Fixed
- Vector search never loaded (#23, #24 by @pmario).
require('sqlite-vec')threwReferenceErroron every boot under"type": "module", and the catch misreported it as a missing platform binary — hybrid retrieval was silently FTS5-only for every install since release. Now loads viacreateRequire. On boot you should see[vector] sqlite-vec extension loaded;memory_healthreportsvector.enabled: true. memory_learncould silently overwrite an unrelated learning (#21, #22 by @pmario). The FTS5 similarity gate OR-ed every token of the new content, so ordinary words matched almost any stored row;bm25()is an unbounded relevance score, not a similarity, so the remaining decision was effectively "is the new entry longer?". The fuzzy-merge branch is removed: exact duplicates still bumpusage_count, and enriching an existing entry is explicit viamemory_learn_update. A regression test now asserts that storing one learning never removes or rewrites another.- Windows:
npm testandnpm run buildwork (env-var prefix andcp/mkdir -p/chmodreplaced withvitest.config.tsandscripts/copy-assets.mjs) (#22). - README: the SessionStart hook example was missing
hookEventName, so Claude Code silently dropped the injected context (#20 by @pmario). - README/WHITEPAPER no longer describe a similarity measure the code never had.
Upgrading
npm i -g @studiomeyer/local-memory-mcp@2.4.0 (or bump your npx pin). No schema migration; existing databases work as-is. If a learning of yours was previously overwritten, the data is unfortunately not recoverable — this class of write is exactly what this release removes.