Skip to content

Releases: tonydzi/sqlite-graph-memory

v0.1.1 — the design note, and everything a stranger needs

Choose a tag to compare

@tonydzi tonydzi released this 04 Aug 19:35

Everything the pilot gained after the first tag: the design note that explains where it is going, and the parts a stranger needs in order to use or contribute to it.

New

  • docs/bitemporal.md — the design note for bi-temporal edges. When you materialize the graph instead of parsing it at query time, give every edge a validity window (valid_from / valid_to / observed_at) so a rebuild closes superseded facts instead of deleting them: history is kept, recall prefers the present, as_of queries can reconstruct the past. The day-1 A/B result — context size ~unchanged, candidates ~60% fresher by mean age — is written up with its caveat: one day, one corpus, longitudinal effect, not a benchmark.
  • A roadmap in the README with Now/Next, and the two known defects named as open issues rather than footnotes.
  • AGENTS.md — for the reader who is an agent: it is a pilot, and the absent parts are deliberate.
  • FOR-ROBOTS.md, CITATION.cff, per-claim attribution in the README (which claim is backed by what), the contributor deal (no CLA, you keep your copyright, 48h answer), and changelog categories for these auto-generated notes.

Known defects, still open

  • #1 — the indexer ingests .stversions backups, sync-conflict copies and .obsidian junk as if they were notes: five files where there is one.
  • #2 — no tests at all, on 677 lines.

Both are scoped and free to take. Until #2 exists, pilot is the only word this repo is entitled to, and the README says so.

What's next

A smoke test that runs without downloading a model, ignore rules for the indexer, then v0.2 — a public benchmark with a synthetic mini-vault, ~200 hand-labeled queries stratified by type, and a full ablation matrix. The interesting question is not "does graph help" but for which query classes. That line is a plan, not a result.

From here on every noticeable change ships as its own release, so this feed — not the commit graph — is where you can see whether "pilot" has stopped being the right word.

Full Changelog: v0.1.0...v0.1.1

v0.1.0 — the pilot as first published (3 July 2026)

Choose a tag to compare

@tonydzi tonydzi released this 04 Aug 19:35
d10fa18

Graph RAG on SQLite for AI agents — a working pilot, not a framework.

Backfilled release note. The v0.1.0 tag has pointed at this commit since 3 July 2026; what was missing was the changelog, not the code. It is written up now so the release feed tells the truth about when each state of this repo actually existed.

What v0.1.0 is

The extracted memory layer of a personal second-brain agent setup — three small Python scripts that give an LLM agent associative recall over a folder of markdown notes. SQLite is the only database and [[wikilinks]] are the graph.

  • index_notes.py — chunk + embed (e5-base) into a .npy/.pkl index.
  • brain_ask.py — the recall pipeline in one file, in order: dense retrieve → optional 1-hop wikilink expansion → cross-encoder rerank → --ab mode that runs vector-only and vector+graph and logs the delta to SQLite.
  • turnstate_hook.py — a Stop hook that appends one row per assistant turn (ask, summary, files, tools, commands, decisions). Zero LLM tokens, pure stdlib. turnstate_show.py reads it back.
  • schema.sql — both tables, documented.

The bet it encodes

Most Graph RAG stacks assume a graph database, an ETL pipeline and an entity-extraction pass. For a single-user agent over a markdown knowledge base, all three are overkill: the graph already exists because the human hand-curated it as wikilinks, SQLite is enough for the only things worth persisting, and the expensive part of RAG quality is the reranker, not graph infrastructure.

Two design choices that survived contact with reality are in this release: graph expansion is candidate generation and not ranking (so an irrelevant linked note gets buried by the reranker), and an entity gate that switches the hop off for name-shaped queries — because a person's card links to everything, and A/B telemetry showed the hop helping theme queries while hurting name lookups.

What it is not

Pilot is load-bearing: no tests, no eval suite, no incremental indexing, no packaging, no entity lane. It runs daily on one real ~100k-note vault. That is a use, not a benchmark.

Full Changelog: https://github.com/Palo-Alto-AI-Research-Lab/sqlite-graph-memory/commits/v0.1.0