Repository navigation
Chief: never ask for approvals; another person's turn is refused at once - #22747
Conversation
The owner's turns (this Mac, a paired device, Home) always run with the configured policy: remote.ask, home.ask and remote.autoApprove are gone and ignored in old settings files. A turn that carries another person's text still runs with policy ask, but the host refuses its local effects at once with no approval card and no question; children spawned under it take the same floor. A startup failure or report of the owner's own subagent no longer holds the next turn.
…start); store another person's text as other_person
…icy; a subagent failing under the spawn floor keeps ask; stale approval comments
Correctness review (independent subagent) and resolutionReviewed 84d6022; fixes are in ed84a32.
Compile check: no findings. Stale comments the reviewer listed in the crate are fixed. The shared Tests (rbx): fmt and clippy |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
|
|
Bead |
|
Shipped in:
|
|
Shipped in:
|
What
Lawrence (2026-10-20): "remove all chief approvals. chief should never have to ask for approvals". He was blocked: his NIGHTLY Chief (df694bd, which already has #22640) still asked "Reply allow or deny" from his phone.
Root cause of the asks he saw: turn 7193 was a resume after a host restart. Resume and item records from older builds had no provenance and failed closed (
requires_approvaldefault true), and a resume carries the flag forward, so one old record gated every turn after each restart (every NIGHTLY update restarts the host).remote.autoApprove: truein his settings could not lift it.remote.ask,home.askandremote.autoApproveare removed; old settings files are ignored and the keys dropped at the next write.ask, but the host refuses every local effect at once: no approval card, no question, noallow/denychat answers. Children and section 9 subagents spawned under it keep theaskfloor and are refused the same way. (Lawrence chose "refuse, never ask" for other people.)other_person; oldrequires_approvalkeys are ignored, so the persistent taint is gone.keep_sigincludes the policy), so a teammate turn cannot reuse an approve-all session and an owner turn never reuses anaskone.ask.Takes back #22640: Lawrence removed Chief approvals entirely (this PR removes the opt-in gates and the approval card that #22640 added).
Supersedes the approach of #22639 (approval card in Home): with this change the Chief never posts an approval.
Risk
Verification
rbx (
cmux-rust-builder-1, lane chief-no-approvals), crateoptchat-chief:cargo fmt --check: pass.cargo clippy --locked --all-targets -- -D warnings: pass.cargo test --locked --no-fail-fast:approval_gates(rewritten, 6 behavior tests at the brain boundary),corpus,crash(fixed by this PR),remote_wake,owner_stopand the rest pass. Two failures are base reds, identical on base 828d367 (lane chief-base-check):daemon_workspaces::a_subagent_workspace_is_located_by_its_public_id_and_sessionandturn_seal_binding::a_subagent_cannot_reach_owner_controls_on_the_shared_socket.Observed / Not run
cmux-chiefpolicy crate and the TypeScript brain conformance still defineremote_auto_approve(unchanged, no longer read by optchat-chief).Review: independent subagent correctness review; findings and resolutions in a PR comment.
Changelog
Changed: Chief never asks for approval; another person's requests in a shared Chief are refused instead of asked.
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Removes Chief approvals entirely: the Chief never asks a person before it acts, and a turn that carries another person's text is refused at once instead of showing an approval card.
remote.ask,home.ask, andremote.autoApprove; old settings files are ignored and the keys are dropped.ask, but the host refuses every local effect immediately with no card, no question, and noallow/denyanswers.other_person; oldrequires_approvalkeys are ignored, so a resumed turn no longer gates every turn after a restart.Behavior
Written for commit ed84a32. Summary will update on new commits.