Skip to content

Show How this was built above the leaderboard - #26

Merged
arilivigni merged 2 commits into
mainfrom
arilivigni-leaderboard-build-section-first
Oct 28, 2026
Merged

arilivigni merged 2 commits into
mainfrom
arilivigni-leaderboard-build-section-first

Conversation

@arilivigni

@arilivigni arilivigni commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

What

Moves the "How this was built" section on the public leaderboard page above the list of leaders. It now sits directly under the title, and under the attendee's own "your drink" banner when they arrive from their personal QR on a phone.

  • leaderboard-service/public/index.html: section moved ahead of the status line and table, markup unchanged (the QR <img> is byte-for-byte the same, so the existing QR/artwork tests still apply).
  • leaderboard-service/public/board.css: the section's divider moves from its top edge to its bottom edge, and the section is compacted (ee3150c) so more leaders stay above the fold: tighter heading/paragraph/divider spacing, and the QR shrinks to 160–184px with 16px padding, which still leaves at least four modules of quiet zone.
  • tests/about-the-build.test.mjs: new test pins the section before the board table.

Verified

  • npm test: 329/329 pass. npm run check passes.
  • Rendered against a throwaway local service with 14 seeded drinks at 1920x1080, 600x900 and 390x844 (with and without a personal ?handle&ref link): no QR overlap, divider below the QR, no horizontal overflow, "your drink" still directly under the title on a phone.

Heads-up

On a 1080p monitor, the first leader row was at y=434 with the section below the board. With the section on top it is at y=790 after compaction, versus y=870 before. Fully visible leaders above the fold: 5 originally, 1 uncompacted, 4 compact (measured with a stubbed board of 10 single-line names).

The README's leaderboard-browser-canvas.png still shows the old layout (it also predates the current "on the board" wording), so it is not regenerated here.

Deploy

Code-only redeploy of the leaderboard service (runbook "Leaderboard service operations", step 3), done 2026-10-28 at 15:13 UTC. No keys or infrastructure changed. The live package is byte-identical to the build of c1ee742 (SHA-256 dfd1e2ea…). It carries the #23/#24 rubric, which clears the score_mismatch failures from booths on current main, and the moved section is live. The compact styling in ee3150c is not deployed yet; it needs another code-only redeploy.

Side effect: the restart replaced the live board. The new container crashed on its first start (ENOENT renaming the board file) while the old one was still running. After Azure's retry the service created a new, empty board that is closed to drinks (/api/board reports rebuilding: true). The previous board's 2 drinks are no longer in the data directory. Booths get a retryable board_rebuilding until a staff machine runs the runbook's "Public board lost" recovery: --takedowns on every booth, then --open, then --drinks.

Move the section from the bottom of the public page to just under the title (and under the attendee's own drink on a phone), before the list of leaders. Its content, QR and responsive behaviour are unchanged; the divider and spacing move to its bottom edge. A test pins the order so it cannot drift back below the table.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 28, 2026 15:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The expanded section pushes most leaderboard standings below the fold on the booth display, requiring scrolling and potentially hiding all leaders on shorter viewports.

1 open issue
What changed in this PR

Moves “How this was built” above the public leaderboard rankings, while keeping the attendee’s personal drink banner ahead of it.

Changes:

  • Repositions the existing section without changing its content or QR markup.
  • Moves the section’s divider and spacing to its bottom edge.
  • Adds a regression test for section ordering.
File Description
tests/​about-the-build.test.mjs Checks that the build section precedes the leaderboard table.
leaderboard-service/​public/​index.html Moves the section before the status line and rankings.
leaderboard-service/​public/​board.css Adjusts the divider, spacing, and placement comment.

Review effort: Balanced

Comment thread leaderboard-service/public/index.html Resolved
Co-authored-by: arilivigni <4140343+arilivigni@users.noreply.github.com>
@arilivigni
arilivigni requested a balanced review from Copilot October 28, 2026 15:33
@arilivigni
arilivigni merged commit cbd371a into main Oct 28, 2026
1 check passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

On short viewports, the personal rank can remain visible while its stale-data warning is off-screen.

No open issues 🎉

1 previously missed issue

In code that hasn't changed since last review

Medium severity Surface stale state alongside personal rank banner

leaderboard-service/​public/​index.html:22

Moving this section between #you and #status lets a short viewport show the personal rank while its offline warning is off-screen. After 30 seconds without a successful refresh, board.js keeps the last rank in the banner and marks only the status below this section as stale. Surface the stale state alongside the personal banner or in the header, while keeping the build section above the table.

1 resolved since last review

Review effort: Balanced

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants