370d62270b
The post-deploy blank/slow load: new hashed chunks weren't in Cloudflare yet, so the first visitor pulled them cold from the residential origin — AND the service worker simultaneously precached ~30 of those cold assets (a request storm), pushing past the 7s boot timeout. * sync-static.sh now warms the CF edge cache (fetches every immutable asset through the public domain) so the first visitor gets HITs, not cold-origin. * Service worker no longer bulk-precaches on install (the browser already caches immutable assets for a year); it caches the shell + assets lazily as used. No more storm. * Boot-recovery timeout 7s → 10s so a merely-slow load doesn't flash the card. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>