WARCH3/WCHECK1/WEXT1 完成受控上线后续自动化

Issue: WARCH3, WCHECK1, WEXT1
这个提交包含在:
2026-05-20 13:58:40 +08:00
父节点 512a58d40e
当前提交 56b720b8ab
共修改 28 个文件,包含 2909 行新增和 72 行删除
+14 -1
查看文件
@@ -128,7 +128,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
| WADM1 | 已完成 docs-only 数据模型设计:固定企微审批留存、回调事件、补偿拉取、对账 finding、打卡/人事快照边界、隐私权限和 WARCH1 最小实现切片;不改 schema、不部署、不写业务数据 | `issues/2026-05-19_21-55-33-wecom-archive-mirror-data-model-design-v1.csv` |
| WARCH1 | 已实现并部署验证最小审批历史留存:新增 Prisma 留存表和 migration、回调 DB 入库、补偿拉取双开关入库、离线 OA DB 读取 runner;公网已写入 OA 留存 2 条请假/补卡历史并离线可读,历史回调 gap 已审计化 | `issues/2026-05-19_22-32-06-wecom-approval-archive-minimum-v1.csv`、`/app/artifacts/qa-flow/wecom-approval-compensation-poc-20260519T160306Z/summary.json`、`/app/artifacts/qa-flow/wecom-approval-archive-20260519T160330Z/summary.json` |
| WARCH2 | 已实现并部署验证正式只读历史查询:新增企微审批历史 API、PC/移动历史页、分层权限和脱敏白名单;只读 OA DB,不调用企微 API;远端离线归档复跑可读 2 条请假/补卡历史,保留历史 callback gap finding | `issues/2026-05-20_00-26-04-wecom-approval-archive-query-v1.csv`、`/app/artifacts/qa-flow/wecom-approval-archive-20260520T013610Z/summary.json`、`server/src/routes/wecomApprovalArchive.js`、`client/src/pages/WecomApprovalArchivePage.tsx` |
| WROAD2+OPS | 当前受控上线与每日巡检合同:试用范围固定测试账号,3 天每日脚本化触发;巡检可写 OA 自建留存库但不写企业微信,不安装定时任务;Day 0 公网报告 `/app/artifacts/qa-flow/wroad2-ops-20260520-041941/summary.json` 为 `PASS_WITH_FINDINGS`,企微 runtime、补偿归档、离线归档读取和隐私扫描通过,finding 为缺 live smoke 登录凭据/pending OCR 子检查异常以及历史 callback gap,不阻断受控试用 | `issues/2026-05-20_11-30-22-wroad2-ops-controlled-launch-v1.csv`、`scripts/qa/run-wroad2-ops-daily.sh` |
| WROAD2+OPS | 当前受控上线与每日巡检合同:试用范围固定测试账号,3 天每日脚本化触发;巡检可写 OA 自建留存库但不写企业微信;Day 0 公网报告 `/app/artifacts/qa-flow/wroad2-ops-20260520-041941/summary.json` 为 `PASS_WITH_FINDINGS`,企微 runtime、补偿归档、离线归档读取和隐私扫描通过,finding 为缺 live smoke 登录凭据/pending OCR 子检查异常以及历史 callback gap,不阻断受控试用;WARCH3 已承接后续 07:30 systemd 自动巡检 | `issues/2026-05-20_11-30-22-wroad2-ops-controlled-launch-v1.csv`、`scripts/qa/run-wroad2-ops-daily.sh` |
## 当前门禁
@@ -454,6 +454,19 @@ Go 结论边界:
结论:当前可以关闭 `WF8-11`、`R7E-9`、`R7E-15`、`R7E-17`、`R7E-18`、`R7E-19`、`R7E-20`、`QAOPS8-17`、`QAOPS8-19`、`QAOPS8-20` 和 BIZ8 阶段流。`R7E-14` 已按付款批次延期到 P2 的变更口径收口;P2-FIN 决策准备已完成,后续优先级为 `P2-FIN-V1` 独立实现合同、图片 OCR 样票治理、UX8 真机反馈、审批通知和轻业务增强。P2 功能开发必须另建或延续对应连续合同,本报告不启动新功能。
## WARCH3 / WCHECK1 / WEXT1 受控上线后续
执行时间:2026-05-20。WROAD2 Day 0 公网巡检 `/app/artifacts/qa-flow/wroad2-ops-20260520-041941/summary.json` 为 `PASS_WITH_FINDINGS` 后,后续路线按“受控上线稳定化 -> 打卡摘要留存 -> 外出/加班 dry-run -> 小范围真实试用”推进。
| 项 | 当前结果 | 证据和边界 |
| --- | --- | --- |
| WARCH3 自动巡检 | 公网已验证,`PASS_WITH_FINDINGS` | 新增 `scripts/qa/run-warch3-ops-daily.sh`、`deploy/trialrun/install-warch3-ops-timer.sh` 和 `npm run send:wecom-ops-alert`;服务器已安装 `hyb-oa-warch3-ops.timer`,下次触发为 2026-05-21 07:30 CST;手动 service 报告 `/app/artifacts/qa-flow/warch3-ops-20260520-054841/summary.json` 为 `PASS_WITH_FINDINGS`,告警报告 `/app/artifacts/qa-flow/wecom-ops-alert-20260520T054851Z/summary.json` 为 `PASS_ALERT_SENT_WITH_CONFIG_GAPS`,已向有效管理员 `HYD000006` 发送脱敏消息,`wangshunli` 仅作为非员工号别名 gap 记录 |
| WCHECK1 打卡摘要留存 | 公网已验证,live/offline 均通过 | 新增打卡日/月摘要、规则快照、`wecomCheckinArchive` 服务和 `npm run check:wecom-checkin-summary-archive`;live 报告 `/app/artifacts/qa-flow/wecom-checkin-summary-archive-20260520T054907Z/summary.json` 为 `PASS_CHECKIN_ARCHIVE_READY`,本窗口 0 条打卡明细、2 条规则快照已写 OA 留存;offline 报告 `/app/artifacts/qa-flow/wecom-checkin-summary-archive-20260520T054926Z/summary.json` 为 `PASS_CHECKIN_ARCHIVE_OFFLINE_READY` |
| WEXT1 外出/加班 | 公网 dry-run 通过,live 未批准 | `npm run check:wecom-approval-fixtures` 支持 `--target=outing --target=overtime`;公网报告 `/app/artifacts/qa-flow/wecom-approval-fixtures-20260520T054940Z/summary.json` 为 `PASS_FIXTURE_DRY_RUN_READY`;本轮只构建最小通用模板和审批申请 payload,不创建企微模板、不提交审批单 |
| 隐私边界 | 保持 | 报告和告警只输出状态、计数、报告路径、脱敏 userid/template/sp_no 前缀;不输出手机号、邮箱、token、Secret、完整外部键、位置、人脸、设备明文、表单值、附件、评论或原始 payload |
上述能力仍不代表完整审批镜像、应急接管、恢复回写或 RuleOps 已完成。WREAL1 小范围真实试用需等 WROAD2 三天验收、WARCH3/WCHECK1/WEXT1 公网结果可解释后再单独问答确认。
## 历史恢复
需要追溯 R70-R91 的详细流水时,使用: