98fdd9dcdf
playlistsListProvider — StreamProvider over cached_playlists. Returns all user-owned + others' public playlists. The 'kind' family arg only affects the REST cold-cache fetch (server-side filter); drift can't distinguish 'user' from 'system' kind because systemVariant isn't persisted. v1 limitation: add-to-playlist sheet may briefly show system playlists too. Follow-up: add systemVariant column + schema bump. playlistDetailProvider — async* over the playlist watch stream + a one-shot tracks query per emission (joins playlist_tracks → tracks → artists → albums for snapshot fields). Cold-cache fallback inserts playlist + playlist_tracks rows in one batch, then awaits re-emission. Pull-to-refresh on these screens now triggers re-subscription rather than forcing a REST fetch — drift is the source of truth and stays fresh via SyncController's delta sync. Documented behaviour shift; if operator wants force-refetch we can add it via a sync trigger later. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>