4.4 KiB
4.4 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | P21PWA2-0 | P21PWA2执行合同刷新与主线最终冻结 | 新建 superseding CSV,冻结 canonical workflow deep link、离线守卫快照、approve/reject 草稿队列、PWA 缓存策略升级与 R10 主线最终里程碑。 | refresh CSV 校验通过,并明确 PWA-2 为 R10 主线最后一站且 supersede 旧 PWA-2 roadmap CSV。 | python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-12_04-32-13-p21-pwa-2-l5-offline-deeplink-refresh.csv | manual | DONE | DONE | DONE | issues/2026-03-12_04-32-13-p21-pwa-2-l5-offline-deeplink-refresh.csv | docs/integration-boundaries.md | docs/feature-matrix.md | [] | supersedes issues/2026-03-09_11-25-00-p21-pwa-2-l5-offline-deeplink.csv and freezes PWA-2 as mobile deep-link plus offline-approval scope |
| 3 | P21PWA2-1 | 移动审批深链入口与离线守卫快照 | 保持 `/workflow/tasks/:taskId` canonical 并新增移动环境自动跳转 `/mobile/approvals?taskId=<id>`,同时补齐仅含 `me+permissions` 的本地会话快照与离线守卫。 | 移动 / PWA / IM WebView 打开 canonical deep link 时自动进入移动审批页;离线冷启动在快照 24h 有效期内可进入移动审批壳且不保存 access token。 | cd client && npm run typecheck && npm run build | manual | DONE | DONE | DONE | client/src/pwa.ts | client/src/auth/AuthContext.tsx | client/src/router/guards.tsx | client/src/router/index.tsx | client/src/pages/WorkflowTaskDetailPage.tsx | ["P21PWA2-0"] | offline snapshot stays route-limited to /mobile/approvals and /workflow/tasks/:taskId only |
| 4 | P21PWA2-2 | 移动审批approve/reject离线草稿队列 | 为 MobileApprovalsPage 增加 `taskId` deep link、`approve/reject` last-write-wins 草稿队列、自动/手动重放与冲突提示,不支持 return/transfer 离线化。 | 在线动作不回归;离线可起草 approve/reject;`already_processed` / 权限漂移 / 404 会进入冲突态而不是静默吞掉。 | cd client && npm run typecheck && npm run build | manual | DONE | DONE | DONE | client/src/pages/MobileApprovalsPage.tsx | client/src/mobile/workflowActionQueue.ts | client/src/api/workflow.ts | ["P21PWA2-1"] | approve keeps empty body and reject keeps required comment |
| 5 | P21PWA2-3 | PWA缓存策略升级与IndexedDB helper收口 | 升级 vite-plugin-pwa runtime cache 为静态资源 StaleWhileRevalidate 与审批相关 GET API NetworkFirst,并新增共享 IndexedDB helper 供上传/盘点/审批队列复用。 | 核心壳可离线渲染;已缓存审批读取接口可离线回退;PWA-1 的上传与盘点队列语义不回归。 | cd client && npm run typecheck && npm run build | manual | DONE | DONE | DONE | client/vite.config.ts | client/src/mobile/indexedDbStore.ts | client/src/mobile/uploadQueue.ts | client/src/mobile/inventoryScanQueue.ts | client/src/mobile/workflowActionQueue.ts | ["P21PWA2-2"] | no custom sw.ts and no Background Sync or POST caching |
| 6 | P21PWA2-4 | PWA二期文档矩阵与主线闭环同步 | 同步 integration-boundaries、mobile checklist、feature matrix 与事实源校验器,明确 PWA-2 为浏览器 H5 deep-link 与离线审批草稿终版。 | 文档明确不做真实钉钉适配器/原生壳/完整离线登录;矩阵标题推进到 +PWA-2 且总数更新为 266。 | python3 scripts/validate-feature-matrix.py | manual | DONE | DONE | DONE | docs/integration-boundaries.md | docs/mobile/pwa-regression-checklist.md | docs/feature-matrix.md | scripts/validate-feature-matrix.py | ["P21PWA2-3"] | docs/domain-events.md stays unchanged for PWA-2 |
| 7 | P21PWA2-5 | P21PWA2回归与R10主线最终验收 | 执行前后端回归、PWA checklist 与 deep link/offline draft/conflict/guard 全量收口,形成 R10 主线正式闭环结论。 | 移动深链、离线草稿、联网重放、权限拒绝、缓存回退全部通过,且回归验证覆盖既有 PWA-1 与 workflow 主流程。 | cd server && npm run test && ./scripts/regression-workflow-actions.sh && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build && python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-12_04-32-13-p21-pwa-2-l5-offline-deeplink-refresh.csv && python3 scripts/validate-feature-matrix.py && git diff --check | manual | DONE | DONE | DONE | issues/2026-03-12_04-32-13-p21-pwa-2-l5-offline-deeplink-refresh.csv | docs/mobile/pwa-regression-checklist.md | client/src/pages/MobileApprovalsPage.tsx | client/vite.config.ts | ["P21PWA2-4"] | R10 mainline formally closes only after PWA-2 regression passes |