f4d07ef9a1
Web UI shows system playlists; Flutter shows placeholders. Wire shape, adapters, drift schema, and filter constants all line up on inspection, so adding instrumentation to pinpoint where the system rows fall out: - Log what /api/playlists?kind=all actually returns (owned/public counts, including how many of owned are system). - Log what cacheFirst sees on each drift emit: total rows, filtered, how many are system, how many landed in owned vs pub, plus the user.id used for the owned-vs-pub split. Also add the 3s connectivity timeout that albumProvider/artistProvider got — keeps the alwaysRefresh path from blocking on a stalled connectivity stream. Three log lines from one home-screen visit will tell us: - Does the server emit system rows? (wire log: system=N) - Do they land in drift? (drift log: filtered system=N) - Do they survive the user-id filter? (drift log: owned system=N)