Files
AetherTable/python
John SmithandClaude 013677eb4d feat(wave13): UI/UX hardening — code splitting, dice history, a11y & honest ambience
Perf:
- Route-level code splitting (React.lazy + Suspense): entry chunk 1.9 MB → 241 kB,
  30 on-demand view/modal chunks, Vite chunk-size warning gone

Features:
- DiceHistoryPanel: session audit log of every engine-resolved roll with
  crit/fumble highlighting, 50-entry cap, localStorage persistence
- ShortcutsModal + global keys: `?` cheat-sheet, Escape closes top-most modal,
  typing guard; "Keyboard Shortcuts" entry in Cmd+K palette
- Real WebAudio ambience engine (startAmbience/stopAmbience/setAmbienceVolume):
  jukebox presets synthesize per-track noise+drone loops; play state is now
  honest (opens paused) and master slider is live

Bug fixes:
- pyproject: declare reportlab (6 test modules failed collection on fresh envs)
- Navbar clipped X-CARD at 1366×768: responsive collapse, 0 overflow 900→1920px
- Canvas tool rail clipped under character dock: flex-wrap + max-width
- Macro quickbar occluded ~80% of chat console: collapsed by default
- Alarm-fatigue sounds removed from pagination/mic-toggle/seat-pick

A11y:
- Global :focus-visible rings, prefers-reduced-motion, .selectable-text
- aria-labels on icon-only controls; all modal close buttons labeled + autoFocus
  so focus enters dialogs on open; unlabeled form fields fixed (0 remaining)

SEO: meta description, <main> landmark, robots.txt, spec-compliant llms.txt

Verified: cargo ✅, pytest 57/1 ✅, MCR 100% / HCI 1.0 ✅, build ~1s ✅,
Lighthouse 100/100/100, Chrome DevTools sweeps 900→1920px with 0 visible
overflows. Details in docs/improvement-log.md.

Co-Authored-By: Claude <[email protected]>
2026-08-23 15:16:15 -04:00
..