fix(qbzd): publish daemon-originated queues to the Connect cloud

The daemon was queue receive-only: a CLI/TUI/MPRIS/restored queue never
reached the cloud, so controllers rendered a different queue than the
one playing. New qconnect/publish.rs ports the desktop's
sync_local_queue_if_changed with its full gate set (active-renderer,
offline-only, echo-suppress vs last-applied, per-session pushed-ids
latch, all-or-nothing admission), triggered by a debounced
CoreEvent::QueueUpdated subscriber — which also covers queue edits
while paused/stopped, unlike a transition-only hook. Live-verified: a
CLI queue move produced exactly one QueueLoadTracks push (233 tracks)
and the cloud echo was suppressed.

km
This commit is contained in:
vicrodh committed 2026-07-22 09:03:43 -06:00
1 parent 48eaebef1d
commit f51eb6dc51
3 files changed
+213 -1

No files matched your search

+1
View File
@@ -179,6 +179,7 @@ pub async fn run(roots: ProfileRoots, cfg: QbzdConfig, warns: Vec<String>) -> Re
booted.shared.clone(),
&roots,
report_notify,
booted.bus.subscribe(),
);
// T11: publish the reload route's handle onto the running service now that
// it exists (`connect`/`disconnect`/device-name refresh — see