feat: navidrome playlists tab, favorites, dedicated playlist tables
TUI:
- Move Playlists under the My Music tab and add a Favorites sub-tab
(Tracks / Albums / Artists / Favorites / Playlists), backed by the
Navidrome (Subsonic-compatible) API.
- Favorites list the user's starred songs and stream via Navidrome; they
can be played, queued (next/last/insert), and added to playlists.
- Playlists: create, delete, play, add/remove tracks; add the selected
track to a playlist (;), and save the current queue as a playlist (Q -> s).
- Like/unlike now goes through the Navidrome star/unstar API (keyed by
track id) for both the selection and the currently playing track.
- Search: Ctrl+N / Ctrl+L queue the selected upload result; every queue
source now carries a trackId so export/star works.
- Infinite scroll for tracks/albums/artists; R force-refreshes feeds.
Navidrome crate:
- Real createPlaylist / updatePlaylist / deletePlaylist endpoints, now
backed by dedicated navidrome_playlists / navidrome_playlist_tracks
tables (isolated from playlists ingested from other sources).
- Fix getPlaylist crashing when tracks exist (select the storage columns
TrackWithUpload requires via the shared TRACK_SELECT).
DB: add drizzle schema + migration 0015_navidrome_playlists.
Docs/CI: README TUI section + aligned shortcut table, FlakeHub badge,
ubuntu-24.04-arm runner, cachix cache.
feat: navidrome playlists tab, favorites, dedicated playlist tables
TUI:
- Move Playlists under the My Music tab and add a Favorites sub-tab
(Tracks / Albums / Artists / Favorites / Playlists), backed by the
Navidrome (Subsonic-compatible) API.
- Favorites list the user's starred songs and stream via Navidrome; they
can be played, queued (next/last/insert), and added to playlists.
- Playlists: create, delete, play, add/remove tracks; add the selected
track to a playlist (;), and save the current queue as a playlist (Q -> s).
- Like/unlike now goes through the Navidrome star/unstar API (keyed by
track id) for both the selection and the currently playing track.
- Search: Ctrl+N / Ctrl+L queue the selected upload result; every queue
source now carries a trackId so export/star works.
- Infinite scroll for tracks/albums/artists; R force-refreshes feeds.
Navidrome crate:
- Real createPlaylist / updatePlaylist / deletePlaylist endpoints, now
backed by dedicated navidrome_playlists / navidrome_playlist_tracks
tables (isolated from playlists ingested from other sources).
- Fix getPlaylist crashing when tracks exist (select the storage columns
TrackWithUpload requires via the shared TRACK_SELECT).
DB: add drizzle schema + migration 0015_navidrome_playlists.
Docs/CI: README TUI section + aligned shortcut table, FlakeHub badge,
ubuntu-24.04-arm runner, cachix cache.