Replay events
--after when reconnecting. Runner events are separate from lifecycle webhooks.
Steer or interrupt
ReplaceTURN_UUID with the current turn ID from runner state. Retain a new UUID for each distinct control request:
requestId and expectedTurnId; steering also includes text. Supplying the expected turn prevents a delayed control request from targeting later work. Reuse the same control request UUID only when retrying that request.
Answer an approval
Use the server request ID from the approval event:accept, decline, and cancel. The server request ID can be a string or JSON value, matching the event.
Prompts default to approvalPolicy: "untrusted". The prompt flag --approve-tools selects "never", which skips approval prompts for that turn. Choose the policy deliberately before starting work.
Restart the runner
bead:runner_steer, bead:runner_interrupt, bead:runner_approval, and bead:runner_restart. For interactive human help, use desktop takeover.
