From 89ee463e94727d0bb605d956cd5c61a33a426a4a Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sat, 15 Aug 2026 11:51:18 -0700 Subject: A downed notifier no longer vetoes new connections — only the user's own denial does; self-hosted builds create tab-answering connections and arm background when they can MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv --- src/features/nwc.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/features/nwc.js b/src/features/nwc.js index 90ccb84..ef34373 100644 --- a/src/features/nwc.js +++ b/src/features/nwc.js @@ -638,10 +638,13 @@ export function nwcFeature(ctx) { try { await enableBackground(); } catch (e) { - // Denied at the prompt (or dismissed it) — anything else is a real - // failure whose message is more useful than a permissions lecture. + // Denied at the prompt (or dismissed it): that's the user's call and + // the connection is refused. But permission GRANTED with the plumbing + // failing (notifier down, a self-hosted build with no notifier at all) + // must not hold the connection hostage — it still answers from open + // tabs, and ensureBackground keeps retrying the arming on every start. if (Notification.permission !== 'granted') throw new Error(t('nwcNotifNeeded')); - throw e; + console.warn('nwc: background arming failed, creating the connection anyway:', e.message); } const s = load(); delete s.backgroundOff; save(s); } -- cgit v1.2.3