fabro/lib/foundation
Bryan Helmkamp 0cd0df43ae
Seed a forked run from a source's records, checkpoints and snapshots
`fabro_petri::fork` is the seam rewind, fork and retry are built on (plan
item F5.1): `fork` calls Petri's `host::fork_from` over the server's run
store to seed the new run's records up to a checkpoint's position, writes
the source's checkpoint records for every kept attempt under the new run
at their positions, seeds the new run's snapshot repository per workspace
with those checkpoints' refs alone (fetched from the source's repository
under its run scratch), and records the new run branch
(`fabro/run/<new id>` from the position's commit) with its Git identity.
`check` refuses a position Petri would refuse (an unknown execution, or
one inside a child invocation) before anything is written; `stage_labels`
reads the projector's fold state so a timeline can label checkpoints and
resolve `node@visit` targets.

The resume then restores the fresh workspace itself: `scope_acquired` now
brings a host workspace to its durable snapshot too (verified after a
restart, restored from the seeded repository for a fork), through
`recovery::bring_host_to`, which restores a directory with no history
instead of resetting it. The projection folds `forked_from` from the
fork's `run.started`.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-18 23:17:02 -04:00
..
build-support refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
fabro-api Show the sandbox's ready duration and retention outcome on the run 2026-09-18 19:34:56 -04:00
fabro-auth Name built-in providers through lithos catalog::builtin 2026-09-10 09:48:37 -06:00
fabro-client Steer a Petri run by stage 2026-09-18 19:59:23 -04:00
fabro-config Settle clippy and formatting after the sandbox merge 2026-09-18 18:39:58 -04:00
fabro-db Drop the run_events table and narrow the runs row 2026-09-18 14:37:18 -04:00
fabro-dev Delete fabro-hooks and the engine freeze check 2026-09-18 10:47:56 -04: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 Remove the engine flag: every run is a Petri run 2026-09-18 09:58:21 -04: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 Render the branch, identity, diff and artifact records and re-record the run snapshots 2026-09-18 18:39:58 -04:00
fabro-types Seed a forked run from a source's records, checkpoints and snapshots 2026-09-18 23:17:02 -04:00
fabro-util Fix the rustdoc link warnings and gate rustdoc in CI 2026-09-18 19:24:34 -04:00
fabro-vault refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00