450f1de68a
When a navigation fetch failed and the cache had no entry for the exact URL (e.g. '/' while only 'index.html' is precached, common while the local server restarts), the fetch handler resolved respondWith() to undefined, producing 'TypeError: Failed to convert value to Response'. The navigate fallback now chains caches.match(request) -> cached index.html -> an explicit 503 offline Response. sw.js requests are network-only with the same offline Response (previously they fell into the navigate branch), and a new unit test loads sw.js in a VM sandbox covering navigate/cache/asset/api paths. SW cache v97 -> v98.