lib/useServiceWorker.ts registers /sw.js in a useEffect and console.log('Service Worker registered:', registration) on every page load. There is also components/ServiceWorkerRegistrar.tsx doing registration — if both are mounted the SW is registered twice. There is no updatefound / controllerchange handling, so a shipped sw.js change never activates for existing users (the CHANGELOG already notes an "always-caching service worker" incident). Consolidate to one registrar with update handling and drop the console noise.
Filed from a codebase review pass.
lib/useServiceWorker.tsregisters/sw.jsin auseEffectandconsole.log('Service Worker registered:', registration)on every page load. There is alsocomponents/ServiceWorkerRegistrar.tsxdoing registration — if both are mounted the SW is registered twice. There is noupdatefound/controllerchangehandling, so a shippedsw.jschange never activates for existing users (the CHANGELOG already notes an "always-caching service worker" incident). Consolidate to one registrar with update handling and drop the console noise.Filed from a codebase review pass.