You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
A paused episode overwrites newer progress synced from another device #461
A device that has an episode loaded and paused writes its own, older position over newer progress synced from another device.
Reproduce (found by DOCS5 on master 48e1d50, Obsidian 1.14.4, Linux; evidence in the program store under evidence/DOCS5/runtime-save-recovery.md)
Desktop: play an episode, pause at 47.7 s. data.json records 47.7.
Another device continues the episode to 90 s; sync delivers a data.json with 90 s and PodNotes picks it up (onExternalSettingsChange).
Memory now holds 90 s, but the desktop player still shows 47.7 s.
The window hides, or PodNotes saves for any other reason (player.save() then flushSaves()): data.json goes back to 47.7 s. Sync then carries 47.7 s back to the other device, so the listening done there is lost on both.
Seeking the desktop player to 90 s before it saves keeps the synced position, which shows the cause: the loaded player's position is written back regardless of whether it changed on this device.
Expected: a paused episode that this device hasn't moved adopts the synced position, and the player shows it. A save never replaces synced progress with a position this device didn't produce. While the episode is playing on this device, its own position wins.
This is the common "listen on the phone, come back to the desktop" handoff, so it matters for 2.22.0's multi-device sync (#388, #398). Until it's fixed, the held release docs (#458) work around it with a manual handoff step.
Activity