fabro/lib
Bryan Helmkamp c7aa50c943
Delete a run's sandboxes through Petri's lease ledger
Run deletion called the driver's `provider.delete(id)` under the run's
`petri.run` scope, a delete of Fabro's own over a sandbox whose lease
record Petri owns. It now goes the way `petri sandbox prune` goes:
`fabro_petri::prune` builds the run's Petri runtime over the server's
store (the run key, the run directory, the sandbox backend) and calls
Petri's prune, which opens the run for writing, checks each lease's
provider fingerprint, writes the delete intent and the tombstone beside
the run's other records, and lets each provider remove its managed
workspace, a host workspace included.

A run a live process holds answers 409 unless the delete is forced; a
lease Petri could not prune answers 409 with the problem text, or is
warned and skipped under force or a delete that already started. The
server drops the worker's handles before the prune, on the store
instance the prune opens, so the lease a stopped worker held is released
first. The projection reads only the coordinator and execution logs, so
the resource records change nothing it reports.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-19 14:54:03 -04:00
..
apps Delete a run's sandboxes through Petri's lease ledger 2026-09-19 14:54:03 -04:00
components Delete a run's sandboxes through Petri's lease ledger 2026-09-19 14:54:03 -04:00
foundation Forward every configured sandbox plugin to the Petri worker 2026-09-19 14:45:42 -04:00
packages/fabro-api-client Forward every configured sandbox plugin to the Petri worker 2026-09-19 14:45:42 -04:00