Overnight swarm report: 2026-10-16 (1.1 freeze eve)
Overnight swarm report: 2026-10-16 → 10-17
Section titled “Overnight swarm report: 2026-10-16 → 10-17”Run: 23:05 → ~07:10 BST, on AC the whole night, no sleep gaps. Runbook:
docs/overnight-swarm-runbook-2026-10-16.md. Every merge went through a bh-reviewer MERGE verdict
plus a full scripts/gate.sh pass on the merged tree (the push guard enforces the gate stamp).
No deploys, no remote-config publish, no App Store / TestFlight actions, no BUILD bumps, no device
installs, no balance changes, no determinism re-pins, no shader edits.
Decided overnight (your veto list)
Section titled “Decided overnight (your veto list)”You delegated polish/copy calls. Each is shipped on main; say the word and it reverts.
- ENEMIES → BESTIARY on the start menu (and every “Enemies codex” mention).
- “Quit to menu” wording in both pause looks (was “Quit”/“Main menu” mix).
- Death recap with no attribution says “cause not recorded” (it used to imply a flawless run).
- Story finale line reads “(Ascent complete. Thank you for playing.)” (was “demo complete”).
- Low-HP pulse eases in from 50% HP and reaches full swing at 30% (tunables
LOW_PULSE_START_FRAC0.5,LOW_PULSE_FULL_FRAC0.3) instead of snapping on. - Rift choice backdrop
DIM_ALPHA0.97: near-opaque so enemy sprites stop drawing over card text. - Elite health tags: only drawn for elites that are on screen. Off-screen elites used to get tags pinned to the screen edge with no elite under them (read as orphan UI). If you wanted those as off-screen indicators, that is the thing to veto.
- Shop cards: one card size per TAB (a tab with fewer cards gets larger text), so card size can differ between tabs; never two sizes on screen at once.
- Story/tutorial dialogue on iPhone/iPad sits at the top, narrowed to stop left of the pause/feedback buttons. Longest real line wraps to 3 lines and ends ~25 units above the ship (was 28 before; shorter lines now end higher than before).
- Feedback panel: sentence case (Bug / Idea / Other, matching Settings), chips 3 + 2 centred, every control ≥44pt on iPhone. Panel width differs between Bug and Idea, so its edges jump when switching kind (nit, left as is). Chips were NOT restyled into the GlassPanel row family.
- Settings hint brighter (
text.secondary, ≥15px on TV); still reads blue-grey on TV. - Prism Lance (evolved Railgun) card: “2 thinner lances in a narrow fan · ×1.6 damage ·
keeps full pierce” (verified against
weapon_railgun.gdevolve; the old text said “side by side”). - Drone Bay: “Save loadout” / “▶ Deploy” (was SAVE LOADOUT).
- Store What’s New (all three platforms) gained one “Polish everywhere” bullet plus one platform bullet each (iPhone notch/touch targets; tvOS controller-disconnect pause; Mac Fullscreen/Windowed + controller pause). LAN lobby fix NOT claimed (Dev-only).
Merged to main (oldest first)
Section titled “Merged to main (oldest first)”| Train | Merge | What |
|---|---|---|
| 1 | b793ad4b, ce29018e | Bestiary copy (no dead powerup claim, Summoner/Warp naming); results screen shows real enemy names + a “next goal” line (1.1 item) |
| 2 | 8f7d311f, c012d213 | Mac Fullscreen/Windowed setting; controller-disconnect auto-pause + reconnect prompt |
| 3 | d1da3e0c, 56b8ad09, b027e098 | Big level-up cards (1.1 item); ATV LAN lobby Siri Remote fix; feel-probe tool (objective “feel” metrics) |
| 4 | 4fcdf5ee | Damage attribution on the death screen |
| – | bc0d1dcf | tvOS Menu-on-root investigation (docs verdict, device check is yours) |
| 5 | 1d1a85a6 | iPhone start-menu footer + title inside the safe area (1.1 item) |
| 6 | 3452c2c0 | UI sounds on results/Drone Bay/feedback; Backspace closes shop + Drone Bay; honest recap line |
| 7 | 1f2c4b59 | HP low-pulse ramp; equip prompt follows the input device (no “PRESS A” on touch/keyboard) |
| 8 | b6fb9c58 | BESTIARY label; “Quit to menu” |
| 9 | 21a12398 | Copy 2: Scatter/Beam story lines (auto-aim truth), warp wording, rift hints, Hull wording |
| 10 | ff5067c4 | Feedback panel ticks on every input path; shared MenuNav.text_field_focused |
| 11 | 153f6bfe | Ship screen closes on Backspace; HUD HP number font |
| 12 | e8e82608 | Bestiary scrolls + touch browse + CLOSE; truthful close hints; Aim readout; TV-safe edge indicators |
| 13 | be2c71d0 | Rift choice hides HUD banner/autopilot tag; ui_capture fixes |
| 14 | 45818de4 | Level-up titles aligned, RECOMMENDED tab; stats rung numbers never collide or drop |
| 15 | 63cc44e3 | Death screen layout: full names, aligned bars, 15px TV text, KILLED BY one line |
| 16 | 3a74aa45 | Elite tags on-screen only + safe-area clamp; tutorial objective card backing plate |
| 17 | 2ac45392 | Shop cards: per-tab sizing, UNLOCK tag only when unowned, clearer pips |
| 18 | 265c85e6 | Feedback panel / Drone Bay / Settings casing, contrast, layout |
| 19 | 20902d3c | Story/tutorial dialogue fits its text, clears HUD buttons, mirrored right speakers |
| 20 | e9f4b81f + c54add74 | Prism Lance copy; killer-name fit test covers “shot” variants; co-op HP labels overlap fixed |
| 21 | a910ba7b | Feedback panel ≥44pt touch targets on iPhone |
| 22 | 093d254f | Store copy 1.1c: What’s New ×3 refreshed against all of the above (iOS 3884 / tvOS 3959 / Mac 3941 chars) |
| 23 | cbd00c06 | improvement-batch1 salvage: Bestiary “n / m DISCOVERED” counter, truthful codex/story copy (Centurion, Summoner), boss cues + reactions survive busy frames, element colours from sim data (not in the store What’s New: minor) |
Every merge added its line to the unbuilt build: null entry in control/src/whats_new.js.
Not merged / still open
Section titled “Not merged / still open”- tvOS Menu on root → Home: investigated (bc0d1dcf), needs your ATV check before anything ships.
- Device checks named in RELEASE-1.1 for merged items: controller disconnect (ATV, switch the pad off mid-run), Mac window mode, LAN lobby (ATV, Dev-only screen), big level-up card sizes.
- Device-test branches untouched (yours, on BUILD 332
rc-1.1-combined): app-clip, beta-skin, sfx-synth-all, alpha-fix-final, boot-loading-cover, fix-online-lobby-atv. Their store-copy lines stay in each What’s New file’s# PENDINGblock. - Code-picker UI sounds: deferred,
ui/online_lobby.gdis owned by fix-online-lobby-atv. - HUD HP number is dead code in store builds (never shown); left in place.
- Footer test lacks an iPhone SE profile (co-op SE overflow only matters for 1.2).
- Leftover review nits (no action taken): short Pilot shop cards on TV have empty space above their tags; iPad UNLOCK tag sits ~10px from a 3-digit price (a 4-digit price would collide, none exists); feedback panel touch height computed on open only (fine while landscape-locked).
What still blocks the 1.1 submission
Section titled “What still blocks the 1.1 submission”- Your BUILD 332 device verdicts → merge (or drop) each device-test branch.
- A Dev install of current main on iPhone (A17, baked) / iPad / ATV to eyeball tonight’s UI polish: none of it touched shaders, but it is a lot of UI.
- BUILD bump + store pre-flight per
docs/reference/builds-and-releases.md. - Paste What’s New from
marketing/appstore/whats_new_1.1_{ios,tvos,macos}.txt(delete#lines and the PENDING block; re-count if branches merge). docs/RELEASE-1.1.mdis ticked for everything merged tonight (salvage and caption 3 ticked in this commit).
Measured state of main
Section titled “Measured state of main”origin/main cbd00c06 (train 23, the last merge), full scripts/gate.sh PASS on that exact tree: test-count guard 595/595 scripts, 6738 passing, 0 failing, 0 risky/pending, determinism baselines unchanged, boot smoke + device-boot smoke OK, tutorial lesson trace ok. Count went 590 → 595 scripts overnight (new fit/regression tests).
Process notes
Section titled “Process notes”- Every branch got a bh-reviewer verdict; most needed 2-3 rounds (DO NOT MERGE → fix → MERGE). I overrode one MERGE myself (results layout had dropped your “(base)” suffix from d67ae3aa).
- One worker edited a shader; reverted before review (StyleBoxFlat plate instead).
- A shared
GUT_LOGbetween concurrent gates caused false failures early on; every gate got its own log after that. - Train 16’s first gate failed on a What’s New item in the wrong shape (string, not
{text, where}); the push guard refused the ungated tree as designed. - W15 (salvage) stalled once with unpushed commits; I pushed them and sent the branch for review.