site: workbox service worker — precached shell, SWR atlas data
generateSW from workbox-config.cjs (no build step introduced): 30 URLs /
~600kB precached with content-hash revisions, atlas*.json runtime-cached
stale-while-revalidate, /api and functions untouched (network-only).
registration lives in ui.js so every page gets it.
site/deploy.sh chains regenerate → wrangler --branch=main; the generated
sw.js is committed so the 6h atlas prefect flow (which deploys from a
fresh clone) keeps serving it.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>