You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of #131 (remediation steps 2, 3, 4 and 5). Depends on Tier rail 1/4 (the v3 contract).
Replace the standalone canvas glass HUD (screen.js ~2370-2522) with a compact segmented tier rail.
Scope
Lit segments show currentTier; a distinct notch/outline marks topTier. Do not encode difficulty by changing the component's physical size.
Readable detail on hover, focus and via an accessible label, e.g. Tier 2 of 4 · full detail at 3. The current canvas is pointer-inert and has no accessible name, so this likely means moving off a bare canvas or adding an accessible layer; decide and state which.
Make it event-driven: update on song load, phrase transition, mastery change and settings change, not every requestAnimationFrame frame (the current HUD redraws every frame although its inputs change rarely).
Use FeedBack tokens and the same tier semantics and current/upcoming treatment that Section Map will use.
Keep per-instance state isolated for Split Screen / player-context instances (see PLAYER_CONTEXT.md).
Acceptance criteria
A first-time user can identify the current tier and the full-detail threshold without documentation.
Missing phrase data shows no rail rather than a zero-tier value.
Keyboard and screen-reader users can inspect current and upcoming values.
No difficulty-guide work runs continuously at 60 fps (verify with a test or a profiling note).
The glass HUD can stay available behind the old setting until sub-issue 4 removes it, so this can ship incrementally.
Sequenced per the repository's issue-sequencing plan (milestones M1-M6, ordered; this comment is the Status/Track/Blocked-by coordination line while the board is milestones-only). Update this comment when claiming, blocking, or handing off - claim protocol: one agent per issue; comment Claimed in <branch> (<milestone>); branch naming m<M>-<issue>-<slug>; set Status to In Progress/In Review/Done here as work proceeds. Never take this issue as a work item if Track is meta.
Activity
pullfrog commentedon Oct 2, 2026
cchacs commentedon Oct 7, 2026
Status: Triage
Track: UI/Contract
Milestone: M3 Generation Parity & Guide
Blocked by: M1+M2 seam stability (sequencing plan)
Agent/session: unclaimed
Builds on the closed v3 contract #156.
Sequenced per the repository's issue-sequencing plan (milestones M1-M6, ordered; this comment is the Status/Track/Blocked-by coordination line while the board is milestones-only). Update this comment when claiming, blocking, or handing off - claim protocol: one agent per issue; comment
Claimed in <branch> (<milestone>); branch namingm<M>-<issue>-<slug>; set Status to In Progress/In Review/Done here as work proceeds. Never take this issue as a work item if Track is meta.cchacs commentedon Oct 9, 2026
Claimed in m3-157-tier-rail (M3).
fix: make tier rail cells hoverable and track phrase transitions (#157)
fix: cache rail phrase index, share one phrase snapshot per sync (#157)
feat: replace the canvas glass HUD with an event-driven accessible ti…
test: retarget #129 host-contract coverage at the live tier rail
feat: remove glassSize, glass drawing and glass terminology (#159) (#231