From 11397e9c24e44952efbff59106074faba22a74bc Mon Sep 17 00:00:00 2001 From: Stephen Waits <1+swaits@noreply.git.swaits.com> Date: Sun, 11 Oct 2026 01:16:25 +0000 Subject: [PATCH] Storage: hash-chained JSONL journal as source of truth, SQLite as disposable projection --- plan/STATUS.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plan/STATUS.md b/plan/STATUS.md index 67f3f80..ac71742 100644 --- a/plan/STATUS.md +++ b/plan/STATUS.md @@ -63,3 +63,8 @@ flow, proptest) continues as needed, but the next *phase* is the interface: *behavioral* oracle only. Receipt enforcement is server-side policy in the MCP layer (threshold + per-account overrides, typed `receipt_required` error, checklist in every preview); the engine stays policy-free. +- 2026-10-10: Storage durability (Stephen). SQLite is the query engine, not + the source of truth: the source of truth is an append-only, hash-chained + JSONL journal (fsync per append; tamper-evident; git-backup-friendly), + SQLite is a disposable projection rebuilt from it, blobs stay + content-addressed. Single write path: journal → fsync → apply to SQLite.