From f9a2312a583ebd2b3e505272f6a4e446615b7421 Mon Sep 17 00:00:00 2001 From: "Tommy D. Rossi" Date: Sat, 3 Jan 2026 17:36:18 +0100 Subject: [PATCH] diconnect tabs on close of ws --- extension/src/background.ts | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/extension/src/background.ts b/extension/src/background.ts index 9009304..e1ce2aa 100644 --- a/extension/src/background.ts +++ b/extension/src/background.ts @@ -252,10 +252,26 @@ class ConnectionManager { continue } - // Try to connect silently in background - don't show 'connecting' badge - // Individual tab states will show 'connecting' when user explicitly clicks - try { - await this.ensureConnection() + // Ensure tabs are in 'connecting' state when WS is not connected + // This handles edge cases where handleClose wasn't called or state got out of sync + const currentTabs = store.getState().tabs + const hasConnectedTabs = Array.from(currentTabs.values()).some((t) => t.state === 'connected') + if (hasConnectedTabs) { + store.setState((state) => { + const newTabs = new Map(state.tabs) + for (const [tabId, tab] of newTabs) { + if (tab.state === 'connected') { + newTabs.set(tabId, { ...tab, state: 'connecting' }) + } + } + return { tabs: newTabs } + }) + } + + // Try to connect silently in background - don't show 'connecting' badge + // Individual tab states will show 'connecting' when user explicitly clicks + try { + await this.ensureConnection() store.setState({ connectionState: 'connected' }) // Re-attach any tabs that were in 'connecting' state (from a previous disconnect)