Three bugs from the v2 parity audit:
* Search: tapping a track result built a single-track queue
(auto-advance died on track end). Now builds a queue from the full
visible Loaded tracks list starting at the tapped row, mirroring
Flutter.
* ArtistDetail: Play button played albums in tracklist order. Flutter
shuffles. .shuffled() on the fetched list.
* NowPlaying: when the session tore down (queue finished, queue
cleared from elsewhere) the screen stranded the user on an
EmptyState with no escape. Replaced with a 500ms-debounced
popBackStack so the brief null during MediaController IPC bind
doesn't bounce the user, but a genuine session-end pops them back
to wherever they came from.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>