1.5 KiB
1.5 KiB
当前证据:PWA 跨版本升级缺口
已有保护
- VitePWA:
autoUpdate、skipWaiting、clientsClaim、cleanupOutdatedCaches。 - 应用更新:新 worker installed 时清理 known runtime/precache;非 auth 页面自动 apply,auth 页面提示用户确认。
- 旧包检测:页面回前台时用
cache: no-store请求/ready,build SHA 不一致则提示刷新。 - chunk 恢复:
vite:preloadError、window error 和 unhandled rejection 命中 chunk load 模式时,清 cache 后最多 reload 一次。
现有测试证明范围
login-portal-ux.spec.ts证明 synthetic update event 和/readymismatch 时 UI/刷新回调正确。- production build 会生成真实
sw.js与 Workbox precache。 - 08-10 会话 fixture 任务证明 Service Worker 在 production runner 中确实取得网络所有权。
未证明范围
- 没有测试先让 build A 的真实 worker 控制页面并建立 cache,再在同一 origin/profile 切换 build B。
- 没有证明重访后 document bundle、controller、cache 与 session 同时收敛到 B。
- 没有证明旧-only hashed chunk 被清理、不会产生 chunk 404、reload loop 或
/login回落。 - fresh profile 直接打开 B 与上述问题无关,不能填补证据缺口。
规划结论
需要一个不使用 Playwright route mock 的 loopback production-build harness。验证先于修复;失败时应输出产品 finding,而不是在同一任务中边改 PWA 策略边把测试修绿。