mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-01 02:04:24 +00:00
Petri a5906f6 records where each scope's sandbox ran (`scope.acquired`, `scope.failed`) and how its lease was released (`scope.released`). The projection folds the root invocation's records into `Run.sandbox`: `initializing` from `run.started`, `ready` with the `RunSandboxInstance` (the provider, Petri's `host` as Fabro's `local`, the provider's id, the image and snapshot, the working directory) from `scope.acquired`, `failed` from `scope.failed`; the retention outcome is kept in the fold state, since the view has no field for it. Ask Fabro reconnect and `sandbox cp`, `preview` and `ssh` reach the run's sandbox again. A local reconnect designates the recorded working directory again when the host provider does not know the id: the provider mints a registry-only id for a workspace path too long for a path-derived one, and that registry belongs to the run's worker. The stream listing redacts its items the way the attached stream does, so a client that pages after a stream sees the same items. Pins move to Petri a5906f6 (run format 6, engine log v11, event contract 4). The attach stream snapshot is re-recorded with the new record and a filter for the host provider's minted ids; `sandbox cp` reads an upload back through the run's workspace, which is no longer the target folder. Server scenario tests prove the projected instance on the host and Docker providers. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| apps | ||
| components | ||
| foundation | ||
| packages/fabro-api-client | ||