20 KiB
人工试运行报告
文档状态:当前试运行证据摘要。 适用时间:DCL7 之后。
DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开关和旧公网状态误导当前工作。历史全文可通过 git 恢复:git show 5da05eb:docs/trialrun/人工试运行报告.md。
当前结论
- R6 首轮小范围试运行已通过;范围是报销、请假、采购、审批、企业微信入口/通知、财务付款/导出。
- PC6、PA6、FL6、AP6、RI6、LP6、ME6 自动化、QG6、DG7/MRF7、MIA7 已完成相应收口。
- 2026-05-13 用户完成 iPhone 12、iPhone 14、Redmi K60 企业微信代表性真机主流程复测,
ME6-3已按主流程门禁关闭;iPhone 12 图文上下间距偏紧按非阻断观察项记录。 - MIF7-1..7 与 MIF7T 已完成本地整改、公网部署、公网匿名复检和带凭据 live smoke/OCR 复检;2026-05-13 已将包含
cf2bba0的 MIF7T 代码部署到https://oa.hyinda.com。 - MIF7TD 收口报告为
artifacts/qa-flow/live-smoke-readiness-20260513-115455/:公网 live smoke3 passed,真实 OCR1 passed,样票为重复发票可解释终态;pending OCR因本地未注入DATABASE_URL记录SKIP,不作为 MIF7-7 硬阻断。 - R7/OPS7/DOC7 是准备材料;R7EP 自动门禁和 OPS8 只读检查已完成,可进入 R7E 人工确认环节;真实 R7 仍未启动,需用户确认人员、窗口、回滚联系人、问题登记负责人和每日收口节奏。
- 2026-05-13 后续计划调整直接回写现有 R7EP、OPS8、QAF8、UX8、P2T 合同,不新建专门调整 Issue;调整后 R7EP 门禁可并行执行,OPS8-1/2/4 纳入 R7EP Go/No-Go,UX8 和 P2T 候选按真实反馈并行推进。
- ORG8 组织账号与权限主数据已完成本地代表性角色验收和阶段收口;该结论只覆盖本地自动化/只读/注入验证,不代表 R7E 真实人工试运行已启动或完成。
关键证据索引
| 批次 | 当前状态 | 证据入口 |
|---|---|---|
| R6 | 已通过 | issues/2026-05-11_10-23-41-r6-small-trialrun-prep.csv |
| PS6 | 采购提交阻断已修复 | issues/2026-05-12_01-12-20-r6-purchase-submit-budget-precheck-hotfix.csv |
| PC6 | PC 工作台与审批信息架构已完成 | issues/2026-05-12_01-40-00-r6-pc-workbench-ia-polish.csv |
| PA6 | 权限与审计回归已完成 | issues/2026-05-12_01-46-00-r6-permission-audit-regression.csv |
| FL6 | 财务台账/导出增强已完成 | issues/2026-05-12_01-43-00-r6-finance-ledger-export-v1.csv |
| AP6 | 审批催办、超时提醒和效率摘要已完成 | issues/2026-05-12_01-42-00-r6-approval-productivity-v1.csv |
| RI6 | 报销票据体验已完成 | issues/2026-05-12_01-44-00-r6-reimbursement-invoice-polish-v1.csv |
| LP6 | 请假采购体验已完成 | issues/2026-05-12_01-45-00-r6-leave-procurement-polish-v1.csv |
| ME6 | 自动化、公网视觉和代表性企业微信真机门禁已完成 | issues/2026-05-12_01-41-00-r6-mobile-experience-second-pass.csv |
| QG6 | QA 治理已完成 | issues/2026-05-12_01-47-00-r6-qa-governance-upgrade.csv |
| MIA7 | 移动信息架构审查已完成 | issues/2026-05-12_21-48-39-mobile-ia-visual-flow-review.csv |
| MIF7 | 已收口;本地整改、返回语义、部署、公网匿名、真机门禁、带凭据 live smoke/OCR 均已通过 | issues/2026-05-12_21-48-40-mobile-ia-flow-remediation.csv、issues/2026-05-13_00-38-05-mif7-follow-up-return-and-release.csv、issues/2026-05-13_11-37-02-mif7t-deploy-live-closeout.csv、artifacts/qa-flow/live-smoke-readiness-20260513-115455/summary.json |
| MIF7T | 真机反馈移动体验统一整改已部署并完成公网复检 | issues/2026-05-13_09-18-05-mif7-real-device-feedback-mobile-unification.csv、issues/2026-05-13_11-37-02-mif7t-deploy-live-closeout.csv |
| ORG8 | 组织账号和权限主数据本地代表性验收已收口;不替代 R7E 真实人工试运行 | issues/2026-05-13_18-23-51-org8-master-data-permission.csv |
当前门禁
| 门禁 | 状态 | 说明 |
|---|---|---|
| 公网地址 | 可用 | https://oa.hyinda.com |
/ready |
通过 | 2026-05-13 curl -fsS https://oa.hyinda.com/ready 返回 ok=true |
| 企业微信个人应用消息 | 正式通知通道 | 企业微信只做入口、身份、消息和 deeplink |
ME6-3 真机抽查 |
已关闭 | 2026-05-13 用户确认 iPhone 12、iPhone 14、Redmi K60 企业微信主流程通过;iPhone 12 间距偏紧为非阻断观察项 |
| MIF7-7 | 已关闭 | MIF7T 已部署;公网 /ready、public bundle、公网 MIF7 移动矩阵、带凭据 live smoke/OCR 均通过 |
| R7 真实执行 | 未启动 | 草案不等于启动 |
R7EP / OPS8 / QAF8 / UX8 / P2T 预检推进
执行时间:2026-05-13 14:10-15:25 前后。
| 检查项 | 结果 | 证据 |
|---|---|---|
| R7EP 公网匿名健康 | 通过 | curl -fsS https://oa.hyinda.com/ready 返回 ok=true;PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs:scanned=57,focused=4,findings=0 |
| R7EP 带凭据 live readiness | 通过,含非阻断 pending OCR SKIP | 报告 artifacts/qa-flow/live-smoke-readiness-20260513-141253/;live smoke 3 passed,真实 OCR 1 passed;pending OCR 因本地未注入 DATABASE_URL 记录 SKIP |
| R7EP 公网移动矩阵 | 通过 | cd client && E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts --workers=1 --reporter=list,5 passed |
| R7EP 核心业务流 | 分段通过 | 长组合命令在当前工具会话中不稳定中断,不采用不完整 summary.json 作为通过证据;采用同一 groups 的可追溯分段结果:business-flow-20260513-142857/summary.txt 中 reimbursement/approval/leave/procurement PASS,business-flow-20260513-145759/summary.txt 中 approval PASS,business-flow-20260513-144801/summary.txt 中 governance PASS |
| R7EP 账号角色只读核验 | 通过 | 只读 SQL 证据 artifacts/qa-flow/r7ep-account-role-readonly-20260513-152121/;SMOKE002、SMOKE101、SMOKE201、SMOKE301、SMOKE302、SMOKE001、wangzhiling、wangshunli 均为 active;角色、直属主管、企业微信绑定布尔状态已核验;SMOKE001 和 admin role 当前无 pending 审批任务,财务角色无 admin 混授 |
| OPS8 最小准备 | 已补文档并通过远端只读检查 | docs/trialrun/OPS7运维交接Runbook.md 已补当前部署版本追踪、SYNC_ENV=0 口径、备份/回滚占位和 live readiness 归档规则;OPS8-3 远端只读证据 artifacts/qa-flow/ops8-remote-readonly-20260513-152024/,Caddy active,compose db/server Up,Prisma migration up to date |
| QAF8 覆盖刷新 | 已补文档 | docs/测试规约与回归门禁.md 已补当前最小回归组合、本地/公网匿名/带凭据门禁边界、R108/R109 历史专项分类 |
| UX8 反馈池 | 阶段性收口 | 本轮未新增 UX8 代码实现;iPhone 12 间距、详情扫读性、财务摘要、移动采购创建和列表卡片反馈继续按真实反馈进入后续项 |
| P2T 候选盘点 | 已补文档 | docs/海音达OA-MVP需求规格说明书.md 已补 P2T 候选优先级:组织账号主数据、审批通知扩展、OCR/票据增强、费用预算项目轻量增强、运维上线增强;冻结项继续不进入当前实现 |
R7E 结论:公网、live smoke/OCR、移动矩阵、核心业务流、账号角色只读核验和 OPS8 远端只读状态检查均已通过,可进入 R7E 人工确认环节;但真实 R7 仍未启动。启动前仍需用户最终确认参与名单、时间窗口、回滚联系人、问题登记负责人、每日收口节奏和暂停/回滚决策人。
ORG8 组织账号与权限主数据验收
执行时间:2026-05-13。
| 检查项 | 结果 | 证据 |
|---|---|---|
| 主管、审批人和角色风险只读审计 | 通过 | disabled_manager_chain=0;inactive_pending_assignees=0;roles_without_active_holder=0;admin_only_pending=0;approval_rules_use_admin=0;finance_admin_mixed_roles=0 |
| 新员工账号和企业微信绑定流程 | 通过 | cd server && npm test -- tests/unit/routes/users.write.test.js tests/unit/routes/users.import.test.js tests/unit/routes/users.list.test.js tests/unit/routes/employees.patch.test.js tests/unit/routes/auth.login.test.js tests/unit/routes/wecomAuth.test.js tests/unit/routes/workflow.permissions.test.js,7 files,33 tests passed |
| 禁用、启用回滚和角色变更审计 | 通过 | 本地 Fastify route 注入验证覆盖 disable -> archived + session revoke + SYSTEM_USER_DISABLED;enable -> active + SYSTEM_USER_ENABLED;roles set -> SYSTEM_USER_ROLES_SET;inactive login -> AUTH_003 |
| 前端入口和权限直连 | 通过 | permission-direct-access.spec.ts 中前端直连备用路径、员工自助直连、角色入口矩阵、后端直连接口、请假采购自审和 admin-only 拒绝用例均已通过 |
结论:ORG8 可作为组织账号和权限主数据的阶段性完成证据。该验收是本地代表性验证,不包含真实参与人名单、试运行时间窗口、回滚联系人、问题登记负责人或每日收口节奏;这些人工确认仍归 R7E。
MIF7-7 非人工自动化补验
执行时间:2026-05-13 01:35 前后。
| 检查项 | 结果 | 证据 |
|---|---|---|
| MIF7 CSV 校验 | 通过 | python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-12_21-48-40-mobile-ia-flow-remediation.csv |
| MIF7F follow-up CSV 校验 | 通过 | python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-13_00-38-05-mif7-follow-up-return-and-release.csv |
| 前端类型与构建 | 通过 | cd client && npm run typecheck、cd client && npm run build |
| UI 设计规则 strict | 通过 | node scripts/qa/check-ui-design-rules.mjs --strict,扫描 126 个文件,0 findings |
| MIF7 移动专项 Playwright | 通过 | cd client && npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts --workers=1 --reporter=list,5 passed;截图目录 output/playwright/mobile-ia-flow-remediation/ |
| R124 移动入口矩阵 | 通过 | cd client && npx playwright test tests/e2e/r124-mobile-entry-matrix.spec.ts --workers=1 --reporter=list,1 passed;截图目录 output/playwright/r124-mobile-entry-matrix/ |
公网 /ready |
通过 | curl -fsS https://oa.hyinda.com/ready 返回 ok=true |
| 公网前端资源文案扫描 | 通过 | PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs,scanned=56,focused=4,findings=0 |
| 公网 live readiness | 通过,含 SKIP | LIVE_SMOKE_BASE_URL=https://oa.hyinda.com QA_ISSUE_ID=MIF7-7 bash scripts/qa/run-live-smoke-readiness.sh;报告目录 artifacts/qa-flow/live-smoke-readiness-20260513-013545/;live smoke、真实 OCR 因缺少凭据或样票按脚本规则 SKIP |
| 旧 R6 响应式专项 | MIF7T 后通过 | tests/e2e/r6-mobile-responsive-system-hotfix.spec.ts 7 个视口通过,截图目录 output/playwright/r6-mobile-responsive-system-hotfix/ |
| 旧 MUD6 统一设计专项 | MIF7T 后通过 | tests/e2e/r6-mobile-unified-design-rollout.spec.ts 7 个视口通过,截图目录 output/playwright/r6-mobile-unified-design-rollout/ |
| 旧 WCM6 企业微信渲染专项 | MIF7T 后通过 | tests/e2e/r6-wecom-mobile-rendering-hardening.spec.ts 8 项通过,截图目录 output/playwright/r6-wecom-mobile-rendering-hardening/ |
| R108/R109 移动专项 | 明确跳过 | 两个专项仍因测试初始化 API 不可用按测试内规则 SKIP,未将 SKIP 伪造成视觉通过 |
历史结论:该轮非人工补验已证明 MIF7 当前专项、本地构建和公网匿名基础门禁通过;代表性企业微信真机主流程随后补充并关闭 ME6-3。当时 MIF7-7 因 live smoke 和真实 OCR 缺凭据/样票保持未完成;后续 MIF7TD 已补齐带凭据复检并关闭 MIF7-7。
MIF7T 真机反馈与移动体验统一
执行时间:2026-05-13。
用户真机反馈已记录:三台设备主流程没问题;首页常用入口没有重复底部 Tab;财务首页已和普通/审批首页区分;审批人“已处理”详情返回仍停留在已处理;通知可直达详情并返回来源页;请假详情、采购详情和财务首页主流程通过。iPhone 12 图文上下间距相比其他设备偏紧,但未出现重叠或压字,按非阻断观察项处理。
新增问题已进入 MIF7T 并完成本地整改:普通角色首页降低资产扫码曝光,采购权限用户新增移动采购列表入口;请假页默认先展示记录,并保留“新建请假 / 请假记录”分段;报销、请假、采购列表卡片统一为整卡可点和右侧状态;删除草稿进入“更多”后再二次确认;在线无草稿时审批页不显示空“离线草稿”;报销、请假、采购、审批详情进入时滚动到顶部,返回按钮和 label-value 字段排布统一。
本批本地验证结果:
| 检查项 | 结果 | 证据 |
|---|---|---|
| MIF7 / MIF7F / MIF7T CSV 校验 | 通过 | validate_issues_csv.py 三个合同均通过 |
| 前端类型与构建 | 通过 | cd client && npm run typecheck、cd client && npm run build |
| UI 设计规则 strict | 通过 | node scripts/qa/check-ui-design-rules.mjs --strict,扫描 127 个文件,0 findings |
| MIF7 移动专项 | 通过 | tests/e2e/dg7-mobile-information-dedupe.spec.ts,5 passed;截图目录 output/playwright/mobile-ia-flow-remediation/ |
| R6 响应式矩阵 | 通过 | tests/e2e/r6-mobile-responsive-system-hotfix.spec.ts,7 passed;覆盖 320/360/375/390/393/414/430 |
| MUD6 统一设计矩阵 | 通过 | tests/e2e/r6-mobile-unified-design-rollout.spec.ts,7 passed;覆盖 320/360/375/390/393/414/430 |
| WCM6 企业微信渲染矩阵 | 通过 | tests/e2e/r6-wecom-mobile-rendering-hardening.spec.ts,8 passed;含 390 iPhone12 字体失败模拟 |
| R101 / R124 移动入口回归 | 通过 | tests/e2e/r101-mobile-wip-closeout.spec.ts 3 passed;tests/e2e/r124-mobile-entry-matrix.spec.ts 1 passed |
| R108 / R109 视觉专项 | SKIP | 初始化 API 不可用,按测试内规则跳过;不作为视觉通过证据 |
部署状态:MIF7T 已在 MIF7TD 中部署到 https://oa.hyinda.com,公网复检和带凭据 live smoke/OCR 已通过。
MIF7TD 部署与带凭据收口
执行时间:2026-05-13。
| 检查项 | 结果 | 证据 |
|---|---|---|
| MIF7TD / MIF7 / MIF7F / MIF7T / ME6 CSV 校验 | 通过 | validate_issues_csv.py 均通过 |
| 部署前本地门禁 | 通过 | client typecheck、client build、设计规则 strict、MIF7 专项 5 passed、R6/MUD6/WCM6 组合 22 passed、git diff --check 通过 |
| 受控部署 | 通过 | bash deploy/trialrun/deploy.sh;默认 SYNC_ENV=0,未覆盖远端 .env;部署包含 cf2bba0 的 MIF7T 代码 |
| 公网匿名复检 | 通过 | curl -fsS https://oa.hyinda.com/ready 返回 ok=true;public bundle scanned=57 focused=4 findings=0 |
| 公网移动重点矩阵 | 通过 | E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts --workers=1 --reporter=list,5 passed;截图目录 output/playwright/mobile-ia-flow-remediation/ |
| 带凭据 live smoke | 通过 | 报告 artifacts/qa-flow/live-smoke-readiness-20260513-115455/;live-smoke.txt 不含 SKIP,公网 live smoke 3 passed |
| 真实 OCR | 通过 | 同一报告目录;live-ocr.txt 不含 SKIP,用例 1 passed;样票命中“该发票已用于报销,不能重复添加”,为重复发票可解释终态 |
| pending OCR 辅助扫描 | 非阻断跳过 | pending-ocr.txt 因本地未注入 DATABASE_URL 记录 SKIP,不作为 MIF7-7 硬阻断 |
结论:MIF7-7 已完成 DONE/DONE/DONE。公网当前可用于企业微信和浏览器复测 MIF7T 移动体验;R7 仍未启动,必须另建 R7E 执行合同后再进入真实扩大试运行。
R7E 人工启动确认
确认时间:2026-05-13。
用户确认采用 R7E 推荐启动配置,并补充 SMOKE301 / SMOKE302 尚未启用且没有对应企业微信,因此不作为本轮真实企业微信参与账号。
| 确认项 | 结论 |
|---|---|
| 参与人 | 员工 SMOKE002;审批人 SMOKE101;负责人 SMOKE201;财务 wangzhiling;管理员/拍板人 wangshunli |
| 企业微信边界 | SMOKE002、SMOKE101、wangzhiling、wangshunli 作为企业微信或真机优先账号;SMOKE201 使用账号密码兜底;SMOKE301 / SMOKE302 不参与本轮 |
| 角色边界 | wangshunli 作为管理员、回滚联系人和最终拍板人,不作为普通 manager 代行业务审批;admin-only 不处理业务审批 |
| 试运行窗口 | 北京时间 2026-05-14 09:30 至 2026-05-15 18:30;每日 17:30 收口 |
| 暂停条件 | 公网 /ready 异常、企业微信入口不可达、审批/报销/请假/采购任一主流程阻断、权限越权、数据错误或真实用户无法继续 |
| 回滚联系人 | wangshunli;真实联系方式放在仓库外企业微信或电话通讯录,不写入仓库 |
| 问题登记 | wangshunli 为业务侧登记负责人;可审计摘要写入本报告和 R7E CSV;按阻断/高/中/低分级 |
| 暂停/回滚决策 | wangshunli 最终拍板;触发 P0 阻断、权限泄漏、财务数据错误、审批链错误、无法登录/无法回 OA 或两个以上高优先级问题当天无法解释清楚时暂停或回滚 |
确认结论:R7E-1..7 人工确认完成,可以进入 R7E-8 公网健康复核。真实业务流程试运行仍需按 R7E-9..18 逐项记录,不得用自动化结果替代企业微信真机或人工业务结论。
启动前公网预检:
| 时间 | 检查项 | 结果 | 说明 |
|---|---|---|---|
| 2026-05-13 20:42 CST | curl -fsS https://oa.hyinda.com/ready |
通过 | 返回 ok=true |
| 2026-05-13 20:42 CST | PUBLIC_BASE_URL=https://oa.hyinda.com node scripts/qa/check-public-bundle-copy.mjs |
通过 | scanned=57,focused=4,findings=0 |
该预检早于 2026-05-14 09:30 的推荐真实启动窗口,因此只作为启动前健康证据;R7E-8 仍需在启动当天复核后才能置为 DONE。
QAOPS8 Go/No-Go 当前结论
执行时间:2026-05-13。
QAOPS8-17 当前结论为 No-Go/Pause,原因不是自动化基础门禁失败,而是 R7E 真实扩大试运行尚未发生。该结论用于防止把 R7EP、MIF7TD 或 QAOPS8 自动化证据误解释为已经可以上线或已经完成真实试运行。
| 检查项 | 当前状态 | 处理 |
|---|---|---|
| QAOPS8 发布、备份、回滚和 SLO 基线 | 已形成 | 可作为 R7E 启动前准备证据 |
| R7E-1..7 人工启动确认 | 已确认 | 可以进入启动当天公网健康复核 |
| R7E-8 公网健康复核 | 未完成 | 需在 2026-05-14 启动当天重跑后才能置为 DONE |
| R7E-9..15 真实业务和真机流程 | 未完成 | 需用户按角色实际点击或提供反馈 |
| R7E-16..18 每日问题和验收结论 | 未完成 | 需试运行窗口内记录 |
| WF8-11 通知 deeplink 回 OA | 未完成 | 需企业微信或代表性真机验证 |
| BIZ8-12 移动业务入口评估 | 暂停收口 | 自动化截图已有,仍需代表性真机和角色反馈 |
保持 No-Go/Pause 的阻断项:
SMOKE002企业微信工作台进入/mobile后确认无 PC 外壳,底部导航和业务入口正常。SMOKE002完成移动报销详情和 PDF 上传确认,不能被图片拍照入口误导。SMOKE101完成移动审批和通知 deeplink 回 OA 的确认。- 财务角色完成付款、导出或财务台账代表性确认。
SMOKE301/SMOKE302尚未启用且没有企业微信,不能作为企业微信真机证据。
结论:当前可以继续准备 R7E,但不能给正式 Go,也不能关闭 R7E-8..18、WF8-11、BIZ8-12 或 QAOPS8 后续收口项。
历史恢复
需要追溯 R70-R91 的详细流水时,使用:
git show 5da05eb:docs/trialrun/人工试运行报告.md