The lesson, stated plainly A developer warns that persisting embeddings requires persisting the embedder, as a vector index is only meaningful with the exact model that produced it. The project NeonMem now stores the embedder inside a single cartridge file, ensuring consistency and adding a dimension guard that degrades to keyword search on mismatch. The tool is free for personal use, local and private. 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 .