release v2026.05.13.2: artist covers + load-then-swap player transitions #45
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Patch batch on top of v2026.05.13.1.
Fixes
Artist tiles rendered the music-notes placeholder everywhere
except the artist detail screen. Root cause: CachedArtistAdapter.
toRef() dropped coverUrl entirely — the cache doesn't store the
representative album id the server derives at query time. Detail
screen worked because it bypasses ArtistRef.coverUrl entirely and
builds its header cover from artist.albums[0].id directly. Fix
joins cached_albums ordered by sort_title in the queries used by
artistTileProvider, libraryArtistsProvider, and artistProvider;
toRef now accepts a coverAlbumId and reconstructs
/api/albums/<id>/coverfrom it. Fixes home Rediscover Artists,Library Artists tab, and Liked Artists carousel. (
8cb9a8b)Mini player cover flickered on track change. Earlier
AnimatedSwitcher attempt smeared the transition without
addressing the underlying race (audio_handler broadcasts
MediaItem twice — bare then with artUri). Drop AnimatedSwitcher;
PlayerBar is now stateful and holds the most-recent non-null
artUri. When the bare-MediaItem rebroadcast arrives, the bar
keeps showing the previous cover via media.copyWith(artUri:
_lastArtUri). The new cover snaps in the moment its artUri
arrives. (
86d67f6)Full player track-change still snapped the album art + gradient
in after the fade completed. Earlier fix layered precacheImage
the FileImage decode. Rewrite the decision process around "load
first, then swap": introduce _displayedMedia + _displayedDominant
state; ref.listen on mediaItemProvider schedules a preload that
awaits precacheImage AND awaits albumColorProvider's future; only
then does setState atomically commit both fields so cover, title,
and gradient advance in one frame. Backdrop AnimatedContainer
still tweens between successive committed colors so the gradient
transition stays smooth. Rapid skips drop stale completions via
_pendingPreloadId. (
86d67f6)Operator notes