148fcac7afeb40cf59e3ddacbb4849045092c9ed
The gatekeeper's GATE VIEW is the canonical "who holds which position" surface, but it reused _table_positions.html, which paints the role-assigned fade-out class (opacity:0 / scale .5) server-side from pos.role_assigned (slot <= assigned_count). So as gamers got seated during Role Select, the gate-view circles vanished one-by-one in lockstep with the table-hex — and by the time SCAN SIGS appeared (all six roles assigned) the gate showed an empty hex. The disappear-as- seated animation is meant as a TABLE-HEX-only cue. Fix: _table_positions.html now suppresses role-assigned when its new persist_circles flag is set; room_gate.html includes the partial with persist_circles=True. room.html passes no flag (→ falsy), so the table-hex keeps the fade animation untouched. No JS reads role-assigned in the gate view (role-select.js isn't loaded there), so the server-side guard is sufficient. TDD: PositionTooltipRenderTest.test_gate_view_circles_never_fade_when_roles_assigned — assigns all six roles, asserts the gate view keeps six .gate-slot circles with NO role-assigned. Verified live via Claudezilla on a SIG_SELECT setup_sig_session room. 47 render/gate ITs green (RoleSelectRenderingTest still asserts the table-hex DOES fade). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Description
No description provided
Languages
Python
45.5%
JavaScript
36.1%
HTML
9.6%
SCSS
8.6%
Jinja
0.1%