文件
hyb-oa/issues/2026-04-26_r69-business-acceptance.csv

9.9 KiB

1IDTitleDescriptionAcceptanceTest_MethodToolsDev_StatusReview1_StatusRegression_StatusFilesDependenciesNotes
2A1R69 业务验收合同建档创建 R69 小团队试运行业务验收合同,冻结范围:只做业务流程验证、回归门禁、缺陷记录和必要 P0/P1 修复判断;默认不新增功能、不改 UI、不改 schema。CSV 列完整,Dependencies 为 JSON 数组字符串;验收范围覆盖员工、经理、管理员三类账号;Notes 明确若触发 workflow、权限、状态机、审批规则、迁移修复必须追加 review。命令:python3 - <<'PY' 校验 CSV 12 列、状态值、Dependencies JSON 数组字符串;业务:对照 AGENTS.md 确认 R69 是验收与缺陷收敛,不主动扩大功能范围。manualDONEDONEDONEissues/2026-04-26_r69-business-acceptance.csv[]回滚路径:删除本 CSV 草稿即可回到 R68;若后续发现 P0/P1 缺陷,先记录再单独方案,不直接扩大范围。
3A2静态与基础构建门禁执行发布前基础门禁:环境契约、Prisma schema 校验、client typecheck/build,确认 R66-R68 本地提交未破坏基础构建。1) deploy/trialrun 环境契约校验通过;2) server prisma:validate 通过;3) client typecheck/build 通过;4) 若失败,记录失败命令、日志摘要和阻塞级别。命令:node deploy/trialrun/validate-env-contract.js;cd server && npm run prisma:validate;cd client && npm run typecheck && npm run build;业务:确认基础部署与前后端构建门禁通过。manualDONEDONEDONEdeploy/trialrun/validate-env-contract.js|server/prisma/schema.prisma|client/src/**["A1"]R69 已通过:环境契约、server prisma:validate、client typecheck、client build 均通过;build 仅保留既有 chunk 体积/循环依赖警告。回滚路径:静态门禁不改代码。
4A3后端核心回归门禁执行后端核心业务回归,覆盖 smoke、判重、workflow、采购、资产、审计、OCR、IM notifier 等现有脚本默认范围。1) regression-all.sh 默认范围通过,或输出结构化失败报告;2) 若失败项涉及审批规则、状态机、权限或迁移,标记为需额外 review;3) 不修改 server 代码,除非后续方案获批。命令:cd server && ./scripts/regression-all.sh --json-report ../artifacts/r69/regression-all.json;业务:确认后端核心流程不因近期改动产生回归。manualDONEDONEDONEserver/scripts/regression-all.sh|artifacts/r69/regression-all.json["A2"]R69 full-local 后端阶段已通过:server 单测 98 个 suite / 429 tests 通过,workflow-actions 与 regression-all 默认范围通过;部分可选域按环境默认跳过。回滚路径:回归执行不改代码。
5A4本地网页 smoke 门禁使用临时数据库和本地 server 执行网页 smoke,验证登录、Portal、企业微信入口、导航基础链路可运行。1) smoke-local 通过;2) 临时数据库自动创建、迁移、seed、清理;3) server 端口自动释放;4) 若 Docker 权限或数据库不可用,记录精确阻塞和人工替代步骤。命令:QA_DB_CLIENT=docker QA_DOCKER_USE_SG=1 bash scripts/qa/run-web-gates.sh smoke-local;业务:员工/管理员登录后能进入 Portal,登录入口与 smoke e2e 通过。manualDONEDONEDONEscripts/qa/run-web-gates.sh|client/tests/e2e/login-portal-ux.spec.ts|client/tests/e2e/wecom-entry.spec.ts["A2"]R69 已通过:smoke-local 8 项 Playwright smoke 通过,临时数据库创建、迁移、seed、清理与端口释放正常。回滚路径:网页 smoke 不改业务代码。
6A5员工日常业务闭环验收验收员工账号的日常闭环:登录、Portal、请假提交、报销提交、考勤、周报、通知、搜索和移动入口。1) 员工可登录并进入 Portal;2) 请假/报销/考勤/周报关键入口可用;3) 通知和全局搜索无前端阻断;4) 失败项按 P0/P1/P2 分类记录。命令:优先执行相关 e2e:login-portal-ux、leave-flow、reimbursement-workflow-progress、weekly-todo-flow、announcements-presence、global-search;业务:[email protected] 按日常路径完成提交与查看。manualDONEDONEDONEclient/tests/e2e/login-portal-ux.spec.ts|client/tests/e2e/leave-flow.spec.ts|client/tests/e2e/reimbursement-workflow-progress.spec.ts|client/tests/e2e/weekly-todo-flow.spec.ts|client/tests/e2e/announcements-presence.spec.ts|client/tests/e2e/global-search.spec.ts["A4","A8"]R69 full-local 已通过:员工 Portal、请假、报销审批进度、周报待办、公告、全局搜索、移动审批等日常闭环通过;初始登录态回退由 A8 修复。回滚路径:验收状态回填可单独回滚。
7A6经理与管理员业务边界验收验收经理与管理员账号的审批、团队状态、周报缺口、系统设置、导航权限、审计与备用模块边界。1) 经理可看到审批与团队协同入口;2) 管理员可访问系统设置和管理入口;3) 普通员工看不到不应可见的管理入口;4) 权限边界失败标记为 P0/P1 并要求额外 review。命令:优先执行 workflow-quick-approve、leave-team-calendar、settings-governance、confidential-boundary、visual-shell 关键断言;业务:manager/admin 分别检查审批、团队、系统设置、审计和备用模块。manualDONEDONEDONEclient/tests/e2e/workflow-quick-approve.spec.ts|client/tests/e2e/leave-team-calendar.spec.ts|client/tests/e2e/settings-governance.spec.ts|client/tests/e2e/confidential-boundary.spec.ts|client/tests/e2e/visual-shell.spec.ts["A4","A8"]R69 full-local 已通过:经理快捷审批、团队日历、系统设置治理、涉密边界、视觉壳层与管理员 Portal 边界通过;未修改权限模型。回滚路径:验收状态回填可单独回滚。
8A7R69 验收报告与下一轮缺陷清单汇总 R69 执行结果,形成通过项、失败项、阻塞项、需人工复核项和建议进入 R70 的缺陷清单;必要时提交 CSV 状态回填。1) A2-A6 测试结果已记录;2) artifacts/r69/acceptance-report.md 存在并包含命令、结果、风险、下一步;3) CSV 状态与报告一致;4) 若无阻断缺陷,明确可进入试运行人工业务试用。命令:汇总测试日志和 artifacts/r69/regression-all.json;业务:按员工、经理、管理员三类账号给出试运行可用性结论。manualDONEDONEDONEartifacts/r69/acceptance-report.md|issues/2026-04-26_r69-business-acceptance.csv["A3","A5","A6"]已生成 artifacts/r69/acceptance-report.md;结论:自动化门禁无阻断缺陷,可进入小团队人工试运行;R70 建议聚焦人工业务试用、chunk 拆分和更细的产品化验收清单。回滚路径:报告与 CSV 可单独回滚。
9A8P1 会话刷新并发硬化修复 R69 full E2E 暴露的刷新令牌旋转并发问题:多个前端路径几乎同时调用 /api/auth/refresh 时,不能因第二个旧 refresh token 401 把用户踢回登录页。1) 前端 refresh 调用在模块级 single-flight;2) 同一页面内相邻刷新复用同一次成功结果,不重复消耗旋转 refresh token;3) 登录/登出/清会话会重置刷新缓存,避免复用旧 access token;4) 不修改后端复用检测和权限/状态机规则。命令:cd client && npm run typecheck && npm run build;聚焦 e2e:announcements-presence、global-search、leave-flow、settings-governance;最终:QA_DB_CLIENT=docker QA_DOCKER_USE_SG=1 bash scripts/qa/run-web-gates.sh full-local;业务:员工/经理/管理员登录后跨页面导航不回退登录页。manualDONEDONEDONEclient/src/auth/authService.ts|client/src/auth/AuthContext.tsx|client/src/api/http.ts|client/tests/e2e/login-portal-ux.spec.ts["A4"]已完成并通过 full-local:refreshSession 模块级 single-flight + 1 秒成功回放,登录/登出/清会话重置缓存;未放宽后端 refresh token 复用检测,未改权限/状态机。回滚路径:撤销 authService/AuthContext 相关改动。
10A9R69 E2E 断言校准与移动在线态修复修复 A8 后 full E2E 暴露的非业务回归阻断:R68 Portal 信息架构折叠/Tab 改版后测试断言过期,报销创建入口改为下拉菜单后测试未选择空白报销,合同涉密测试少传必填 contractType,WebKit 初始 navigator.onLine=false 导致移动审批误判离线。1) 不修改审批规则、权限、状态机或迁移;2) E2E 与当前 UI 结构一致,仍验证公告、项目、报销、资产、采购、涉密和移动审批业务目标;3) WebKit 在线登录后移动审批能加载远端待办,切换 offline 后仍进入离线草稿流程;4) full-local 重新执行并记录剩余风险。命令:cd client && npm run typecheck && npm run build;聚焦:npx playwright test 相关失败 specs --workers=1;最终:QA_DB_CLIENT=docker QA_DOCKER_USE_SG=1 bash scripts/qa/run-web-gates.sh full-local;业务:R69 full E2E 不再因测试断言过期或移动在线态误判阻断。manualDONEDONEDONEclient/tests/e2e/announcements-presence.spec.ts|client/tests/e2e/project-workbench.spec.ts|client/tests/e2e/main-flow.spec.ts|client/tests/e2e/reimbursement-workflow-progress.spec.ts|client/tests/e2e/confidential-boundary.spec.ts|client/tests/e2e/assets-flow.spec.ts|client/tests/e2e/procurement-flow.spec.ts|client/tests/e2e/workflow-quick-approve.spec.ts|client/src/pages/MobileApprovalsPage.tsx|client/src/pages/AssetRegistryPage.tsx["A8"]已完成并通过 full-local:校准 R68 UI 后的断言、报销空白模板入口、合同 contractType、移动在线态、采购/资产详情定位、请假并发日期窗口;AssetRegistryPage 新建模式防旧详情回写污染表单。未改 workflow/权限/状态机/审批规则/迁移。回滚路径:撤销 A9 测试、MobileApprovalsPage 与 AssetRegistryPage 改动。