4.8 KiB
C5b Now Playing, binding UI, VR bindings link: quick review, round R2
Reviewer: quick reviewer (a fast, focused pass, not a full audit). Date: 2026-10-07, 16:48-17:10. Steam build 11094443.
Scope: C5b as its log reports it, "READY: wp.c5b" (no dependencies). vrBindings is reported NOT ready, so it stayed off.
Main route: vr:systemui Now Playing. No scene app was running, so I used the builder's display-only mock (theme/vr/pre/np_states.js, perf variant, the same states as the log's final pass).
Status
DONE. Verdict: ACCEPT (0 blockers, 0 majors attributable to C5b).
Checks run
| Check | Command | Result |
|---|---|---|
| Gates, pad | gates vr:systemui --flags wp.c5b --mode pad --pre "window.__LGS_NP={focus:1,hover:-1,mock:'perf',keep:40000,waitKeys:true}, $(cat theme/vr/pre/np_states.js)" --json --shot r2q_c5b_pad (16:51) |
SIZE 9/9, TYPE 7/7 and AUD (9 controls, 9 texts, 0 issues) PASS. Every Now Playing edge probe is clean: the panel, the art, Resume and Exit. The page-level OUTLINE FAIL (2) is %{ControllerStatusRoot} %{LargeStatusArea}::before, which is C1a's area and is already C1a R2 M1 (REQ C5b->C1a). MOTION FAIL: see N1. |
| Gates, laser | same, with {focus:-1,hover:4,…}, --mode laser --shot r2q_c5b_laser |
The same: SIZE, TYPE and AUD PASS, and the NP probes are clean. The OUTLINE and MOTION fails are the same two non-C5b findings. |
| pad-bfs | pad-bfs --route /library/app/620980 --flags wp.c5b --max 40 --json (16:58) |
PASS: 38 nodes, 0 unreached, 0 irreversible, truncated: false, entry focus Play. With vrBindings off, no bindings capsule is rendered (PLAN-5b-1): the only controller node is Steam's own "Configure Controller". |
| Binding view (extra, one run) | gates vr:controllerbindingui --flags wp.c5b --mode laser --pre "$(cat docs/inventory/steamvr-pre/bind_view.js)" --shot r2q_c5b_bindview |
All five PASS. AUD: 51 controls, 0 issues. |
| Shots vs mockup | shots/r2q_c5b_pad.png and r2q_c5b_laser.png next to mockups/game-pages-nowplaying.html (rendered with tools/mockshot.py, then deleted) |
The layout matches: "Now Playing" caption, the bold title (two lines), the green Resume capsule with its play glyph, one recessed platter of chip rows (indigo bindings, blue video, grey perf) with chevrons, and the Exit capsule with a red label. Pad: the focused Bindings row is lit with no ring. Laser: hovering Exit gives a red fill with a dark label. The dark label on green Resume differs from the mockup's white, which is correct: REQ C4a->C5b and PLAN §1 decide. No outlines and no visual break. |
Key functions:
- Now Playing. In both modes, AUD finds Resume, VR Controller Bindings, VR Video Settings, Clear Performance Assessment Status and Exit present, full size and clickable, and the T2 keys are applied. Gamepad order is SteamVR's own. The theme keeps the DOM order of a single vertical stack, so this needs no BFS. A real (non-mock) Now Playing could not be driven, because nothing may be launched.
- Binding UI. Back, Options, the action-set tabs, Poses, Haptics and the five bottom actions are all present and clickable in laser mode.
- Game page. It is fully pad-reachable with
wp.c5bon, and nothing of C5b's is rendered there.
I pressed no Resume, Exit, Select, Edit, Export or Replace action, and I changed no binding.
Findings
No blockers and no majors.
N1 (note, not in the verdict): MOTION on vr:systemui is a side effect of the test harness, not of the theme
The transition-duration 0.04s that MOTION flags comes from SteamVR's stock rule .gamepaduibutton_GamepadUIButton_…:active, …:active:hover, …:active.gpfocus. C5b's own pre script, np_states.js, clones every :hover rule into its #lgs-vr-np-hover sheet, and this rule is among them. Because the sheet's id starts with lgs-, the gate counts the clone as ours. Nothing ships it: the sheet is removed after keep, and I confirmed it was gone at 17:08.
The builder's log blames "not in any theme file" (REQ C5b->C1a). C1a's R2 saw MOTION pass when no NP pre was used, which fits this cause. A one-line fix, if the builder wants a green MOTION gate: in np_states.js, clone only the :hover rules with no :active in them, or strip transition* from the clone.
Device left
- Theme on, CSS only (
status:css-only). The flags were scoped to their steps, andvrScripts.systemui.nowplayingreadsflag-offagain. - No mock, hover sheet,
data-lgs-npkey or__LGS_VRXis left onvr:systemui. The binding pre returned to the app list on its own. - Laser steps parked the pointer at exit, and no menus are open. pad-bfs restored its route. The main window is now on
/routes/settings/remoteplay, which is another agent's concurrent run, not mine. - I used no hv or native session, so no room imagery was taken. The two mockup renders were deleted from the scratchpad.