diff --git a/web/src/lib/components/PlaylistCard.svelte b/web/src/lib/components/PlaylistCard.svelte index 3f871edf..84e358c0 100644 --- a/web/src/lib/components/PlaylistCard.svelte +++ b/web/src/lib/components/PlaylistCard.svelte @@ -86,10 +86,17 @@ const detail = await getPlaylist(playlist.id); const refs = toTrackRefs(detail.tracks); if (refs.length > 0) { - // Tag the queue with the variant when one exists so play - // events still carry the correct source attribution even - // though we went through the per-id path. - playQueue(refs, 0, variant != null ? { source: variant } : undefined); + // Per-artist system mixes (songs_like_artist) carry a + // variant tag so play_started still attributes the source + // correctly even though we routed through the per-id path. + // True user playlists (variant == null) call with two args + // so source attribution stays absent — the PlaylistCard + // test pins this contract. + if (variant != null) { + playQueue(refs, 0, { source: variant }); + } else { + playQueue(refs, 0); + } } } } finally {