From 152e8b6bf3eefeeb12f306f1b613d8d0f2613199 Mon Sep 17 00:00:00 2001 From: BoulderBadgeDad Date: Wed, 3 Jun 2026 16:09:22 -0700 Subject: [PATCH] Similar Artists orb: wire it into the WebSocket status broadcast (the real fix) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit THE root cause of 'orb frozen, click does nothing visibly': when a socket is connected, the orbs don't poll — update*Status() bails on socketConnected and relies on server pushes. similar_artists was missing from BOTH the server emit loop (_emit_enrichment_status_loop's workers dict) and the client dispatch (core.js socket.on('enrichment:')), so the orb never received status → never updated. Clicks DID pause the backend (modal showed paused), but the orb visual was frozen. Added the worker to the emit loop + the socket.on handler. --- web_server.py | 1 + webui/static/core.js | 1 + 2 files changed, 2 insertions(+) diff --git a/web_server.py b/web_server.py index adbc8bb6..6fed0f1b 100644 --- a/web_server.py +++ b/web_server.py @@ -34761,6 +34761,7 @@ def _emit_enrichment_status_loop(): 'tidal-enrichment': lambda: tidal_enrichment_worker, 'qobuz-enrichment': lambda: qobuz_enrichment_worker, 'amazon-enrichment': lambda: amazon_worker, + 'similar_artists': lambda: similar_artists_worker, 'hydrabase': lambda: hydrabase_worker, 'soulid': lambda: soulid_worker, 'listening-stats': lambda: listening_stats_worker, diff --git a/webui/static/core.js b/webui/static/core.js index 2ba0d6b2..520afe6a 100644 --- a/webui/static/core.js +++ b/webui/static/core.js @@ -459,6 +459,7 @@ function initializeWebSocket() { socket.on('enrichment:tidal-enrichment', (data) => updateTidalEnrichmentStatusFromData(data)); socket.on('enrichment:qobuz-enrichment', (data) => updateQobuzEnrichmentStatusFromData(data)); socket.on('enrichment:amazon-enrichment', (data) => updateAmazonEnrichmentStatusFromData(data)); + socket.on('enrichment:similar_artists', (data) => updateSimilarArtistsEnrichmentStatusFromData(data)); socket.on('enrichment:hydrabase', (data) => updateHydrabaseStatusFromData(data)); socket.on('enrichment:repair', (data) => updateRepairStatusFromData(data)); socket.on('enrichment:soulid', (data) => updateSoulIDStatusFromData(data));