208a7d056b
AppBar headers on AlbumDetail / ArtistDetail / PlaylistDetail now render the real title during the Loading state instead of the "Album" / "Artist" / "Playlist" placeholder. Mirrors Flutter's go_router extra: seed pattern. Implementation: * DetailSeedCache — process-singleton with three LRU buckets (albums / artists / playlists, 32 entries each). Hilt-injected into MainActivity and exposed via LocalDetailSeedCache so any composable can stash before navigating. * AlbumCard / ArtistCard / PlaylistCard stash their Ref on click; every existing nav call site automatically benefits — no callback shape change needed. * Each detail VM peeks the cache in refresh() and emits Loading(seed) so the AppBar reads from the carried seed. State carries across pull-to-refresh too (refresh keeps the seed of the previous Success / Loading rather than blanking to "Album"). * AlbumDetailUiState.Loading, ArtistDetailUiState.Loading, and PlaylistDetailUiState.Loading evolved from data object to data class Loading(val seed: T?) — backwards-compatible pattern-matching with is checks. Track-level "Go to album" / "Go to artist" call sites (TrackRow and NowPlaying TrackActions) only have an id, no Ref, so the AppBar still shows the placeholder for those — matches Flutter. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>