Skip to content

P3 polish: asset cleanup, rail legibility, plain-words Edge slots, status desktop layout#31

Merged
shiftedx merged 12 commits into
mainfrom
p3-polish
Jun 11, 2026
Merged

P3 polish: asset cleanup, rail legibility, plain-words Edge slots, status desktop layout#31
shiftedx merged 12 commits into
mainfrom
p3-polish

Conversation

@shiftedx

Copy link
Copy Markdown
Owner

Lands the ten deliberately-deferred P3 items from the 2026-06-11 critique (local snapshot .impeccable/critique/2026-06-11T05-34-28Z__web-src.md, 29/40), plus user-checkpoint decisions.

What landed

  1. Orphaned assets — deleted web/public/dualsense/focus/ (20 HUD-era PNGs, 156KB; zero references in web/ or crates/) and the dead .dm-controller-focus CSS. Release file count 60 → 40.
  2. Saved rail legibility — rows 11→12px, title 9→10px; new --ink-muted-raised token (#93939d, ≈4.94:1 on --surface-raised) applied to the rail's muted text and the discard button (the element actually on the raised surface, 4.46:1 before).
  3. Edge slots speak product — the agent-missing error now reads "Onboard slots need DSCC running." (direction-neutral; mapped via friendlyEdgeSlotsError at both catch sites so the toast and inline note agree — the raw API string is in a forbidden file). Empty state teaches Fn slots.
  4. Status desktop layout — user picked vertical centering (Option B of two screenshotted treatments): the band centers in the viewport at ≥1200×720 instead of hugging the top-left.
  5. 🎮 emoji → brand glyph in the Status controller card, with the same mask-zoom the sidebar mark uses.
  6. Color swatches beside lightbar/redline hex values in the saved rail; rows now carry a typed kind: 'color' from savedDiff.ts (no regex sniffing at render time).
  7. <900px occlusion.work-and-rail:has(.saved-mobile-bar) reserves 84px under the canvas only while the save bar is shown.
  8. Toolbar readout — "TUNING SCOPE · Everyday — Global Profile · controller-only tuning" (was "PROFILE SCOPE: Global", which could contradict Status's resolution sentence; the readout tracks tuning scope, not profile resolution).
  9. Legacy $: smells — stale telemetry now reads as 0 on the live trigger readouts (gated on the existing selectedGameTelemetryFresh, consistent with the telemetry chip). profileConfigDirty double-build deferred: no cheap fix without a runes migration (memoizing buildControllerConfig means hand-listing ~30 deps).
  10. Toast severity — user opted in: full 1px severity border replaces the 3px side-stripe (left text inset preserved: 3+13 → 1+15).

Checkpoint

Single batched eyes-on review in dev:mock: Option B chosen for Status, all visual items approved, toast full-border opted in.

Code review notes (deliberate deferrals)

  • l2/r2LivePress has a pre-existing hidden dep (legacy $: doesn't track telemetryByName read inside telemetryUnitValue()); unchanged by this PR, noted for the runes migration.
  • The status-centering calc(100dvh - 130px) hardcodes measured chrome; revisit if the toolbar's height changes.
  • --ink-muted-raised is a deliberate fork, not a global --ink-muted bump (a global bump would touch ~135 uses sight-unseen).
  • .dm-warning / .dm-support-panel still use side-stripe borders; only the toast was in scope per the user's opt-in.
  • Adjacent dead .dm-controller-focus-card CSS family left for a future dead-CSS sweep.

Gates (npm run check: typecheck, source-audit, button-map, snapshot-map, haptics-graph, build, release-size, visual-smoke at 1366/1440/390) green at every commit.

🤖 Generated with Claude Code

@shiftedx shiftedx merged commit 3f70c3e into main Jun 11, 2026
3 checks passed
@shiftedx shiftedx deleted the p3-polish branch June 11, 2026 17:24
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.

1 participant