mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-01 02:04:24 +00:00
`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> |
||
|---|---|---|
| .. | ||
| apps | ||
| components | ||
| foundation | ||
| packages/fabro-api-client | ||