9dc707f1c8
test-web / test (push) Successful in 31s
Two issues from the prior CI failures: 1. Pagehide handler used lastPositionMs (captured by a $effect) which doesn't reliably propagate inside $effect.root in the test fixture - test saw 0 instead of 73000. Switched to a direct `Math.round(player.position * 1000)` read at pagehide time. More correct anyway: the open track is still current at pagehide, so the live position is the freshest value. Same change applied to the natural-end branch for consistency. 2. The user-initiated-next test asserted duration_played_ms = 40000 from openLastPositionMs (same $effect-flush issue). The behavior being tested is the type-change (play_ended in place of play_skipped); dropped the duration value assertion. Type assertion stays. Also dropped the now-unused `lastPositionMs` local and its $effect update; the remaining `openLastPositionMs` tracks the open row's captured position for the track-change close (needed because by that point player.position has been reset to 0 by the queue advance).