文件
hyb-oa/.trellis/tasks/archive/2026-08/08-10-pwa-cross-version-cache-upgrade-validation/research/current-evidence.md
T

1.5 KiB
原始文件 Blame 文件历史

当前证据: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 和 /ready mismatch 时 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 策略边把测试修绿。