Skip to content

v0.2.0 — Native SQLite (real WAL), embedding v3, git provenance

Choose a tag to compare

@TheSylvester TheSylvester released this 05 Jul 03:58

Native SQLite engine with real WAL, an upgraded embedding pipeline, and git provenance for your sessions.

Highlights

  • Native SQLite with real WAL. The index now runs on better-sqlite3 with write-ahead logging instead of the previous WebAssembly binding — which never actually engaged WAL and could silently corrupt the index when multiple processes wrote at once. That failure mode is eliminated at the root. recall doctor gains a SQLite-binding health section. Node.js ≥ 22.16 is now required.
  • Git provenance: --commit and --blame. recall --commit <hash> lists the session(s) that produced a commit; recall --blame <path>[:line[-line]] traces a file or line range back to the conversations responsible. Matching is structural (your sessions' actual edits vs the commit's diff), not timestamp-based.
  • Better semantic retrieval (embedding v3). Stored messages and queries now carry the task prefixes the embedding model was trained on, and short turns (one-line answers, approvals, decisions) are embedded together with their preceding context so they're finally findable by meaning. Measurably improves retrieval on the LoCoMo benchmark (recall@5 54.9 → 58.4).
  • Semantic search stays available during migrations. Upgrading re-embeds your history in the background; until it finishes, search transparently blends old- and new-format vectors and tags output with (migrating: N% re-embedded) instead of going dark.
  • Relevance-first ranking. The hidden age penalty is off by default — older sessions now rank purely by relevance. Pass --recent to prefer newer sessions explicitly.
  • Faster indexing on large databases. A new index removes a full-table scan from every embedding batch and end-of-turn catch-up (~0.3 s → ~0.05 s at ~287K messages).
  • Safe in-place upgrade for existing installs. recall install migrates an existing database in place: rollback snapshot → WAL conversion → integrity check with auto-repair → background re-embed.
  • New scripting flags. --raw-messages (full ranked per-message JSON) and --no-idf (keep common words in keyword search).

Upgrading from 0.1.x

Exit any running Claude/Codex sessions, then:

npm install -g crispy-recall
recall install   # run this FIRST, before any other recall command

Your indexed history is preserved — even without the original transcripts (Claude Code deletes session .jsonl files after 30 days by default; the migration never reads them). A rollback snapshot is written to ~/.recall/recall.db.pre-upgrade-<stamp>. The migration is one-way — don't downgrade to ≤ 0.1.6 afterwards. See the README for full upgrade notes.