mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-01 02:04:24 +00:00
`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> |
||
|---|---|---|
| .. | ||
| build-support | ||
| fabro-api | ||
| fabro-auth | ||
| fabro-client | ||
| fabro-config | ||
| fabro-core | ||
| fabro-db | ||
| fabro-dev | ||
| fabro-http | ||
| fabro-macros | ||
| fabro-oauth | ||
| fabro-options-metadata | ||
| fabro-proc | ||
| fabro-redact | ||
| fabro-static | ||
| fabro-telemetry | ||
| fabro-template | ||
| fabro-test | ||
| fabro-types | ||
| fabro-util | ||
| fabro-vault | ||