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 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.
Free for personal use, local and private: [neonmem.com](https://neonmem.com)
(Windows + Linux AppImage).