文件
hyb-oa/issues/2026-05-10_17-10-42-r5-smoke-password-reset-and-live-smoke.csv
T

7 行
5.4 KiB
CSV

ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
K1,执行前只读确认,"确认 R4 已完成、R5 未完成、远端 SMOKE001/SMOKE002 active、部署前备份可用,并记录当前 smoke 数据审计计数;本步骤不做写操作。","1) 主合同 R4=DONE/DONE/DONE 且 R5 未完成;2) 远端 smoke 账号存在且 active;3) 部署前备份文件名可追溯;4) 记录 smoke 数据审计计数。","流程级验证:读取 issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv;ssh [email protected] 进入 /opt/hyb-oa-trialrun 后执行 docker-compose server node src/scripts/audit-smoke-data.js --format=text;只记录账号状态和计数摘要,不打印 secret。","ssh|node|manual",DONE,DONE,DONE,"issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv|external","[]","K1 完成:主合同 R4=DONE/DONE/DONE、R5=DOING/TODO/TODO;远端 SMOKE001/SMOKE002 均 active;部署前备份 hyb-oa-db-20260510_134340.dump 与 hyb-oa-storage-20260510_134341.tar.gz 存在;执行前计数 authSessions=555,reimbursements=1,invoices=5,ocrResultsLinkedFromInvoices=1,auditLogs=258。"
K2,重置 smoke 账号密码,"为 SMOKE001/SMOKE002 在本机生成强密码,写入仓库外 ~/.hyb-oa/live-smoke.env 且权限 600;使用远端容器内 hashPassword 更新两个账号 password_hash 并清空登录失败状态。","1) ~/.hyb-oa/live-smoke.env 存在且权限 600;2) 仅更新 SMOKE001/SMOKE002;3) 清空 login_failed_count/login_failed_first_at;4) must_change_password=false;5) 不打印、不提交新密码;6) 当前 schema 无 login_locked_until 时记录为 N/A。","流程级验证:stat -c '%a %n' ~/.hyb-oa/live-smoke.env;远端容器内执行受控 reset 脚本,输出只允许包含已更新账号标识、active、must_change_password 和失败计数字段状态,不输出密码或 hash。","ssh|node",DONE,DONE,DONE,"external","[""K1""]","K2 完成:生成 ~/.hyb-oa/live-smoke.env,权限 600,OCR 样票存在;远端仅更新 SMOKE001/SMOKE002,两个账号 status=active、mustChange=false、failedCount=0、firstFailedAt=null;未打印密码或 hash;login_locked_until 在当前 schema 中不存在,记录为 N/A。"
K3,R5 自动化重跑,"source 本机安全凭据后执行 live smoke strict 准入、公网 readiness、资源扫描、网页登录 smoke 和真实 OCR 样票上传复核。","1) check-live-smoke-env --strict 通过;2) run-live-smoke-readiness.sh 完成;3) live smoke 不再 SKIP;4) 真实 OCR 不再 SKIP 并进入可解释终态;5) 公网 bundle 扫描 findings=0。","流程级验证:set -a && source ~/.hyb-oa/live-smoke.env && set +a;node scripts/qa/check-live-smoke-env.mjs --strict;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-live-smoke-readiness.sh;检查最新 artifacts/qa-flow/live-smoke-readiness-* 的 live-smoke.txt、live-ocr.txt、public-bundle-copy.txt。","bash|node|playwright",DONE,DONE,DONE,"scripts/qa/*|artifacts/qa-flow","[""K2""]","K3 完成:首次用 employee_no 登录标识仍 401;确认登录接口只接受 email/phone 后,将本机凭据 identifier 改为 smoke 邮箱并重置失败计数;check-live-smoke-env --strict 通过;run-live-smoke-readiness.sh 通过,公网 bundle findings=0,live smoke 3 passed,真实 OCR 样票不再 SKIP,终态为重复发票/ocr_failed 且页面提示不能重复添加;证据目录 artifacts/qa-flow/live-smoke-readiness-20260510-172421;pending OCR 辅助扫描因缺 DATABASE_URL 继续 SKIP。"
K4,副作用只读审计,"R5 自动化后只读审计 smoke 账号产生的会话、票据、OCR 和审计日志数量;不清理测试数据。","1) 远端审计脚本只读运行成功;2) 记录自动化前后计数变化;3) 不执行删除、归档、UPDATE 或清理。","流程级验证:ssh [email protected] 进入 /opt/hyb-oa-trialrun 后执行 docker-compose server node src/scripts/audit-smoke-data.js --format=text;对比 K1 计数并记录摘要。","ssh|node|manual",DONE,DONE,DONE,"server/src/scripts/audit-smoke-data.js|external","[""K3""]","K4 完成:远端只读审计成功;K1->K4 计数变化 authSessions 555->572、auditLogs 258->263;reimbursements=1、invoices=5、ocrResultsLinkedFromInvoices=1、invoiceVerifications=0、workflowInstances=0 保持不变;未清理数据。"
K5,R5/R6 状态门禁,"根据 K1-K4 和企业微信真机人工验收结果回填主 R5;自动化通过但真机未验收时,主 R5 仍保持 DOING/TODO/TODO,R6 保持 TODO。","1) 自动化、真实 OCR、企业微信真机均通过时主 R5 才可置 DONE/DONE/DONE;2) 真机未验收时主 R5 不得完成;3) 更新发布清单和本合同 Notes;4) 校验 CSV 和 diff。","流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-10_17-10-42-r5-smoke-password-reset-and-live-smoke.csv;python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv;git diff --check。","python3|git|manual",DONE,DONE,DONE,"issues/2026-05-10_17-10-42-r5-smoke-password-reset-and-live-smoke.csv|issues/2026-05-10_12-39-37-release-readiness-live-smoke.csv|docs/trialrun/release-readiness-checklist.md","[""K3"",""K4""]","K5 完成:已回填主 R5 Notes 和 release readiness 清单;因企业微信真机人工验收尚未执行,主 R5 保持 DOING/TODO/TODO,R6 保持 TODO;已校验本合同、主合同和 git diff --check。"