Position is derived from the render clock (PlaybackService.swift — lastRenderTime/playerTime), which is robust against a fully wedged output. But a network output that keeps clocking while producing silence (a known AirPlay failure mode on HomePods) would advance the slider with no audio and no route-change notification to trigger recovery.
Fix direction: consider a lightweight output-level check (metering tap or render-level sample) while an AirPlay route is active; on sustained silence during nominal playback, run the existing engine-rebuild recovery path. Fold into the pending AirPlay Tier-1 live verification (docs/10-roadmap.md).
Position is derived from the render clock (
PlaybackService.swift—lastRenderTime/playerTime), which is robust against a fully wedged output. But a network output that keeps clocking while producing silence (a known AirPlay failure mode on HomePods) would advance the slider with no audio and no route-change notification to trigger recovery.Fix direction: consider a lightweight output-level check (metering tap or render-level sample) while an AirPlay route is active; on sustained silence during nominal playback, run the existing engine-rebuild recovery path. Fold into the pending AirPlay Tier-1 live verification (docs/10-roadmap.md).