Commit 9a3774e
scaffold: fleet-dispatch-fixes — 6 findings from marketing-waves telemetry (#189)
* chore(fleet): scaffold fleet-dispatch-fixes-2026-05-18 plan + OpenSpec change
Captures 6 dispatch-path defects surfaced by real telemetry from the
2026-05-18 marketing-content-waves fleet against recodee:
F1 — stale dead panes lingering silently in overview chrome
F2 — cap-probe cache outliving quota recovery (5/6 healthy → 8/8 on
fresh probe 5min later)
F3 — wake-prompt window blank on bringup; workers idle at default Codex
placeholders ("Implement {feature}", "Find and fix a bug in @filename")
F4 — plan-watcher re-validates without --allow-waves, silently falls back
to next-priority plan when our plan has depends_on (observed:
trading-edge-foundations dispatched while our priority plan skipped)
F5 — force-claim "not in a mode" on non-idle Codex panes, drops dispatch
with no retry/backoff
F6 — Codex auto-submit not firing on send-keys: context drops (text
arrived) but no Colony claim recorded — likely needs different
terminator key sequence
Plan workspace at openspec/plans/fleet-dispatch-fixes-2026-05-18/ has 6
parallel-ready subtasks (disjoint file_scope, no depends_on so plan-
watcher accepts without --allow-waves until F4 lands). Each subtask
ships with a focused test under scripts/codex-fleet/test/.
This PR is the scaffold; implementation comes from the fleet itself
(separate per-subtask PRs from the fleet, then one squashed integration
PR per the OpenSpec change tasks.md verification gates).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat(fleet): seed codex-first-launch-supervisor + F7 plan subtask
Live FLEET_ID=3 bringup surfaced bug #7: per-account CODEX_HOMEs under
/tmp/codex-fleet/<acct> trigger Codex CLI first-launch prompts
("Do you trust …", "External agent config detected", "Press enter to
continue") that block worker bootstrap before the input box exists.
All 8 workers stalled; operator had to click each pane.
This commit:
- Seeds scripts/codex-fleet/codex-first-launch-supervisor.sh that
polls each worker pane and auto-answers the three prompts. Verified
working live (6/8 panes drained automatically; remaining 2 need
slight backoff tuning).
- Expands plan subtask sub-2 (F3) to wire BOTH auto-wake and
auto-bypass into full-bringup.sh tail, gated by
CODEX_FLEET_AUTO_WAKE / CODEX_FLEET_AUTO_BYPASS env (default 1).
Order: auto-bypass runs before auto-wake.
- Narrows sub-6 (F7) to ship a smoke test that asserts no panes
remain stuck on first-launch prompts within 30s of DONE.
- Adds matching acceptance criterion + proposal narrative for F7.
The two-pane operator layout (one kitty with the agents, one empty
operator shell) is now the default — see PR description.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* tune: bump first-launch supervisor INTERVAL default to 2.5s
Live run showed 6/8 panes drained at 1.5s; remaining 2 needed
~9-15s total but only got 7.5s of attempts (5 rounds × 1.5s).
2.5s × 5 = 12.5s window catches slow Codex bootstraps without
making fast cases noticeably slower.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix: supervisor matches only live screen, not scrollback
Workers' Codex CLI echoes the prior menu text into tool-call history
once they reach the worker loop. The supervisor's grep against the
full scrollback (-S -100) saw the menu in history and falsely flagged
a fully-drained pane as still stuck.
Switching to bare `capture-pane -p` (live screen only) eliminates
the false positive while still catching live menus.
Also add `1` + Enter combo for the External-agent menu — some Codex
builds advance on bare digit, others need Enter to confirm; sending
both is harmless on already-advanced panes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: NagyVikt <nagy.viktordp@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 8b65a75 commit 9a3774e
15 files changed
Lines changed: 423 additions & 0 deletions
File tree
- openspec
- changes/agent-claude-cfui-dispatch-improvements-zzz-2026-05-1-2026-05-18-14-03
- specs/cfui-dispatch-improvements-zzz-2026-05-18
- plans/fleet-dispatch-fixes-2026-05-18
- scripts/codex-fleet
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
Lines changed: 30 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
Lines changed: 9 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
Lines changed: 43 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
Lines changed: 13 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
Lines changed: 18 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
Lines changed: 13 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
Lines changed: 114 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
0 commit comments