The problem
A vault of notes only pays off when you can find the thing you wrote eight months ago. That requires remembering the words you used at the time, and you do not.
Approach
Memory budget first. No GPU, no large vector database, no service billed per query. Everything had to run alongside the other services on one server, and the design was chosen accordingly.
What it does
Indexes the vault with fastembed, stores the vectors in sqlite-vec and exposes retrieval over MCP, so an assistant can look things up in my own notes instead of guessing.
Where it stands
The retrieval is no longer a prototype. It runs as a standing service on my own server, indexes a good 1,600 documents across more than 20,000 chunks, and is used every day by AI tools that look things up over MCP instead of guessing. The code lives in its own repository with versioned releases.
Quality still varies with how well a document is written. That is not solved; it is merely in service, and the difference between the two is the reason to run it every day.
What I learned
That retrieval quality is a chunking problem long before it is a model problem. How a document is cut into pieces matters more than which model reads the pieces.