Audit v2 #13. Four touches to RequestsScreen rows:
* Kind avatar leading icon: Lucide.Disc3 for artist, LibraryBig for
album, Music for track (matches Flutter's mapping).
* Cancel confirmation AlertDialog — single tap on Cancel used to be
irreversible; now shows "Cancel '<name>'? Lidarr will stop searching
for it." with Cancel / Keep buttons.
* Ingest progress text below the status pill when importedAlbumCount
or importedTrackCount > 0: "2 albums · 14 tracks ingested".
* Listen OutlinedButton on completed rows when matchedAlbumId or
matchedArtistId resolves; routes to AlbumDetail (preferred) or
ArtistDetail. Track matches route through AlbumDetail since the
client has no TrackDetail screen.
navController.navigate takes the route object directly. Because the
listenRoute can be AlbumDetail or ArtistDetail (both @Serializable
route types from nav/Routes.kt), the callback signature is (Any) ->
Unit and the screen passes it straight to navigate().
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>