release v2026.05.11.1: Flutter caching, navigation, and player polish #39

Merged
bvandeusen merged 262 commits from dev into main 2026-05-11 13:47:43 -04:00
bvandeusen commented 2026-05-11 13:47:30 -04:00 (Migrated from git.fabledsword.com)

Follow-up release after v2026.05.11.0. Flutter-only changes.

Caching/loading strategy (SWR + hydration + skeleton): cacheFirst providers now alwaysRefresh so cache hits silently update; inline album/playlist providers gained the same SWR guard; detail screens accept a seed AlbumRef/ArtistRef from navigation so the header renders before the network returns; cold-start home shows a layout skeleton instead of a 30s blank spinner.

Library: Artists tab was 404ing because the client hit /api/library/artists; the server mounts it at /api/artists. Albums tab switched to the responsive 3-up grid that was built for artist detail (LayoutBuilder + sized AlbumCard, no wide-aspect empty space).

System playlists: tapping one landed on an empty playlist because playlistsListProvider wrote rows but not tracks, and playlistDetailProvider only cold-fetched on missing row. Now refetches when row exists but tracks are empty, mirrors the album fix. Also wipes + re-inserts playlist tracks per fetch so server-side deletions propagate; writes referenced artist/album rows so joined columns populate.

Player: didn't update on track change — audio_handler's currentIndexStream listener only kicked the cover load, never pushed the new MediaItem onto the stream. Now it does. Player kebab "Go to artist" 404'd because audio_handler's _toMediaItem didn't stash artist_id in extras (only album_id) — fixed. Added "Start radio" menu item wrapping the existing /api/radio endpoint. Title in full player re-centered via Stack.

Update banner: pubspec version-comparison rewrite, CI builds tagged APKs with --build-name="${TAG#v}" so PackageInfo matches the server's reported version.

Test plan:

  • Server CI green
  • Web CI green
  • Flutter CI green
  • Sideload minstrel-v2026.05.11.1.apk
  • Verify navigation hydration on home tile taps
  • Verify player title/artist/cover update on skip
  • Verify Start radio + Go to artist from player kebab
Follow-up release after v2026.05.11.0. Flutter-only changes. Caching/loading strategy (SWR + hydration + skeleton): cacheFirst providers now alwaysRefresh so cache hits silently update; inline album/playlist providers gained the same SWR guard; detail screens accept a seed AlbumRef/ArtistRef from navigation so the header renders before the network returns; cold-start home shows a layout skeleton instead of a 30s blank spinner. Library: Artists tab was 404ing because the client hit /api/library/artists; the server mounts it at /api/artists. Albums tab switched to the responsive 3-up grid that was built for artist detail (LayoutBuilder + sized AlbumCard, no wide-aspect empty space). System playlists: tapping one landed on an empty playlist because playlistsListProvider wrote rows but not tracks, and playlistDetailProvider only cold-fetched on missing row. Now refetches when row exists but tracks are empty, mirrors the album fix. Also wipes + re-inserts playlist tracks per fetch so server-side deletions propagate; writes referenced artist/album rows so joined columns populate. Player: didn't update on track change — audio_handler's currentIndexStream listener only kicked the cover load, never pushed the new MediaItem onto the stream. Now it does. Player kebab "Go to artist" 404'd because audio_handler's _toMediaItem didn't stash artist_id in extras (only album_id) — fixed. Added "Start radio" menu item wrapping the existing /api/radio endpoint. Title in full player re-centered via Stack. Update banner: pubspec version-comparison rewrite, CI builds tagged APKs with --build-name="${TAG#v}" so PackageInfo matches the server's reported version. Test plan: - [ ] Server CI green - [ ] Web CI green - [ ] Flutter CI green - [ ] Sideload minstrel-v2026.05.11.1.apk - [ ] Verify navigation hydration on home tile taps - [ ] Verify player title/artist/cover update on skip - [ ] Verify Start radio + Go to artist from player kebab
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/minstrel#39