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)