// static/sw.js — Odysseus PWA Service Worker // Strategy: // - HTML (navigation): stale-while-revalidate. Instant open from cache, // background refresh so the next open has latest HTML. // - JS/CSS (/static/*.js|.css): network-first, cache fallback for offline. // (So code/style edits show up on a normal reload, no manual cache clear.) // - Other static assets (images/fonts/libs): cache-first with bg refresh. // - API / non-GET: never cached. // Bump CACHE_NAME whenever the precache list or SW logic changes. const CACHE_NAME = 'odysseus-v378-shared-config-image-editor'; // Two lists, two jobs — they are no longer the same set and must not be // "resynced" back into one: // // PRECACHE = the app shell. Mirrors the