Skip to content

LocalJam v2026.09.068

Choose a tag to compare

@github-actions github-actions released this 16 Sep 05:48
Immutable release. Only release title and notes can be modified.

LocalJam v2026.09.068

Live Deployment & App Access

Commit Details

Subject: feat(ui): add 6-row stage viewport component with dual-source handle bar
Date: 2026-09-15 22:48:13 -0700

Commit Message

Implement the persistent one-screen L0 Stage viewport component per
docs/design/2026-09-15-minimalist-player-redesign.md (§4.1, §4.4, §7.4, §8 Task 7).

  • Row 1: Interactive status chips ([★], [SHUFFLE], [REPEAT], [EQ], [MUTED])
    with cached configuration keys to prevent DOM destruction during playback
    time ticks, plus [ ••• ] overflow button.
  • Row 2: 280x280 album artwork with error fallback to icon-192.svg, real-time
    Canvas audio visualizer, and pointer gesture bindings (single tap to cycle
    visualizer modes, double-tap to toggle favorite, long-press to open overflow).
  • Row 3: Live metadata titles and subtitles updated in place.
  • Row 4: Timeline range seek slider and dual-ended mm:ss / -mm:ss timestamps
    for local playback; double-coded radio stream status line ([READY],
    [CONNECTING], [BUFFERING], [LIVE], [OFFLINE] with distinct glyphs) for radio.
  • Row 5: Ergonomic transport cluster (Previous, Play/Pause, Next).
  • Row 6: Dual-Source Handle Bar ([ Local ] · [ Radio ]) with horizontal swipe
    gesture for source toggling and Tier 2 re-open folder prompt when session files
    are unavailable.
  • Stage interactions: Wheel volume stepping (±5%) with [VOLUME XX%] toast and
    middle-click (auxclick / mousedown suppression) mute toggling.
  • Updates test/helpers/mock-dom.js with WheelEvent and input type property syncing.
  • Adds 13 unit tests in test/ui/stage.test.js covering all 6 rows and gestures.