From 1b981591d4e636b9752837eedc923f3c55f83fe1 Mon Sep 17 00:00:00 2001 From: Honey Date: Sat, 25 Apr 2026 18:02:05 +0200 Subject: [PATCH] fix: switch SW to network-first strategy so PWA always gets fresh updates Cache-first meant users were stuck on old versions until manual cache clear. Network-first fetches live, updates cache, falls back to cache when offline. Co-Authored-By: Claude Sonnet 4.6 --- sw.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sw.js b/sw.js index deedf0f..6504982 100644 --- a/sw.js +++ b/sw.js @@ -1,4 +1,4 @@ -const CACHE = 'ns-v20'; +const CACHE = 'ns-v21'; const PRECACHE = ['/', 'index.html', 'styles.css', 'app.js', 'sw.js', 'manifest.json', 'icon.svg']; const SKIP_URLS = ['/rest/stream', '/rest/download', '/config.js']; @@ -19,14 +19,14 @@ self.addEventListener('activate', e => { self.addEventListener('fetch', e => { if (SKIP_URLS.some(u => e.request.url.includes(u))) return; e.respondWith( - caches.match(e.request).then(cached => - cached || fetch(e.request).then(res => { + fetch(e.request) + .then(res => { if (res.status === 200 && e.request.method === 'GET') { const clone = res.clone(); caches.open(CACHE).then(c => c.put(e.request, clone)); } return res; - }).catch(() => cached) - ) + }) + .catch(() => caches.match(e.request).then(r => r || Response.error())) ); });