Image rendering + player resilience (#968, #980) #103

Merged
bvandeusen merged 11 commits from dev into main 2026-06-20 20:57:39 -04:00
Showing only changes of commit d05264ff80 - Show all commits
+5 -4
View File
@@ -70,13 +70,14 @@
// so the index in the playable list != the playlist position. // so the index in the playable list != the playlist position.
const clickedTrackID = data.tracks.find((t) => t.position === position)?.track_id; const clickedTrackID = data.tracks.find((t) => t.position === position)?.track_id;
const startIdx = live.findIndex((t) => t.id === clickedTrackID); const startIdx = live.findIndex((t) => t.id === clickedTrackID);
// #968: a system playlist played from its detail page gets the same // #968: a system playlist played from its detail page is tagged with its
// self-heal closure as the home tile, so a stale snapshot re-pulls on // source (so play_started advances the rotation, matching the home tile and
// total failure. (Source attribution is intentionally left to the home // the Android detail screen) and gets the self-heal closure so a stale
// tile / shuffle path — this only adds the recovery closure.) // snapshot re-pulls on total failure.
const variant = data.system_variant; const variant = data.system_variant;
if (variant != null) { if (variant != null) {
playQueue(live, Math.max(0, startIdx), { playQueue(live, Math.max(0, startIdx), {
source: variant,
refetch: systemPlaylistRefetch({ refetch: systemPlaylistRefetch({
variant, variant,
playlistId: id, playlistId: id,