文件
hyb-oa/docs/trialrun/人工试运行报告.md
T

16 KiB
原始文件 Blame 文件历史

人工试运行报告

文档状态:当前试运行证据摘要。 适用时间: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 smoke 3 passed,真实 OCR 1 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 执行合同后再进入真实扩大试运行。

历史恢复

需要追溯 R70-R91 的详细流水时,使用:

git show 5da05eb:docs/trialrun/人工试运行报告.md