|
61 | 61 | **Naming:** "Take Control" / "Return to Orchestrator" overstate what happens. The coordinator agent is still running — only its ability to send prompts to that sub-task is blocked. More accurate labels: **"Pause coordinator"** / **"Resume coordinator"** (or just "Pause" / "Resume" with banner context). |
62 | 62 |
|
63 | 63 | **Input gating:** When the coordinator has control, the sub-task's PromptInput textarea and raw xterm terminal are not gated — the user can type freely, which could collide with a coordinator `send_prompt` firing simultaneously. The fix: dim/disable PromptInput and suppress xterm keyboard input when `controlledBy === 'coordinator'`, with "Pause coordinator" as the only way to re-enable input. This makes the model discoverable rather than relying on the user reading the banner before typing. |
| 64 | + |
| 65 | +--- |
| 66 | + |
| 67 | +## Beta gating — `experimental.coordinatorMode` flag |
| 68 | + |
| 69 | +**Status:** Not implemented. Coordinator mode is currently always available. |
| 70 | + |
| 71 | +**What's needed (per repo owner feedback):** |
| 72 | + |
| 73 | +- A single `experimental.coordinatorMode` setting, off by default |
| 74 | +- When off: MCP server module is not started (lazy `import()` on flag flip), Coordinator option in NewTaskDialog is hidden, and coordinator-related IPC channels are not registered — zero footprint for users who don't opt in |
| 75 | +- When on: current behavior |
| 76 | + |
| 77 | +**Note:** The settings UI placement for this flag depends on the tabbed settings dialog (separate PR — see below). |
| 78 | + |
| 79 | +--- |
| 80 | + |
| 81 | +## Tabbed settings dialog (separate PR) |
| 82 | + |
| 83 | +**Status:** Not implemented. Settings is a flat scrollable list that's getting long. |
| 84 | + |
| 85 | +**What's needed:** Split into tabs, e.g. General / Experimental (or Beta). The `experimental.coordinatorMode` flag and other power-user settings live in the Experimental tab. This should land as its own PR independent of coordinator work. |
| 86 | + |
| 87 | +--- |
| 88 | + |
| 89 | +## Post-restart MCP path — integration test |
| 90 | + |
| 91 | +**Status:** No integration test. The port/token rotation that rewrites the sub-task MCP config on coordinator restart is the most fragile part of the system by design. |
| 92 | + |
| 93 | +**What's needed:** An integration test that confirms after a coordinator restart (new port, new token), the config file the sub-agent reads is correctly rewritten and the sub-agent can reconnect. Unit tests don't cover this path. |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +## `skipPermissions` guardrail |
| 98 | + |
| 99 | +**Status:** Sub-tasks silently inherit `--dangerously-skip-permissions` from the coordinator if the coordinator was started with it. No per-task confirmation. |
| 100 | + |
| 101 | +**What's needed:** Two changes: |
| 102 | + |
| 103 | +1. An explicit UI confirmation when creating a coordinator task with skip-permissions, making clear that all sub-tasks will inherit it |
| 104 | +2. A "propagate skip-permissions to sub-tasks" checkbox (default off) so users must explicitly opt in to inheritance rather than getting it automatically — important for the "40 tasks" workflow where per-task confirmation would be impractical |
0 commit comments