Server has been generating system_variant='discover' since M6a but neither client surfaced it. Both Flutter and web now reserve a 5th slot (For-You, Discover, 3× Songs-like) with placeholder state machine matching the others.
Player navigation:
Full-player kebab "Go to album/artist" no longer crashes. /now-playing lives outside the ShellRoute; pushing a shell-child route on top of it tripped go_router's _debugCheckDuplicatedPageKeys assert. New onNavigate(path) callback shape lets the host await its own pop before pushing.
Caching hygiene:
Restored alwaysRefresh on artistAlbumsProvider — partial caches (e.g., user previously visited only one album by an artist) were rendering forever as a partial list because the provider only fetched on empty drift, never on partial drift. The metadata prefetcher only mass-warms artistProvider, so SWR here doesn't recreate the parallel-fetch storm we fixed earlier.
Diagnostic-print cleanup pass. Removed all per-event chatter (state transitions, timing measurements, per-track cache hit/miss, per-screen drift hit logs, prefetcher warming logs). Remaining debugPrints are error-path only.
Test fix:
web/page.test.ts placeholder counts updated for the new Discover slot (5 placeholders empty, 4 placeholders alongside For-You).
Polish + fix batch since v2026.05.12.0.
Discover system playlist:
- Server has been generating system_variant='discover' since M6a but neither client surfaced it. Both Flutter and web now reserve a 5th slot (For-You, Discover, 3× Songs-like) with placeholder state machine matching the others.
Player navigation:
- Full-player kebab "Go to album/artist" no longer crashes. /now-playing lives outside the ShellRoute; pushing a shell-child route on top of it tripped go_router's _debugCheckDuplicatedPageKeys assert. New onNavigate(path) callback shape lets the host await its own pop before pushing.
Caching hygiene:
- Restored alwaysRefresh on artistAlbumsProvider — partial caches (e.g., user previously visited only one album by an artist) were rendering forever as a partial list because the provider only fetched on empty drift, never on partial drift. The metadata prefetcher only mass-warms artistProvider, so SWR here doesn't recreate the parallel-fetch storm we fixed earlier.
- Diagnostic-print cleanup pass. Removed all per-event chatter (state transitions, timing measurements, per-track cache hit/miss, per-screen drift hit logs, prefetcher warming logs). Remaining debugPrints are error-path only.
Test fix:
- web/page.test.ts placeholder counts updated for the new Discover slot (5 placeholders empty, 4 placeholders alongside For-You).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Polish + fix batch since v2026.05.12.0.
Discover system playlist:
Player navigation:
Caching hygiene:
Test fix: