5b8d2d5c06
A previous version of Agora deployed at agora.spot shipped a precaching service worker that is still controlling returning browsers and serving them stale HTML/JS — they never see new deploys. The fix has three parts: 1. public/sw.js — on activate, delete every Cache Storage entry the old SW left behind. This SW has no fetch handler, so once it takes over nothing re-populates the cache. 2. src/main.tsx — register /sw.js unconditionally on every web page load. Previously only usePushNotifications registered it, which meant users who never visited NotificationSettings stayed pinned to the old SW forever. Native (Capacitor) skips this — there is no stale SW on the filesystem origin. 3. .gitlab-ci.yml — the deploy-web rsync was excluding sw.js from the first pass and never re-adding it to the second pass, so deploys silently never updated sw.js. Now it ships in the second pass alongside index.html (after hashed assets land).