Current stage: Windows desktop development build. Updated 10 October 2026.

“Why did we choose SQLite?” is a retrieval question before it is a writing task. If the reason already exists in a coding conversation, I want to read that passage and check who said it.

That is the current Ask workflow in Mind Palace, a local desktop vault for coding conversations. It returns stored evidence rather than generating a new explanation.

Start from the original record

The vault keeps selected conversation sources separately from editable session content. Before returning a saved source, the worker checks its recorded size and SHA-256. If it changed unexpectedly, the read fails rather than quietly serving altered evidence.

For captured Codex sessions, the searchable passages come from known user and assistant message fields. System, developer and tool records remain in the raw source but are excluded from this conversation-search view. They should not masquerade as a user's decision.

This is a useful boundary, not an approval detector. An assistant passage may contain a suggestion. A user passage may contain an abandoned idea. The reader must still inspect context.

A deliberately narrow retrieval algorithm

The implementation extracts distinct search terms from the question. It ignores short terms and a fixed set of common question words. It then scans a bounded inventory of stored sessions and checks their conversation passages.

All retained search terms must match a passage. A source result carries the session identity, title, exact quote, source offsets and snapshot hash. The response contains up to three sources. The displayed answer introduces the closest stored passage; it does not invent a rationale.

In the synthetic demo, the source says:

Use SQLite for the local vault because it keeps storage on the device and needs no database server.

Asking “Why did we choose SQLite?” returns that stored evidence. Opening the source shows the conversation it came from.

This is keyword search, not embeddings, a semantic index or a reasoning model. A synonym can miss. Extra terms can make a query too restrictive. The current implementation scans bounded session data; it does not claim unlimited search scale.

Abstention belongs in the interface

If there are no useful search terms or no matching passage, Ask reports insufficient evidence. That result is preferable to filling a gap with a plausible sentence.

The app also separates capture freshness from stored evidence. Certain known capture failures can leave the existing vault readable. Ask then shows an unsynced warning while searching already stored sessions. An answer from those sessions does not prove the latest turn arrived.

Likewise, the banner “Local vault connected · AI off” describes the running state accurately. Storage and keyword retrieval can work while model inference is absent.

What exact quotes do and do not establish

A quote lets you check the source and distinguish stored text from generated prose. A content hash helps detect unexpected modification. Neither proves the speaker's claim is true, identifies the latest valid decision by itself, or establishes that every client event was captured.

Mind Palace preserves the original source so those questions remain inspectable. Suggestions stay separate from explicit approvals. Summary review does not silently confirm a decision.

Explore the implementation

The project uses Angular, Tauri and bundled Python. Current native checks use isolated synthetic data; this is a Windows development build, not a claim of completed installer or cross-platform acceptance.

See the repository, the retrieval implementation and the user guide.

Which would help your workflow more: finding the exact source quickly, or seeing a generated summary beside it? Feedback on that distinction is welcome through repository issues. Do not post private transcripts.