From 790d7084af5990d09c554f9c4c7caae3f2d1ee0a Mon Sep 17 00:00:00 2001 From: Linus Rath Date: Thu, 9 Apr 2026 22:19:56 +0200 Subject: [PATCH] fix: restore service worker and add manifest icons --- public/icon-192x192.png | Bin 0 -> 4276 bytes public/icon-512x512.png | Bin 0 -> 15365 bytes public/screenshot-1280x720.png | Bin 0 -> 14573 bytes public/screenshot-540x720.png | Bin 0 -> 8675 bytes public/sw.js | 24 +++++++----------------- 5 files changed, 7 insertions(+), 17 deletions(-) create mode 100644 public/icon-192x192.png create mode 100644 public/icon-512x512.png create mode 100644 public/screenshot-1280x720.png create mode 100644 public/screenshot-540x720.png diff --git a/public/icon-192x192.png b/public/icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..f5a709ad8b70151380273af976392948e19c119c GIT binary patch literal 4276 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 W%^K^KA^JH00000>*iZ(2kIltV1e0m0g&5SBPv` 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 literal 0 HcmV?d00001 diff --git a/public/screenshot-540x720.png b/public/screenshot-540x720.png new file mode 100644 index 0000000000000000000000000000000000000000..35ebaa39bbe0658ff2ae10ebe1952e42dfab5e70 GIT binary patch literal 8675 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 HrI`N#4&T({ literal 0 HcmV?d00001 diff --git a/public/sw.js b/public/sw.js index db44454a..4110d0c8 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,26 +1,16 @@ /* eslint-disable no-undef */ -// Self-destructing service worker. -// -// The previous version of this file used a cache-first strategy with no -// dev-mode guard, which pinned stale JS/HTML chunks until a hard reload. -// This replacement unregisters itself and wipes all caches as soon as the -// browser picks it up. Browsers re-fetch sw.js on every navigation to check -// for updates, so any client running the old worker will swap to this one -// on their next page load and then lose the worker entirely. +// Minimal service worker – satisfies the PWA installability requirement +// without caching any assets. All requests fall through to the network, +// so there is no risk of serving stale chunks after a deployment. self.addEventListener("install", () => { self.skipWaiting(); }); self.addEventListener("activate", (event) => { - event.waitUntil( - (async () => { - const cacheNames = await caches.keys(); - await Promise.all(cacheNames.map((name) => caches.delete(name))); - await self.registration.unregister(); - const clients = await self.clients.matchAll({ type: "window" }); - clients.forEach((client) => client.navigate(client.url)); - })(), - ); + event.waitUntil(self.clients.claim()); }); + +// Network-only fetch handler – no caching. +self.addEventListener("fetch", () => {});