From 9d12667de3d5bcd4c8f9815b143fcfb4aad4eb7c Mon Sep 17 00:00:00 2001 From: Agent Date: Thu, 12 Mar 2026 01:19:51 +0000 Subject: [PATCH] Fix status flicker during WebSocket reconnect loop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit connect() was unconditionally calling setStatus('connecting', ...) at the top of each attempt, which flickered over "Disconnected — retrying..." every 3 seconds during the retry loop. Fix: only show "Connecting..." on the very first attempt (everConnected is false). Once a connection has been established, preserve the "Disconnected — retrying..." state across all subsequent reconnect cycles until onopen fires. Also reset everConnected on Save so pointing at a new server correctly shows "Connecting..." from a clean slate. Co-Authored-By: Claude Opus 4.6 --- renderer/renderer.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/renderer/renderer.js b/renderer/renderer.js index dd07722..00ba620 100644 --- a/renderer/renderer.js +++ b/renderer/renderer.js @@ -56,7 +56,12 @@ function connect() { } clearReconnectTimer(); - setStatus('connecting', 'Connecting...'); + // Only show "Connecting..." on the very first attempt. + // Once we've ever connected, we're in a reconnect loop — preserve + // "Disconnected — retrying..." until onopen fires so there's no flicker. + if (!everConnected) { + setStatus('connecting', 'Connecting...'); + } try { ws = new WebSocket(getWsUrl()); @@ -249,7 +254,8 @@ async function init() { saveBtn.classList.remove('saved'); }, 1500); - // Reconnect with new settings + // Reconnect with new settings (treat as fresh connection) + everConnected = false; connect(); } catch (e) { console.error('Failed to save config:', e);