fabro/lib
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
..
apps Place the run branch and git identity records with their checkpoint 2026-09-18 20:38:22 -04:00
components Seed a forked run from a source's records, checkpoints and snapshots 2026-09-18 23:17:02 -04:00
foundation Seed a forked run from a source's records, checkpoints and snapshots 2026-09-18 23:17:02 -04:00
packages/fabro-api-client Steer a Petri run by stage 2026-09-18 19:59:23 -04:00