Browse → Play remounts the engine without a channel change, so the volume
signal — which only recomputed per channel — handed the remounted player the
value from before the user adjusted it. The detail host now announces
playbackStarted and the parent re-reads the shared bus, keeping one owner.
Adds the missing E2E for the workflow (web-e2e/m3u-movie-details.e2e.ts):
recognition into the detail view with a routed TMDB mock, async metadata,
the live-channel fallback, and the volume surviving Browse → Play. Verified
to fail without the fix.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>