Skip to content

v0.3.14 — - **Fixed: returning to a paused device after playing on another machine kept the stale queue** instead of pulling the updated one from the server. The queue sync relied entirely on the event (tab hidden → visible), but if the Velvet tab was always visible (desktop that was never minimised or locked), that event never fired — leaving the old queue in place indefinitely

Choose a tag to compare

@aroundmyroom aroundmyroom released this 10 Jul 20:24
· 44 commits to main since this release

Velvet v0.3.14 — Cross-device queue sync fix

What changed

When you played music on a second device while your main machine's
Velvet tab was paused but always visible (desktop, no sleep, no tab
switch), the main machine would keep its old queue forever. Switching
tabs or locking the screen would have fixed it — but who does that?

Root cause: queue synchronisation between devices relied entirely on
the browser's visibilitychange event (fired when a tab goes hidden and
returns visible). On a desktop with Velvet permanently open in a visible
tab, that event never fired, so the stale localStorage queue was never
replaced with the one saved by the other device.

Fix: a 2-minute background interval now runs while audio is paused.
It fetches your server-side settings and applies the same cross-device
logic as the existing tab-focus sync — if the DB record was saved by a
different browser/device and the local queue differs, the DB wins and
the queue is restored silently. The interval shares the same throttle
as the tab-focus handler so both paths co-exist without double-syncing.