• bvandeusen released this 2026-05-14 11:18:05 -04:00 | 737 commits to main since this release

    Patch batch on top of v2026.05.13.0. See PR #44 for the full breakdown.

    Highlights

    Player fixes

    • Queue button on the now-playing screen no longer no-ops (missing skipToQueueItem override; now rebuilds the source list via setQueueFromTracks)
    • Tapping a new track in a playlist immediately silences the previous one (pause() before async _buildAudioSource so old audio doesn't bleed through)
    • Mini player cover crossfades through track changes instead of flashing slate placeholder
    • Full-player track-change animation: precacheImage on the new file:// artUri + held previous dominant color keep the gradient + album art from snapping in mid-transition

    Discover playlist

    • Adjacent duplicate tracks fixed. interleaveBuckets now dedups across buckets — single-user servers were hit hardest because empty crossUser slots redistributed to dormant + random and shared tracks landed at the same interleaved position. Existing duplicates clear at the next 03:00-local playlist refresh.

    Library + UI

    • Artist circles in the Library 3-column grid stay perfectly round at any cell width (ArtistCard now mirrors AlbumCard's width-parameter pattern)
    • Library Artists + Albums tabs are now drift-first. Reads from cached_artists/cached_albums populated by sync; cacheFirst handles the cold-install fallback. Tab swipes are instant from the second visit forward; loadMore + infinite scroll dropped (drift-all-at-once + GridView.builder lazy rendering handles typical libraries fine).
    • systemPlaylistsStatusProvider drift-first via new CachedSystemPlaylistsStatus single-row table (schema 7). Home Playlists row paints with prior status instead of flickering through empty during cold REST.
    • Library tab pre-warm: ref.listen on all 5 tab providers in LibraryScreen.build subscribes them upfront so the first cold visit pays the network cost in parallel rather than per-tab on swipe.

    Cleanup

    • 404 log noise from missing playlist covers (collages not yet built) silenced in dev console; auth/connectivity errors still surface.

    Operator notes

    • Drift schema bump 6 → 7 (CachedSystemPlaylistsStatus added). Migration runs in-place on first launch.
    • Pull the new server container image — Discover dedup affects new playlist builds; existing duplicates in drift clear at the next 03:00-local refresh.
    • In-app updater should pick this up cleanly (versionCode bumped 1 → 2).
    • Sideload minstrel-v2026.05.13.1.apk from this release page when CI finishes attaching it.
    Downloads