| 1 | # v0.8.8 Coordinator Prompt |
| 2 | |
| 3 | Feed this entire document as a single message to a coordinating agent in **YOLO mode** (`deepseek --mode yolo` or `/mode yolo`). The coordinator will decompose the v0.8.8 milestone into independent workstreams, spawn sub-agents into git worktrees, monitor progress, and integrate results. |
| 4 | |
| 5 | ## Your role: v0.8.8 release coordinator |
| 6 | |
| 7 | You are a coordinating agent responsible for delivering the v0.8.8 milestone. You must NOT attempt to implement issues yourself. Your job is to: |
| 8 | |
| 9 | 1. Read the issue tracker to understand every issue. |
| 10 | 2. Create a high-level plan using `update_plan`. |
| 11 | 3. Create git worktrees for each independent workstream. |
| 12 | 4. Spawn sub-agents into those worktrees (one per workstream, or further subdivided for large streams). |
| 13 | 5. Monitor sub-agent progress via `agent_list` / `agent_result`. |
| 14 | 6. Integrate completed worktrees by merging them back into the main branch in dependency order. |
| 15 | 7. Run verification gates (`cargo check`, `cargo clippy`, `cargo test`) after each integration. |
| 16 | |
| 17 | ## Scope: the v0.8.8 milestone |
| 18 | |
| 19 | All issues with the `v0.8.8` label on GitHub, plus the 23 v0.8.6 carry-forward issues listed in #482. Use `gh issue list --label v0.8.8 --state open --limit 100` to enumerate them. For the carry-forward list, read issue #482 to get the full set of issue numbers. |
| 20 | |
| 21 | Read **every issue body** before spawning work. You need to understand cross-cutting concerns (which issues touch the same files, which depend on others). |
| 22 | |
| 23 | ## Workstream decomposition |
| 24 | |
| 25 | Group the issues into these workstreams. The exact issue-to-stream mapping is for you to determine after reading every issue, but this is the expected shape: |
| 26 | |
| 27 | ### Stream A: TUI bugfixes (12 issues, no dependencies) |
| 28 | - Bugs: #488 (Option+Backspace), #487 (pending queue leak), #449 (statusline theme), #444 (bounded terminal probes), #443 (keyboard reporting reset), #421 (subagent process leaks), #420 (MCP server shutdown), #419 (heredoc parsing), #417 (dangerous config keys), #416 (git -C auto-approve), #409 (agent_spawn rendering), #403 (todo tool JSON dumps) |
| 29 | - Size: Small, can be a single sub-agent. |
| 30 | - Target worktree: `worktrees/tui-bugfixes` |
| 31 | |
| 32 | ### Stream B: OPENCODE shared infrastructure (35+ issues) |
| 33 | - Permissions: #410–#418, #426 |
| 34 | - LSP diagnostics: #427, #428, #389 (carry-forward) |
| 35 | - Hooks: #455, #456, #460 |
| 36 | - Config/profile: #436, #437, #454, #390 (carry-forward) |
| 37 | - Skills: #431, #432, #433, #434 |
| 38 | - Subagent infrastructure: #404, #405, #425, #426 |
| 39 | - Worktree manager: #452 |
| 40 | - Compaction: #429, #406 |
| 41 | - Other: #430 (webfetch), #439 (toasts), #440 (prompt stash), #441 (frecency), #442 (Kitty keyboard), #445 (plan-mode suggestions), #446 (plan-exit handshake), #447 (multi-day duration), #448 (turn duration), #450 (screen-reader), #451 (pr command) |
| 42 | - This stream is large enough that you should spawn **multiple sub-agents** within it, subdivided by subsystem (permissions, LSP/hooks, config/skills, agent-infra, misc). Each sub-agent gets its own sub-worktree under `worktrees/opencode-*`. |
| 43 | - Size: Large. Subdivide aggressively. |
| 44 | |
| 45 | ### Stream C: Agent / UX improvements (7 issues) |
| 46 | - #403 (todo rendering), #404 (subagent categories), #405 (agent archiving), #406 (auto-archive), #407 (Agents workbench), #408 (Plan panel reconciliation), #409 (agent_spawn rendering) |
| 47 | - Note: #403, #406, #409 may overlap with Stream A. Coordinate to avoid conflicts — either put them in one stream or the other, not both. |
| 48 | - Depends on: Stream B for subagent infrastructure (#404, #405, #425, #426). |
| 49 | - Target worktree: `worktrees/agent-ux` |
| 50 | |
| 51 | ### Stream D: App-server enhancements (8 issues) |
| 52 | - #457 (server attach), #458 (mDNS publishing), #459 (OpenAPI generation), #470 (ACP bridge), #452 (worktree manager — may be shared with Stream B), #475 (auth for --http), plus carry-forward items touching app-server. |
| 53 | - Depends on: Stream B for permission/hook infrastructure. |
| 54 | - Target worktree: `worktrees/app-server` |
| 55 | |
| 56 | ### Stream E: Web UI (8 issues + umbrella) |
| 57 | - #471 (scaffold), #472 (composer/transcript), #473 (file browser/Monaco), #474 (approval modal), #475 (auth), #476 (mode switcher), #477 (theme), #478 (PWA) |
| 58 | - Umbrella: #481 |
| 59 | - Depends on: Stream D (app-server must be stable). The web UI talks to `deepseek serve --http`. |
| 60 | - Target worktree: `worktrees/web-ui` |
| 61 | |
| 62 | ### Stream F: VS Code extension (9 issues + umbrella) |
| 63 | - #461 (scaffold), #462 (server auto-detect), #463 (chat webview), #464 (editor context), #465 (inline edits), #466 (diagnostics), #467 (commands), #468 (status bar), #469 (marketplace) |
| 64 | - Umbrella: #480 |
| 65 | - Depends on: Stream D (app-server), and Stream E if the webview reuses Web UI components. |
| 66 | - Target worktree: `worktrees/vscode` |
| 67 | |
| 68 | ### Stream G: v0.8.6 carry-forward (23 issues) |
| 69 | - Numbers listed in #482 body. Read #482 to get the full list. |
| 70 | - Sizes and dependencies vary. Read each carry-forward issue and assign it to the appropriate stream (A–F) rather than treating it as a separate workstream. Many will map to Stream B (OPENCODE) or Stream A (bugfixes). |
| 71 | |
| 72 | ## Git worktree isolation pattern |
| 73 | |
| 74 | Each workstream gets its own git worktree to prevent file conflicts, stale checkouts, and merge headaches: |
| 75 | |
| 76 | ```bash |
| 77 | # Bootstrap (you do this once, before spawning sub-agents): |
| 78 | git worktree add ../worktrees/tui-bugfixes -b feat/v0.8.8-tui-bugfixes |
| 79 | git worktree add ../worktrees/opencode-permissions -b feat/v0.8.8-opencode-permissions |
| 80 | git worktree add ../worktrees/opencode-lsp-hooks -b feat/v0.8.8-opencode-lsp-hooks |
| 81 | git worktree add ../worktrees/opencode-config -b feat/v0.8.8-opencode-config |
| 82 | git worktree add ../worktrees/opencode-agents -b feat/v0.8.8-opencode-agents |
| 83 | git worktree add ../worktrees/opencode-misc -b feat/v0.8.8-opencode-misc |
| 84 | git worktree add ../worktrees/agent-ux -b feat/v0.8.8-agent-ux |
| 85 | git worktree add ../worktrees/app-server -b feat/v0.8.8-app-server |
| 86 | git worktree add ../worktrees/web-ui -b feat/v0.8.8-web-ui |
| 87 | git worktree add ../worktrees/vscode -b feat/v0.8.8-vscode |
| 88 | ``` |
| 89 | |
| 90 | When spawning a sub-agent, set its `cwd` to the corresponding worktree path. The sub-agent works entirely within that worktree and never touches the main checkout or other worktrees. |
| 91 | |
| 92 | Once issue #452 (worktree manager) is completed, you may switch to using `/worktree new` instead of manual `git worktree add`. Until then, use the manual approach above. |
| 93 | |
| 94 | ## Sub-agent spawning strategy |
| 95 | |
| 96 | For each workstream, spawn one or more sub-agents: |
| 97 | |
| 98 | ``` |
| 99 | agent_spawn( |
| 100 | type: "general", |
| 101 | cwd: "../worktrees/<name>", |
| 102 | prompt: "<detailed workstream prompt, including specific issue numbers and acceptance criteria>" |
| 103 | ) |
| 104 | ``` |
| 105 | |
| 106 | Each sub-agent prompt should include: |
| 107 | - The exact issue numbers assigned to that sub-agent. |
| 108 | - A reminder to read each issue body with `gh issue view <N>` before implementing. |
| 109 | - The acceptance criteria from each issue. |
| 110 | - A mandate to run `cargo check` and `cargo test --workspace --all-features` before reporting completion. |
| 111 | - Instructions to commit with messages like `feat(v0.8.8): <issue title> (fixes #NNN)`. |
| 112 | |
| 113 | **For large streams (B, E, F)**, subdivide further: spawn one sub-agent per subsystem, each in its own worktree. Do NOT spawn one agent for all 35 OPENCODE issues — it will thrash. |
| 114 | |
| 115 | **Parallelism rule**: spawn independent workstreams concurrently. Example: once worktrees exist, spawn A, B-permissions, B-lsp-hooks, B-config, B-agents, and B-misc all in one turn (up to 5 max in flight). When some complete, spawn the next batch. |
| 116 | |
| 117 | ## Integration order (critical) |
| 118 | |
| 119 | Merge worktrees in this order to minimize conflicts: |
| 120 | |
| 121 | 1. **Stream A** (TUI bugfixes) — merge first. Quick wins, low conflict risk. |
| 122 | 2. **Stream B subsystems** — merge in this order within B: |
| 123 | a. `opencode-config` (config/profile changes — other things depend on config shape) |
| 124 | b. `opencode-permissions` (permission model — agents depend on it) |
| 125 | c. `opencode-lsp-hooks` (LSP and hooks infrastructure) |
| 126 | d. `opencode-agents` (subagent infrastructure — needed by Stream C) |
| 127 | e. `opencode-misc` (everything else in Stream B) |
| 128 | 3. **Stream C** (Agent/UX) — merge after B-agents. |
| 129 | 4. **Stream D** (App-server) — merge after B. |
| 130 | 5. **Stream E** (Web UI) — merge after D. |
| 131 | 6. **Stream F** (VS Code) — merge after D (and E, if components are shared). |
| 132 | |
| 133 | For each merge: |
| 134 | ```bash |
| 135 | cd /Volumes/VIXinSSD/deepseek-tui # main worktree |
| 136 | git merge feat/v0.8.8-<stream> --no-ff -m "merge(v0.8.8): <stream> workstream" |
| 137 | ``` |
| 138 | |
| 139 | Run verification gates after every merge: |
| 140 | ```bash |
| 141 | cargo check --workspace --all-features |
| 142 | cargo clippy --workspace --all-targets --all-features |
| 143 | cargo test --workspace --all-features |
| 144 | ``` |
| 145 | |
| 146 | If a merge fails or gates break, do NOT proceed to the next stream. Diagnose, report the conflict, and either fix it yourself or spawn a remediation sub-agent. |
| 147 | |
| 148 | ## Conflict prevention |
| 149 | |
| 150 | These areas have high collision risk across streams: |
| 151 | |
| 152 | | Area | Streams touching it | Mitigation | |
| 153 | |---|---|---| |
| 154 | | `crates/tui/src/tools/subagent/` | A (#421, #409), B (#404, #405, #425, #426), C (#407) | Assign subagent tooling changes to B-agents ONLY. Streams A and C depend on B-agents completing first. | |
| 155 | | `crates/tui/src/tui/sidebar.rs` | A (#409), C (#403, #407, #408) | Assign ALL sidebar changes to Stream C. Stream A skips #403, #409. | |
| 156 | | `crates/app-server/` | D (all), E (#471, #472, #475), F (#462, #463) | Stream D completes first. Streams E and F build on D's stable API. | |
| 157 | | `crates/execpolicy/` | B (#410–#418) | All execpolicy changes in B-permissions only. | |
| 158 | | `crates/config/` | B (#436, #437, #454), D (#475) | All config changes in B-config first. Stream D reads the new config shape. | |
| 159 | | `Cargo.toml` / workspace members | E (new `apps/web/` crate), F (new `extensions/vscode/`), B (new crates) | New crate additions handled in their respective streams. Merge order prevents Cargo.toml conflicts — add new members in dependency order. | |
| 160 | |
| 161 | The coordinator is responsible for detecting file-level overlaps when reading issue bodies and adjusting assignments so no two workstreams independently modify the same file. |
| 162 | |
| 163 | ## Verification gates |
| 164 | |
| 165 | Every sub-agent must pass these before reporting completion: |
| 166 | |
| 167 | ``` |
| 168 | cargo check --workspace --all-features |
| 169 | cargo clippy --workspace --all-targets --all-features -- -D warnings |
| 170 | cargo test --workspace --all-features |
| 171 | cargo fmt --all -- --check |
| 172 | ``` |
| 173 | |
| 174 | After every merge, the coordinator runs the same gates on the main worktree. Use `task_gate_run` to record structured evidence. |
| 175 | |
| 176 | For the Web UI stream (E), also verify: |
| 177 | ``` |
| 178 | cd apps/web && npm run build |
| 179 | ``` |
| 180 | |
| 181 | For the VS Code stream (F), also verify: |
| 182 | ``` |
| 183 | cd extensions/vscode && npm run compile |
| 184 | ``` |
| 185 | |
| 186 | ## Progress tracking |
| 187 | |
| 188 | Use `update_plan` with phases matching the integration order: |
| 189 | |
| 190 | 1. Phase 1: Bootstrap (create worktrees, read all issues) — `in_progress` |
| 191 | 2. Phase 2: Stream A (TUI bugfixes) — `pending` |
| 192 | 3. Phase 3: Stream B (OPENCODE infra) — `pending` |
| 193 | 4. Phase 4: Stream C (Agent/UX) — `pending` |
| 194 | 5. Phase 5: Stream D (App-server) — `pending` |
| 195 | 6. Phase 6: Stream E (Web UI) — `pending` |
| 196 | 7. Phase 7: Stream F (VS Code) — `pending` |
| 197 | 8. Phase 8: Integration and final gates — `pending` |
| 198 | |
| 199 | Use `checklist_write` under each phase with individual sub-agent tasks. Update status as sub-agents complete. |
| 200 | |
| 201 | ## Safety rails |
| 202 | |
| 203 | - **Never force-push** to the main branch or any shared worktree branch. |
| 204 | - **Never delete worktrees** until the stream is merged and verified. |
| 205 | - **If a sub-agent fails**, read its result with `agent_result`, diagnose, and either respawn with corrected instructions or fix the issue in the worktree directly. |
| 206 | - **If two streams conflict on merge**, create a remediation worktree (`worktrees/merge-fix-<name>`), spawn a sub-agent to resolve the conflict, and retry the merge. |
| 207 | - **Do not close issues** until the merge containing their fix lands on the main branch AND verification gates pass. |
| 208 | - **Commit often** within each worktree. Squash only at the end if desired. |
| 209 | |
| 210 | ## Deferred / excluded from 0.8.8 |
| 211 | |
| 212 | These issues are explicitly NOT implemented in 0.8.8: |
| 213 | - #479 (Share-link mode) — design doc only, deferred. |
| 214 | |
| 215 | Read each umbrella issue (#480, #481) carefully — they may scope some child issues as "Phase 2" or "deferred." Only implement what's accepted for 0.8.8. |
| 216 | |
| 217 | ## Start here |
| 218 | |
| 219 | 1. Run `gh issue list --label v0.8.8 --state open --limit 100 --json number,title,body,labels` and read every body. |
| 220 | 2. Run `gh issue view 482` to get the v0.8.6 carry-forward list, then read those issue bodies. |
| 221 | 3. Create `update_plan` with the 8 phases above. |
| 222 | 4. Create all git worktrees. |
| 223 | 5. Begin spawning sub-agents for Phase 2 (Phase 1 is reading issues, which you're doing now). |
| 224 |