DEV Community

Neonmem Dev Team
Neonmem Dev Team

Posted on

The lesson, stated plainly

If you persist embeddings, you must persist the embedder. A vector index is
only meaningful next to the exact model that produced it.

It's an easy mistake because everything looks fine — the vectors are right
there on disk, the search runs, no error is thrown. It's only wrong by a
dimension you can't see.

The fix

The embedder now travels inside the single cartridge file — same one-file,
binary-only format, no sidecar. On load it's restored, and every read (and every
newly-learned fact) is embedded with the same model the stored vectors were
built with. We also added a dimension guard: if an old cartridge ever mismatches,
recall degrades to keyword search instead of returning garbage.

Result: "import any docs → your agent answers from them" now survives close,
reopen, and a week later.

Also in 0.9.6

  • Procedures and rules recall without erroring.
  • Your memory is saved before a session auto-compacts and restored after — a long session never loses its thread.
  • The cross-process write-lock moved outside the cartridge folder, so your memory stays one clean file while several tools share it safely.

Free for personal use, local and private: neonmem.com
(Windows + Linux AppImage).

Top comments (0)