mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-22 00:31:12 +00:00
Four fixes from post-merge review: - Freeze archived runs on the remaining write surfaces the Unit 4 audit missed: `put_stage_artifact`, `put_sandbox_file`, and `write_run_blob` now all call `reject_if_archived` so a client cannot mutate artifacts, sandbox files, or blobs on an archived run. - Widen the `append_run_event` lifecycle denylist to cover every event with a dedicated operation endpoint: archive, unarchive, and the three control-request events (cancel/pause/unpause). Worker-emitted lifecycle transitions and rewind's `RunRewound` / `RunSubmitted` replay still flow through the endpoint as before. - Map `fabro_store::Error::RunNotFound` to a distinct `Error::RunNotFound` at the operations layer so the archive and unarchive HTTP handlers return a 404 on unknown run ids instead of collapsing into a generic 500. - Centralize the archived-run guard in `operations::rewind` by threading `current_status` through `RewindInput` and calling the new `ensure_not_archived` helper alongside a shared canonical error message. The CLI caller drops its ad-hoc string comparison in favor of the typed status it already loads from the server. |
||
|---|---|---|
| .. | ||
| commands | ||
| shared | ||
| sleep_inhibitor | ||
| args.rs | ||
| command_context.rs | ||
| gh.rs | ||
| landing.rs | ||
| logging.rs | ||
| main.rs | ||
| manifest_builder.rs | ||
| server_client.rs | ||
| server_runs.rs | ||
| sse.rs | ||
| user_config.rs | ||