Skip to content

v2.4.0 — hybrid search actually on, memory_learn no longer destroys data

Choose a tag to compare

@madetocreate madetocreate released this 01 Aug 20:13
· 19 commits to main since this release

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') threw ReferenceError on 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 via createRequire. On boot you should see [vector] sqlite-vec extension loaded; memory_health reports vector.enabled: true.
  • memory_learn could 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 bump usage_count, and enriching an existing entry is explicit via memory_learn_update. A regression test now asserts that storing one learning never removes or rewrites another.
  • Windows: npm test and npm run build work (env-var prefix and cp/mkdir -p/chmod replaced with vitest.config.ts and scripts/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.