From 7e78a4feef502e13d584585b013da27106eaf9c5 Mon Sep 17 00:00:00 2001 From: Juan Castro Date: Tue, 27 Oct 2026 14:18:07 -0400 Subject: [PATCH] fix(gui): the service worker never reuses cached imports The worker is registered with updateViaCache set to none, so the scripts it imports are fetched fresh on every update check. --- src/gui/src/helpers/pushWorker.js | 3 ++- src/gui/src/helpers/pushWorker.test.js | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/src/helpers/pushWorker.js b/src/gui/src/helpers/pushWorker.js index 8e462ef43..73cb78d62 100644 --- a/src/gui/src/helpers/pushWorker.js +++ b/src/gui/src/helpers/pushWorker.js @@ -157,7 +157,8 @@ export const startPushWorker = async ({ dispatchPushTap(event.data.notification); }); try { - await nav.serviceWorker.register(WORKER_URL, { scope: '/' }); + // Scripts the worker imports are fetched fresh on each update check. + await nav.serviceWorker.register(WORKER_URL, { scope: '/', updateViaCache: 'none' }); } catch ( err ) { console.warn('Could not register the service worker:', err); } diff --git a/src/gui/src/helpers/pushWorker.test.js b/src/gui/src/helpers/pushWorker.test.js index c33dfe80f..d233a46f6 100644 --- a/src/gui/src/helpers/pushWorker.test.js +++ b/src/gui/src/helpers/pushWorker.test.js @@ -217,7 +217,7 @@ describe('startPushWorker', () => { mod.setPushTapHandler(handler); const nav = makeNav(); await start(mod, { nav }); - expect(nav.serviceWorker.register).toHaveBeenCalledWith('/sw.js', { scope: '/' }); + expect(nav.serviceWorker.register).toHaveBeenCalledWith('/sw.js', { scope: '/', updateViaCache: 'none' }); const source = { postMessage: vi.fn() }; nav.listeners.message({ data: { type: 'other', notification: { uid: UID } }, source });