99 Club Studio v1.21.2 QA
Date: 10 September 2026
Issue reproduced
The v1.21.1 screenshot showed the workspace switcher as native browser buttons and retained the old left-heavy Custom grid. This means the new custom-workspace.css deployment asset was not being applied. Without those CSS rules, the view buttons can change classes without any visible panel-width change, making them appear non-functional.
Fix
- Workspace switcher/layout rules moved into the established Custom-only
custom-graphs.css. _pages/99-club-custom.mdnow loadscustom-graphs.css?v=2and no longer depends oncustom-workspace.css.- Workspace switching uses persistent delegated click handling on
#tt99-root, so Custom UI re-renders cannot lose the handler.
Automated tests
node --check assets/99club/custom-app.js: PASSnode --check assets/99club/custom-graphs.js: PASSnode --check assets/99club/custom-piecharts.js: PASS- original
tests/smoke.js: PASS tests/custom-visual-smoke.js: PASS
Chromium interaction test
A local in-memory page was built from the actual production CSS/JS with no custom-workspace.css loaded. Chromium 1700 px desktop viewport produced:
- Balanced: 520 px options / 872 px preview
- Options: 720 px options / 672 px preview
- Preview: 420 px options / 972 px preview
- active-state button updated on every click
- after forcing a normal Custom UI re-render, the view switcher still worked
- sticky control remained at 10 px viewport top during scroll
- JavaScript page errors: none
Regression boundary
No changes to pie/coordinate/graph generation logic, public 99 Club generation, PDF layout, QR logic, or public Help content.