[object Object]

← back to CelebritySignatures

game: harden — hide #prep before showRound() (Cody gate, TK-10192)

57895fb5a332ced6817b607cd46d60710ba403db · 2026-08-08 10:47:49 -0700 · Steve Abrams

Cody's adversarial backstop flagged that hiding #prep AFTER showRound() strands a visible prep line over an empty #play panel if showRound() ever throws. buildRounds already succeeded by that point, so hiding prep first is safe with zero happy-path change. Re-verified: whose game still play=true, prep hidden, 4 choices, 0 dialogs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 57895fb5a332ced6817b607cd46d60710ba403db
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sat Aug 8 10:47:49 2026 -0700

    game: harden — hide #prep before showRound() (Cody gate, TK-10192)
    
    Cody's adversarial backstop flagged that hiding #prep AFTER showRound() strands a visible prep line over an empty #play panel if showRound() ever throws. buildRounds already succeeded by that point, so hiding prep first is safe with zero happy-path change. Re-verified: whose game still play=true, prep hidden, 4 choices, 0 dialogs.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 public/game.html | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/public/game.html b/public/game.html
index 9e308da..aa7e81c 100644
--- a/public/game.html
+++ b/public/game.html
@@ -363,8 +363,10 @@ $('#goBtn').onclick = async () => {
     const rounds = await buildRounds(t => { $('#prep').className = 'prep'; $('#prep').textContent = t; });
     game = { rounds, i:0, score:0, streak:0, misses:[] };
     $('#setup').hidden = true; $('#results').hidden = true; $('#play').hidden = false;
-    showRound();
+    // Hide prep BEFORE showRound() — buildRounds already succeeded, so if showRound ever throws we don't
+    // strand a visible prep line over an empty #play panel (Cody gate, TK-10192).
     $('#prep').hidden = true; $('#prep').textContent = 'Hanging the gallery…';
+    showRound();
   } catch(e){
     // Inline, non-blocking error (was a native alert() that also modally froze the page and, in the
     // 5-pass debug, jammed every subsequent game's Begin — TK-10192). Keep #prep visible with the reason.

← dc1565d game: fix TK-10192 BUG 1 — build failure no longer fires a m  ·  back to CelebritySignatures  ·  screenrecord: track murals debug + verify harnesses (TK-1019 43d50a8 →