release v2026.05.12.1: Discover surface + nav fixes + cache hygiene #42

Merged
bvandeusen merged 262 commits from dev into main 2026-05-11 23:58:44 -04:00
bvandeusen commented 2026-05-11 23:58:34 -04:00 (Migrated from git.fabledsword.com)

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).
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).
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/minstrel#42