Overnight swarm runbook: 2026-10-14 (1.1 submission candidate)
Overnight swarm runbook: 2026-10-14
Section titled “Overnight swarm runbook: 2026-10-14”Mission (Chris, 2026-10-14 22:05, in chat): “work through all the rest on a loop for the next 4 hours on a 10 min tick, if we are looking good in the morning I will submit this version tomorrow.” “The rest” = the 1.1 freeze picks NOT already on Droid’s branches. Horizon 22:10 → ~02:10 BST, tick 10 min, handoff window 02:10-05:40.
Work queue = docs/RELEASE-1.1.md (§3a QOL, §5 store listing) + the QOL audit evidence in
docs/research/2026-10-14-qol-and-marketing-audit-1.1.md. Claims go in THIS runbook’s Progress log
(not in RELEASE-1.1.md: Droid is working that list concurrently and ticks its own items).
Power at dispatch: battery 40%, discharging (asked Chris to plug in). Amphetamine running. If
BATTERY_CRITICAL fires, wind down early; report the real power state honestly.
Already owned by Droid (do NOT touch these branches’ scopes)
Section titled “Already owned by Droid (do NOT touch these branches’ scopes)”Local branches, one commit each, each in .claude/worktrees/<name>:
qol-skip-tutorial(f1c7963a): Skip Tutorial + short lesson 1.qol-shop-levels(ef38c053): shop discovery on death/pause + level on level-up cards.qol-settings(6138edb2): player Settings panel (volume, comfort, drone glow), start + pause menus.store-copy-1.1(ae24da28): What’s New, description, promo, keywords.
Read-only review of these is allowed; never commit to, rebase, or merge them.
Queue (this run)
Section titled “Queue (this run)”| W | Item | Branch / output | Kind |
|---|---|---|---|
| W1 | Tutorial-window crashes (4/9 real first plays crashed; Mac at 16 ms, iPad Air M2 at 32.6 s on 255): does the 1.1 candidate still do it? Root cause first | crash-first-play |
investigate → fix if cheap |
| W2 | Ratings prompt (iOS + Mac; tvOS has none): native requestReview on a positive moment, never on death | ratings-prompt |
feature, if the existing native bridge allows |
| W3 | Early-run difficulty (median death ~68 s) + Orbit/Nova near-dead (0.1% / ~1.5% damage share) | balance-1.1-proposals (docs + unpublished patch JSON) |
DECISION (Chris), measured |
| R1 | Review replay-picks (ours) → orchestrator merges if MERGE |
bh-reviewer | review |
| R2 | Read-only review of Droid’s 4 branches, verdicts reported to Chris | bh-reviewer | review |
| W4 | Site “iPhone/iPad in review” text (~/Claude/bullet-heaven-site) |
branch there, NO deploy | prep |
Standing orders (every worker)
Section titled “Standing orders (every worker)”- Read this runbook +
docs/RELEASE-1.1.md+ CLAUDE.md fully before acting. - Work ONLY in your own worktree:
git worktree add .claude/worktrees/<branch> -b <branch> origin/main. Never edit the main checkout except the claim/completion line in this runbook’s Progress log (stage it by exact pathspec,git pull --rebasefirst, push). - Code changes run the full
bh-dev-chunkritual;scripts/check-test-count.shwithGUT_LOG=$TMPDIR/gut-<branch>.log(worktrees run gates concurrently). Shader edits: compile-check windowed under mobile AND gl_compatibility. - Do not end your turn waiting on a background job or Monitor: poll inside Bash with bounded loops.
- On
.git/index.lock: wait 5 s and retry, never delete. - “Not cheap” is a valid outcome: write the analysis + the ready path and stop.
- Commit trailer:
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>+Claude-Session: https://claude.ai/code/session_01F213yiQCh3vLcmBmCPPVFt. Report back in under 15 lines.
HARD DON’Ts overnight
Section titled “HARD DON’Ts overnight”- NO deploys of anything (site, telemetry Worker, control Worker, web demo), NO remote-config publish, NO App Store / TestFlight actions, NO BUILD bumps.
- NO device installs (devicectl): Chris’s devices are shared and an install can wipe the Dev save.
- NO merges to main by workers. The orchestrator alone merges, only a bh-reviewer MERGE verdict, via
bh-merge-reviewed-branch, and never Droid’s branches. - NO balance values changed on main: balance is Chris’s call, delivered as DECISION entries with numbers and a ready patch.
- NO determinism re-pins; a red determinism test means investigate.
- NO touching
platform/tvossymlinks.
Progress log
Section titled “Progress log”(One line per claim/completion, oldest first.)
- W1 claimed: tutorial-window crashes (branch crash-first-play), 22:09
- W2 claimed: ratings prompt (branch ratings-prompt), 22:10
- W3 claimed: early difficulty + Orbit/Nova proposals (branch balance-1.1-proposals), 22:10
- W4 claimed: replay-picks review fixes, 22:26
- W2 DONE: ratings prompt (system SKStoreReviewController via DcStoreReview in the DcHaptics GDExtension; iOS live, Mac no-op until addon ships in the Mac preset; gate red only on docs-site wiring of this runbook), branch ratings-prompt 385915bc
- W4 DONE: replay-picks review fixes (take-over guard, dimension tests + divergence, driver-vs-main test, RESUME_IFRAMES -> Sim_Const) + tools/replay_viewer; gate PASS 6183/6183; branch pushed, needs re-review, 9460f77a
- W5 claimed: ratings-prompt review fixes, 23:09
- W1 DONE: 4/9 claim wrong (1 real unexplained iPad 255 death, no telemetry mechanism; Mac 258 = smoke-test kill); found + fixed CoreHaptics abort new in 1.1 (device check needed) + MetricKit rescan, branch crash-first-play 8a2dc7ad
- W6 DONE: site in-review copy fix on bullet-heaven-site branch ios-live-copy 9bde032 (not deployed). In-review copy was already fixed + live via 3a51dfb; branch removes the remaining false Mac claims (press kit Platforms row, JSON-LD macOS)
- W5 DONE: ratings-prompt review fixes (console review_prompt_test, saved review_pending, menu-only ask, TF-misread comment); gate PASS 6236/6236 on merge with main; branch pushed, needs re-review, 88867571
- W7 claimed: replay-picks x main test failure, 23:40
- W8 claimed: ratings-prompt round-2 LOWs, 23:54
- W3 DONE: balance DECISION proposals, 4 unpublished patches (median-bot survival 59 s -> A1 86 / A1c 108 / A2 132 s; B1 Orbit share 0.1% -> 12%, Nova 4.8% -> 12%) + tools/balance_probe; gate fails only on the runbook docs-site wiring, branch balance-1.1-proposals 0eb0c01a
- W8 DONE: ratings-prompt round-2 LOWs (ask only after a banked run, 1 s deferred + cancelled off-menu, doc wording) + merged origin/main; gate PASS 6252/6252; branch pushed, FF-ready onto main, b851ff27
- W7 DONE: replay-picks x main failure was a pre-existing seed flake (randi() run seed; 2/40 seeds miss the 4000-tick level-up budget by <1 XP, identical before/after main’s changes), test now pins the seed + 8000-tick budget; merged origin/main in; gate PASS 6236/6236; branch pushed, 18050b16
- R7 DONE: read-only review of Droid qol-settings 50c1df5f conflict resolution: MERGE, gate 6246/6246 (Droid then merged it itself, 33cd6b8e)
- Orchestrator: merged ratings-prompt a67b0d36, replay-picks 133d4d2a + 576e7cd8 (re-gated after qol-settings landed, 6292/6292); queue empty, handoff 00:45 -> docs/overnight-swarm-report-2026-10-14.md
Handoff
Section titled “Handoff”Write docs/overnight-swarm-report-2026-10-14.md: items done with SHAs; branches ready to merge vs
merged; reviewer verdicts on Droid’s branches; DECISION (Chris) entries; what still blocks a
1.1 submission tomorrow (merges, BUILD bump, store pre-flight per
docs/reference/builds-and-releases.md); measured state of main (count guard + boot smoke); the
real power/sleep state. Commit + push, stop the Monitor, summarize with decisions first.