You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Let a coordinator approve its workers' permission requests (opt-in)
#17459
A coordinator thread can start a worker in a supervised mode (delegate_task or t3_thread_launch with runtimeMode: "approval-required"), but it can't answer that worker's approval requests. t3_pending_request_list leaves approvals out, and t3_pending_request_respond can't approve or deny them. Every request waits for the user on the worker's thread, which is often hidden (#15082, #14416).
That leaves two options, and neither works well:
Full access plus prompt rules ("only load these tools", "don't push"). Nothing enforces them. The coordinator can only check the worker's activity log afterwards.
Supervised. The rules are enforced, but I have to approve every git status by hand, which defeats the point of delegating.
What I'm after: a strong model coordinates and cheaper models do the work. The coordinator decides on each gated action, knowing what the task is. For example, it allows git diff and denies git push, allows edits under src/ and denies .env, and denies a computer-use call that would drive my own machine instead of a sandbox. Cheap workers become safer to run unattended, and I only see the decisions the coordinator escalates.
Proposal
Opt in per launch. Add an option on delegate_task and t3_thread_launch (for example approver: "user" | "coordinator"). The default stays user, so nothing changes unless it's set.
Answering.t3_pending_request_respond accepts approve or deny for these requests, with an optional reason the worker can see. I'd leave "always allow for this session" out of scope at first.
Guardrails.
Only the worker's own coordinator can answer, not just any thread.
The coordinator can't approve beyond its own runtime mode.
The worker's timeline records each decision and who made it.
The user can still answer in the worker's thread, and whichever answer arrives first wins.
A user setting can turn the feature off entirely.
This doesn't add any capability the coordinator lacks today. A full-access coordinator can already start the same worker with runtimeMode: "full-access". Approving one call at a time is strictly narrower than that, and it is enforced, unlike prompt rules.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
The problem
A coordinator thread can start a worker in a supervised mode (
delegate_taskort3_thread_launchwithruntimeMode: "approval-required"), but it can't answer that worker's approval requests.t3_pending_request_listleaves approvals out, andt3_pending_request_respondcan't approve or deny them. Every request waits for the user on the worker's thread, which is often hidden (#15082, #14416).That leaves two options, and neither works well:
git statusby hand, which defeats the point of delegating.What I'm after: a strong model coordinates and cheaper models do the work. The coordinator decides on each gated action, knowing what the task is. For example, it allows
git diffand deniesgit push, allows edits undersrc/and denies.env, and denies a computer-use call that would drive my own machine instead of a sandbox. Cheap workers become safer to run unattended, and I only see the decisions the coordinator escalates.Proposal
delegate_taskandt3_thread_launch(for exampleapprover: "user" | "coordinator"). The default staysuser, so nothing changes unless it's set.t3_pending_request_listandt3_pending_request_readwith the full request: command, file and diff, or tool name and arguments.t3_pending_request_respondaccepts approve or deny for these requests, with an optional reason the worker can see. I'd leave "always allow for this session" out of scope at first.This doesn't add any capability the coordinator lacks today. A full-access coordinator can already start the same worker with
runtimeMode: "full-access". Approving one call at a time is strictly narrower than that, and it is enforced, unlike prompt rules.Related
Questions for maintainers
All reactions