Repository navigation
feat(cli): guard the orchestrator's pane - #36
Merged
Merged
Conversation
In the orchestrator's pane, baton hook guard asks the user before outward commands and, while the new planApproval setting is on, before baton feature start; it lets the orchestrator's baton commands run, denies the other watched commands, and keeps create and edit in the session's folder. The orchestrator's copilot now runs with --allow-all (decision 54).
|
Bakhomious
added a commit
that referenced
this pull request
Nov 4, 2026
A role's pane runs its copilot with a second belt behind the guard: env settings that make git's pushes out of the machine fail (pushInsteadOf rules to a missing remote helper, exact rules per remote URL, pushurls cleared) and gh fail (GH_CONFIG_DIR under /dev/null), with GH_TOKEN or GITHUB_TOKEN moved to COPILOT_GITHUB_TOKEN for copilot's own login (decision 55, fact 38, risk 2). Docs: rows guard-orchestrator Done (#36) and belt In review (#37), fact 37's start script fixed. Merged under the user's standing OK of 2026-10-31.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What
Row
guard-orchestrator:baton hook guardnow rules the orchestrator's pane too, and the orchestrator'scopilotruns with--allow-all(decision 54, the lead's call, flagged).baton wait,answer,handover,status, help) run unasked.baton feature startanswersaskwhile plan approval is on. Outward commands answerask, so the user approves each push and pull request.tmux,osascript, other agents' CLIs, baton's other commands, programs that only the run decides and unreadable scripts are denied. A deny anywhere in a script wins; otherwise the first ask names the question.session-state/<sessionId>underCOPILOT_HOMEor~/.copilot, by the hook input'ssessionId.planApprovalsetting (defaulttrue;falseturns the question off;nullkeeps the layer below). The guard reads the config only for a script that starts a feature.baton feature …andbaton hook …are named by two words, sobaton feature startstands apart from laterbaton featurecommands.ask_userand copilot's folder-trust question (no--no-ask-user, noCOPILOT_ALLOW_ALL). Its prompt now says that the guard asks the user, and what to do after a no.Docs
docs/plan.md: new decision 54 and fact 37 (how copilot shows a hook'saskand what the agent gets after a no); amended decisions 8, 19, 45, 49 and 52, risk 3, the Safety, orchestrator and Config sections, and rowsplugin-check(Done, #35) andguard-orchestrator. README:planApproval.Checks
mise run check: green;internal/cli99.8%, the guard files,internal/configandinternal/guardat 100%.planApprovalloading and layering, first-answer order, two-word names,--allow-all), all caught; two first failed to build and were rewritten, then caught.COPILOT_HOMEand repo without a remote, 0.32 AI credits. The ask box showed forgit push --dry-run(declined with feedback) andbaton feature start(allowed, ran); a create in the session'sfiles/ran, one in the repo was denied. Everything temporary was removed afterwards.Known gaps (decision 54)
The orchestrator's
bashcan still write any file and run local commands such asrmunasked (risk 3);web_fetchcan send data in a URL; its extra tools run unasked; plan approval comes from the hook folder's repo, not from a repo the scriptcds into;baton feature start -hasks too.