Commit Graph

3 Commits

Author SHA1 Message Date
Jeff Emmett 02278f4cf8 feat: shuffle mode, queue-next fix, song switch confirmation, playlist dedup
- Add shuffle toggle to mini-player and full-screen player (Fisher-Yates
  shuffle of upcoming queue items, restores original order on toggle off)
- Fix ADD_TO_QUEUE to insert after current track instead of appending to end
- Add confirmation dialog ("Switch song, DJ Cutoff?") when clicking a
  different song while one is playing
- Dedup playlist songs by title+artist (keeps first occurrence)
- Make artist name clickable in full-screen player (navigates to search)
- Music page reads ?q= param to pre-fill search from artist links
- Add pre-cache module for upcoming tracks

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 21:03:34 -07:00
Jeff Emmett 1bdb5e50ef feat: add playlist browsing with cover art on music page
Playlists now display as expandable cards with cover art thumbnails
on the /music page when no search is active. Tapping a playlist
reveals its songs with cover art via the SongRow component.
Also added GET handler for /api/music/playlist/[id] and
improved playlist-picker dialog with cover art.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 21:16:12 -07:00
Jeff Emmett b9551d7597 feat: add integrated music player with Navidrome + Soulseek support
Search and play music from the Navidrome library with a persistent mini
player, full-screen drawer with lyrics/playlists, and Soulseek P2P
fallback for discovering new tracks. All streaming proxied through
server-side API routes to keep credentials hidden.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 20:35:13 -07:00