fabro/docs/public/execution
Brandon McNama 465cc66283
feat(approvals): auto-approve child starts by parent workflow policy
A workflow agent that spawns child runs forces every dispatch through an
operator checkpoint, even for dispatcher workflows whose whole purpose is
unattended fan-out. The only workaround today is out-of-band approval
hooks that poll the runs API and click approve from the host, which needs
a server token inside the worker host and leaves the decision recorded
nowhere near the run it approved.

Give the platform a first-class policy path instead: a child start is
auto-approved only when the server enables
`[server.approvals] allow_child_auto_approval` and the spawning parent's
registered `workflow.toml` opts in with `[run.children] auto_approve`.
Both defaults stay false, so nothing changes for existing workflows.

The decision is read from the parent's persisted spec at start time, so a
config reload affects future starts only, reassigning a run's parent link
cannot change the policy, and `RunIntentArgs.auto_approve` keeps its
existing meaning (the child's own agent-interaction posture) without ever
bypassing the lifecycle checkpoint. A worker start outside its own
parentage fails closed to the operator gate.

Auto-approved children record a distinct `auto_approved` lifecycle
transition and project `approval.state = approved` with a decision
timestamp in one pass, so lifecycle history is auditable and no transient
pending state is ever observed.

Note: this commit depends on lithoscomputer/petri accepting the
platform-only `[run.children]` workflow.toml section; the Cargo.lock bump
to the merged rev lands with that PR.
2026-10-15 15:27:59 -04:00
..
automations.mdx Align remote workflow selectors with run targets 2026-08-31 17:13:20 -04:00
checkpoints.mdx Keep Git checkpoints for runs on host workspaces 2026-10-01 13:01:53 -04:00
child-runs.mdx feat(approvals): auto-approve child starts by parent workflow policy 2026-10-15 15:27:59 -04:00
context.mdx fix(sandbox): materialize prompt blobs in runtime storage, not the checkout 2026-08-25 07:14:31 -04:00
environments.mdx Clarify source and execution directories for Local runs 2026-10-07 11:12:00 -04:00
failures.mdx Restore graph-wide stall watchdog in Fabro execution 2026-10-14 11:20:00 -04:00
observability.mdx docs: refresh product documentation 2026-08-24 09:53:09 -04:00
outcomes.mdx Add on_failure="succeed" as an explicit failure policy 2026-08-26 07:34:24 -04:00
run-configuration.mdx feat(approvals): auto-approve child starts by parent workflow policy 2026-10-15 15:27:59 -04:00