fabro/lib
Bryan Helmkamp 5093265efb
Wire pause, unpause and steer into the Petri worker
A Petri run answered only cancel and answers; pause, unpause and steer
were ignored with a warning. `fabro_petri::controls::RunControls` now
wraps Petri's `ControlService` per run: `engine::run` installs its pause
gate over the run's hooks, observes the run through it and wires it to
the coordinator, on a start and a resume alike, so a run paused when its
worker died resumes paused.

The worker's control channel takes a `WorkerControls` enum: the legacy
hub and pause flag, or the Petri run's controls. On Petri, `run.pause`
holds admission, `run.unpause` releases it once the record is durable,
and `run.steer` goes to the one live agent stage (Fabro's steer names no
stage); with none or several it is refused with a `run.notice` record.
The paused state is mirrored to Fabro's lifecycle as `run.paused` and
`run.unpaused` events, so the server's live status and the projection
follow Petri's own records.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-18 07:49:54 -04:00
..
apps Wire pause, unpause and steer into the Petri worker 2026-09-18 07:49:54 -04:00
components Wire pause, unpause and steer into the Petri worker 2026-09-18 07:49:54 -04:00
foundation Merge branch 'petri-integration-api' into petri-integration 2026-09-18 01:39:53 -04:00
packages/fabro-api-client Merge branch 'petri-integration-api' into petri-integration 2026-09-18 01:39:53 -04:00