93c737ee49
The owner reports its position every ten seconds, and the server publishes a snapshot to every device on anything that touches the session. The owner was writing those snapshots back into its own store, so each one dragged playback back to its last report. Reloading another tab did it too, since registering a device publishes a snapshot: the phone jumped back to whatever position was on record, which right after a track change is zero, and the song started over. A device that already owns the session now ignores incoming snapshots and stays the authority on its own position. Snapshots still apply when ownership moves to or away from this device, which is what that branch was written for. Moving audio between devices also flushes the real position first, rather than handing over a ten-second-old one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>