fabro/lib
Bryan Helmkamp 3ffe7e00ce
Implement Petri's run store over Fabro's SQLite database
`SqliteRunStore` implements Petri's `RunStore` and `RunLogs` on the pool
Fabro's other stores share. A run's existence and writer lease live in
`petri_runs`; every record of every log lives in `petri_records`, keyed by
(run, log, seq) with the record stored as JSON and read back unchanged;
blobs share the `blobs` table with `BlobStore`. The lease is taken
idempotently per owner, ends when the last handle drops or when an
operator releases it, and never by timeout; every write checks it inside
its own transaction. An append is one `BEGIN IMMEDIATE` transaction per
batch: a repeated record is accepted, a different record at a taken seq or
a seq past the head is a conflict that stores nothing.

Petri's store conformance suite passes against it, with the operator
release, lease exclusivity, a crash between appends, and blob
interoperation checked beside it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 19:30:30 -04:00
..
apps Delete fabro's own pricing: lithos-llm prices every response once 2026-09-14 14:46:44 -06:00
components Implement Petri's run store over Fabro's SQLite database 2026-09-17 19:30:30 -04:00
foundation Implement Petri's run store over Fabro's SQLite database 2026-09-17 19:30:30 -04:00
packages/fabro-api-client Delete fabro's own pricing: lithos-llm prices every response once 2026-09-14 14:46:44 -06:00