7500d283a8
Audit v2 #15. System-playlist detail screens now expose a "Regenerate" OutlinedButton next to Play + Shuffle when the playlist is refreshable (every system variant except songs_like_artist — mirrors Flutter's PlaylistRef.refreshable). Plumbing: * PlaylistsApi.refreshSystem(variant) → RefreshSystemResponse with optional playlist_id (server rotates the uuid; null when library can't seed a build). * PlaylistsRepository.refreshSystemPlaylist returns the new id and invalidates the list cache so home-row tiles point at the new uuid. * PlaylistDetailViewModel.regenerate calls into the repo and emits the new id on a Channel. * Screen collects the channel and navController.navigate-with-popUpTo replaces the current detail route, so the back stack doesn't hold the now-404'd old uuid. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>