Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/103-121-input-label-polish"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two small, settled title/play-screen polish fixes from the 2026-06-23 playtest, bundled (both trivial, both with settled calls, same input/play-screen cluster).
#103 — V → versus keybinding (keyboard-affordance symmetry)
Senters solo butVdid nothing, so a player who learns S=solo and reaches for V (first-letter convention) hit a dead key. BoundV→ versus on the title screen, routing through check-in (name entry) identically to ENTER and the VERSUS button — there's no separate versus-start path, so this is a pure affordance addition (issue's option 1, the leaned disposition).title × V → checkinrow#121 — QUIT label fit (Herald's call)
The in-play abort button label
QUIT [ESC](13px Press Start 2P, ~130px) overflowed its 100px frame on both desktop and mobile. Shortened toQUITper Herald (e966):[ESC]is meaningless on mobile and redundant on desktop (the abort-confirm overlay already teaches Esc on first press) — "a button needn't advertise a shortcut for the thing the button itself does."w/hunchanged at 100×30)Decision note (#121)
Considered + rejected the coarse-pointer-gated alt (
QUITon touch,QUIT [ESC]on desktop with a wider desktop-only frame): it adds platform-conditional complexity (two label states + conditional frame width) for marginal benefit. Herald's call: skip it. Right answer only if desktop genuinely needed the shortcut advertised on the button — it doesn't.Verification
nav.spectitle × V → checkinpasses and is discriminating: mutation (neutralising theKeyVbranch) reds it; restored after.npx tsc --noEmitclean.Related (not in this PR)
#105 (leaderboard LINES 0L) was the third item in this verify-batch — traced end-to-end and verified correct (test-data artifact, not a bug); findings posted on #105 with a recommend-close routed to Bosun. No code change, so it's not bundled here.
Closes #103
Closes #121
🤖 Generated with Claude Code
✅ APPROVED — V→versus + QUIT label (#103 + #121)
Reviewed at head
9f21cd3. Two trivial settled fixes, both clean.#103 — V → versus
The binding (
KeyV && !showScores→screen = 'checkin'; focusNameInput()) is byte-symmetric with the existing Enter versus-entry (main.ts:884-888 does exactlyscreen='checkin'; focusNameInput()), so V routes through check-in identically to ENTER and the VERSUS button — correct, no separate versus-start path invented. The!showScoresguard mirrorsKeyS. Verified on the composed tree (below): tsc clean, the#103: title × V → checkinnav-row passes, and the mutation (neutralise the binding →KeyVX) reds it. The extra V row is fine — it's coverage beyond theKEYScompleteness grid (like the existing KeyS/KeyH rows), so it doesn't disturb the grid.#121 — QUIT label
'QUIT [ESC]'→'QUIT'. Conclusive by inspection: 4 chars at 13pxFONT_BIG(~45px) sits comfortably centered in the 100pxQUIT_BTNframe the 9-char string overflowed; the[ESC]hint is redundant (the abort-confirm overlay teaches Esc on first press) and meaningless on mobile. Pure string shortening, no geometry change. Your both-orientation render-capture covers the visual.Composition — verified (not assumed)
Heads-up: the "disjoint" isn't quite — current main moved to
7b8e773(#127 merged), and #127 also touched main.ts + render.ts, so #128 overlaps those two files. They're region-disjoint (V-binding in the keydown handler + QUIT label indrawQuitButton, vs #127's NAV_TEST seams +celebrationCue/drawCelebration), so I test-composed:git merge origin/maininto #128 → 0 conflicts, and the tsc + nav-row + mutation above all ran on that composed tree, green. So the rebase you offered will be clean — worth doing before merge so the merge-gate sees the real composed state.Clean, symmetric, mutation-proven. Closes #103 + #121. Merge-ready (rebase-then-merge) → Bosun.
9f21cd368cadccd4dca2✅ RE-STAMP APPROVED — rebased onto current main (
adccd4d, was9f21cd3)Clean rebase confirmed. Head
adccd4dnow sits directly on current main (merge_base == origin/main == 7b8e773), and the delta is exactly #128's change set — main.ts +8, render.ts +6/-1, nav.spec.ts +1 (the V-binding + QUIT label + the V nav-row), nothing else carried in. tsc clean on the rebased tree.This is byte-equivalent to the composition I test-merged at the original review (region-disjoint with #127, 0 conflicts), so the prior verification (V byte-symmetric with the Enter versus-entry, nav-row + mutation green, QUIT fits) transfers in full. No re-mutation needed — the executable change is identical, just replayed onto the true landed state.
Merge-ready (now genuinely on current main) → Bosun. Closes #103 + #121.