docs(P21PWA2-4,P21PWA2-5): PWA-2矩阵边界回归清单收口
这个提交包含在:
+20
-13
@@ -1,8 +1,8 @@
|
||||
# 集成边界冻结(P19 / P19+IM-1 / P19+ERP-3 / R10 / P19+MCP-1 / P19+AI-1 / P20+TRAVEL-1 / P20+TRAVEL-2 / P20+TRAVEL-3 / P21+PWA-1)
|
||||
# 集成边界冻结(P19 / P19+IM-1 / P19+ERP-3 / R10 / P19+MCP-1 / P19+AI-1 / P20+TRAVEL-1 / P20+TRAVEL-2 / P20+TRAVEL-3 / P21+PWA-1 / P21+PWA-2)
|
||||
|
||||
**快照日期**:2026-03-11
|
||||
**当前基线**:`P19+IM-1`、`P19+ERP-1`、`P19+ERP-2`、`P19+ERP-3`、`P19+MCP-1`、`P19+AI-1`、`P20+TRAVEL-1`、`P20+TRAVEL-2`、`P20+TRAVEL-3` 与 `P21+PWA-1` 已完成;当前运行时已落地企微群机器人 + 深链 + Outbox 异步派发的一期协同适配,以及 ERP 主数据 Pull、报销付款凭证切片、采购双阶段 journal / 归档摘要出站、资产台账摘要出站、Postgres MCP 只读工具基线、报销 / 采购 / 资产详情页 AI 只读建议挂件、差旅申请主单 / 行程段 / 审批预算锁定 / `travel_orders` 关联入站、混合双轨对公支付闭环与批次级对账摘要桥的三期差旅基线,以及浏览器 PWA 下的移动资产扫码、盘点快捷录入与离线队列重放。
|
||||
**目标**:在保持核心域稳定的前提下,冻结 ERP / IM / AI / MCP / TRAVEL / PWA 的长期边界,并记录 IM 一期、ERP 三期、AI 一期、差旅三期与 PWA 一期的已实现范围、禁入规则以及 R10 之后的固定主线顺序。
|
||||
**快照日期**:2026-03-12
|
||||
**当前基线**:`P19+IM-1`、`P19+ERP-1`、`P19+ERP-2`、`P19+ERP-3`、`P19+MCP-1`、`P19+AI-1`、`P20+TRAVEL-1`、`P20+TRAVEL-2`、`P20+TRAVEL-3`、`P21+PWA-1` 与 `P21+PWA-2` 已完成;当前运行时已落地企微群机器人 + 深链 + Outbox 异步派发的一期协同适配,以及 ERP 主数据 Pull、报销付款凭证切片、采购双阶段 journal / 归档摘要出站、资产台账摘要出站、Postgres MCP 只读工具基线、报销 / 采购 / 资产详情页 AI 只读建议挂件、差旅申请主单 / 行程段 / 审批预算锁定 / `travel_orders` 关联入站、混合双轨对公支付闭环与批次级对账摘要桥的三期差旅基线,以及浏览器 PWA 下的移动资产扫码、盘点快捷录入与离线队列重放、移动审批 deep link 直达、本地会话快照离线守卫与审批草稿重放。
|
||||
**目标**:在保持核心域稳定的前提下,冻结 ERP / IM / AI / MCP / TRAVEL / PWA 的长期边界,并记录 IM 一期、ERP 三期、AI 一期、差旅三期与 PWA 两期的已实现范围、禁入规则以及 R10 主线闭环后的固定收口结论。
|
||||
|
||||
## 1. 总体原则
|
||||
|
||||
@@ -190,11 +190,18 @@
|
||||
- 已把盘点录入固定在 `inventoryCheckId` 上下文内复用现有 `fetchInventoryChecks / startInventoryCheck / recordInventoryItems`,实现 `draft -> start`、`counting -> record`、`completed -> readonly` 三态,不新增移动专用后端协议。
|
||||
- 已新增 `IndexedDB` 离线队列,仅缓存“已解析出 `assetId` 的盘点结果”;联网后自动或手动重放,且以 `inventoryCheckId + assetId` 做 last-write-wins 去重。
|
||||
|
||||
### 5.8 PWA 一期明确不做
|
||||
- 不做原生 App、小程序、双栈移动壳,也不接企微 / 钉钉 / 浏览器私有扫码 SDK。
|
||||
- 不做 NFC、蓝牙、RFID、资产主数据全量离线镜像或完整离线盘点引擎。
|
||||
- 不做企微 / 钉钉深链直达、后台持续同步、复杂冲突合并;这些能力继续留给 `P21+PWA-2`。
|
||||
- 不改写现有资产台账详情路由,不新增 `/api/assets/lookup` 或其他移动专用后端路由。
|
||||
### 5.8 P21+PWA-2 已实现范围
|
||||
- 已保持 `workflow.task_assigned` 的 canonical `targetPath = /workflow/tasks/:taskId` 不变,并在客户端补齐移动 / PWA / IM WebView 环境下的自动兜底跳转:命中移动规则时统一落到 `/mobile/approvals?taskId=<id>`。
|
||||
- 已为移动审批补齐 `taskId` deep link 模式:待办即使不在第一页列表中,也可单独拉取详情;离线时若该待办曾被本地缓存,则允许直接在移动审批页内查看与起草草稿。
|
||||
- 已新增仅含 `me + permissions + savedAt` 的本地会话快照,不持久化 access token;离线冷启动时只允许 `/mobile/approvals` 与 `/workflow/tasks/:taskId` 两类路径进入壳页面。
|
||||
- 已新增 `approve / reject` 审批草稿队列,采用 `taskId` 级 last-write-wins 去重;恢复联网后支持自动或手动重放,并把 `already_processed` / 403 / 404 明确标记为冲突态。
|
||||
- 已升级 `vite-plugin-pwa` 的 runtime cache:静态资源使用 `StaleWhileRevalidate`,审批相关 GET API 使用 `NetworkFirst`,导航仍通过 `navigateFallback=/index.html` 回到 SPA 壳。
|
||||
|
||||
### 5.9 PWA 二期明确不做
|
||||
- 不做钉钉 / 企微真实消息适配器、JS-SDK、开放平台回调审批;本期仅承接同源 H5 deep link 打开体验。
|
||||
- 不做 Background Sync、Push、原生 App、小程序、双栈移动壳,也不把审批动作 POST 请求交给 Service Worker 代理。
|
||||
- 不做完整离线登录、全量待办镜像、复杂冲突合并或离线自动修复;未缓存的待办详情离线仍要求联网重试。
|
||||
- 不改写现有 workflow 动作 API,不给 `approve` 新增 comment,也不把 `return / transfer` 纳入离线草稿范围。
|
||||
|
||||
## 6. 事件与通知交付规范
|
||||
|
||||
@@ -254,8 +261,8 @@
|
||||
## 9. R10 后续路线冻结
|
||||
|
||||
### 9.1 固定主线顺序
|
||||
- `P21+PWA-1` 已完成后,当前固定后续主线顺序为:`P21+PWA-2`。
|
||||
- 历史主线顺序仍保持:`P19+MCP-1 -> P19+AI-1 -> P20+TRAVEL-1 -> P20+TRAVEL-2 -> P20+TRAVEL-3 -> P21+PWA-1 -> P21+PWA-2`。
|
||||
- `P21+PWA-2` 已完成后,`R10` 主线正式闭环;后续若进入新阶段,必须通过新的路线合同显式启动。
|
||||
- 历史主线顺序保持为:`P19+MCP-1 -> P19+AI-1 -> P20+TRAVEL-1 -> P20+TRAVEL-2 -> P20+TRAVEL-3 -> P21+PWA-1 -> P21+PWA-2`。
|
||||
- 后续阶段继续遵循“先治理,再工具,再建议,再业务,再移动”的总顺序,不并行开启两个重业务 phase。
|
||||
- 每个 phase 固定遵循:`执行合同 CSV -> 方案批准 -> 开发 -> 测试 -> 文档矩阵收口 -> 合并 main`。
|
||||
|
||||
@@ -272,8 +279,8 @@
|
||||
|
||||
### 9.4 PWA 兑现顺序
|
||||
- `P21+PWA-1` 已完成移动资产扫码与盘点增强,优先兑现一线资产作业的生产价值,并固定采用浏览器 PWA + 离线队列重放路线。
|
||||
- `P21+PWA-2` 固定后做离线动作队列增强与企微深链增强,继续复用现有 `APP_ORIGIN + targetPath` 深链规范。
|
||||
- PWA 路线继续限定在浏览器 / PWA 栈内,不引入原生 App、小程序或双栈移动壳。
|
||||
- `P21+PWA-2` 已完成移动审批 deep link、离线守卫、本地草稿重放与缓存策略升级,继续复用现有 `APP_ORIGIN + targetPath` 深链规范且不改写服务端通知协议。
|
||||
- PWA 路线已按浏览器 / PWA 栈闭环,不引入原生 App、小程序或双栈移动壳。
|
||||
|
||||
### 9.5 后置 backlog
|
||||
- `P19+IM-2 / IM-3 / IM-4`、`P22+VEH-1`、`P22+ASSET-FIN-1` 明确列为后置 backlog,本轮不进入主线。
|
||||
|
||||
在新工单中引用
屏蔽一个用户