The shell cache was cache-first: once a browser had static/css/mobile.css cached, nothing in the fetch handler ever re-requested it, so every CSS/JS fix shipped since install stayed invisible (exactly what happened with the crest becoming round -- an already-loaded app kept showing the old hexagon). Switched to network-first with a cache fallback for offline use only, and bumped the cache name so existing installs drop their stale v1 cache on next activation. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ECGMEwrc2k4D8VQuwjstj9