From 8c8e25a08348889fdfeeab62a910cc491e7760a2 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 18 Aug 2026 07:21:12 -0700 Subject: The service worker learns what must stay live: same-origin API paths — esplora, sp, lnurl, well-known — go straight to network, never the cache that froze a refresh on a stale unconfirmed 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_01JtaatFfAbx91Nh3xqKVqKz --- build.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'build.js') diff --git a/build.js b/build.js index 8abf5fb..0c8cba2 100644 --- a/build.js +++ b/build.js @@ -74,7 +74,13 @@ self.addEventListener('activate', (e) => { self.addEventListener('fetch', (e) => { const req = e.request; if (req.method !== 'GET') return; - if (new URL(req.url).origin !== self.location.origin) return; // explorer/ws → network + const u = new URL(req.url); + if (u.origin !== self.location.origin) return; // explorer/ws → network + // Live API paths served from OUR origin (esplora, sp indexer, lnurl, + // well-known) must never be cached: a chain answer frozen at first sight + // wedges every flow that polls it (a refresh once waited forever on a + // cached "unconfirmed"). Straight to network, always. + if (/^\\/(esplora|sp|lnurlp|electrum)\\//.test(u.pathname) || u.pathname.startsWith('/.well-known/')) return; if (req.mode === 'navigate') { e.respondWith( -- cgit v1.2.3