fabro/lib/foundation
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
..
build-support refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-api Carry usage as lithos-llm's Usage and rename billing to usage 2026-09-14 12:31:34 -06:00
fabro-auth Name built-in providers through lithos catalog::builtin 2026-09-10 09:48:37 -06:00
fabro-client Retire legacy manifest run creation 2026-09-13 08:49:50 -06:00
fabro-config Merge remote-tracking branch 'origin/main' into remove/run-metadata-branches 2026-09-12 16:28:01 -06:00
fabro-core Harden succeed failure policy routing 2026-08-26 09:13:04 -04:00
fabro-db Implement Petri's run store over Fabro's SQLite database 2026-09-17 19:30:30 -04:00
fabro-dev Document the catalog overlay without the metadata.fabro namespace 2026-09-09 23:26:48 -06:00
fabro-http Depend on lithos-llm and the published twin-openai crate 2026-09-09 17:26:57 -06:00
fabro-macros refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-oauth refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-options-metadata refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-proc Consolidate server Git subprocess ownership 2026-09-11 17:36:40 -06:00
fabro-redact Give the checkout its GitHub credentials through the driver's store 2026-09-11 10:02:01 -06:00
fabro-static feat(search): add Venice backend for web_search 2026-08-21 12:31:03 -07:00
fabro-telemetry refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-template Simplify model stylesheet template plumbing 2026-08-25 18:54:06 -04:00
fabro-test Remove tests and fixtures tied to retired manifest fields 2026-09-13 08:55:55 -06:00
fabro-types Carry usage as lithos-llm's Usage and rename billing to usage 2026-09-14 12:31:34 -06:00
fabro-util Neutralize runtime for_each labels before display 2026-07-28 19:52:59 -04:00
fabro-vault refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00