P2FLIVE 收口公网付款批次短窗口测试

这个提交包含在:
2026-05-17 00:19:39 +08:00
父节点 08853c7f03
当前提交 20a783543b
共修改 6 个文件,包含 746 行新增和 10 行删除
@@ -0,0 +1,11 @@
"ID","Title","Description","Acceptance","Test_Method","Tools","Dev_Status","Review1_Status","Regression_Status","Files","Dependencies","Notes"
"P2FLIVE-0","P2-FIN-LIVE 合同建档","建立公网付款批次受控短窗口测试合同;用户已批准立即短窗口、现有 live smoke 测试账号和新建专用测试报销;默认测试结束后关回 payment_batch_v1。","1) CSV 校验通过;2) 不部署、不改业务 API/schema/UI;3) 不接真实支付、不写 ERP 实时凭证、不开放图片 OCR;4) 公网写入仅限测试报销、付款批次、审计和 AP 导出审计;5) 最终 payment_batch_v1 回到 force_off。","受影响流程:P2-FIN-V1 启用前硬化 -> 公网短窗口付款批次测试 -> 强制 flag 回滚;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-16_23-42-08-p2-fin-payment-batch-live-enable.csv;人工核对本合同范围和用户批准。","python3|manual","DONE","DONE","DONE","issues/2026-05-16_23-42-08-p2-fin-payment-batch-live-enable.csv","[]","DONE: user approved immediate public short window; executed report=artifacts/qa-flow/p2-fin-live-20260517-001022; no deploy/API/schema/UI change; no real payment/ERP/image OCR; final payment_batch_v1=force_off."
"P2FLIVE-1","公网前置与关闭态复核","执行公网 readiness、PDF live OCR readiness 和 payment_batch_v1 关闭态只读复核,确认进入短窗口前系统可用且付款批次仍未打开。","1) check-live-smoke-env --strict 通过;2) check-payment-batch-flag-off --json 通过;3) 工作区无非本轮未解释改动;4) 不打印 secret、cookie、样票路径或远端 env;5) 不执行付款批次写入。","受影响流程:公网 /ready、live smoke、PDF OCR readiness、付款批次关闭态;验证步骤:set -a && source ~/.hyb-oa/live-smoke.env && set +a;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-live-smoke-env.mjs --strict;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-payment-batch-flag-off.mjs --json;git status --short。","bash|node|git","DONE","DONE","DONE","scripts/qa/check-live-smoke-env.mjs|scripts/qa/check-payment-batch-flag-off.mjs|external","[""P2FLIVE-0""]","DONE: live-env-strict PASS and pre-flag-off-check PASS before flag-on; workspace dirty only with this P2FLIVE contract/QA files; no secrets or sample paths printed."
"P2FLIVE-2","公网安全 runner 和 live spec","新增 QA-only runner 与 Playwright live spec,只有 P2_FIN_LIVE_APPROVED=1 时才允许公网写入,并在 finally 中执行 flag 回滚。","1) scripts/qa/run-p2-fin-live-window.sh 存在且 bash -n 通过;2) client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts 使用 helpers/liveAuth.ts 的 live 账号;3) 缺 P2_FIN_LIVE_APPROVED=1 直接拒绝;4) 证据落 artifacts/qa-flow/p2-fin-live-*;5) 不打印 secret、cookie、PDF 路径或导出内容。","受影响流程:公网短窗口自动化编排;验证步骤:bash -n scripts/qa/run-p2-fin-live-window.sh;cd client && npx playwright test tests/e2e/manual/p2-fin-live-payment-batch.spec.ts --list;人工核对脚本强制审批变量和 finally 回滚。","bash|playwright|manual","DONE","DONE","DONE","scripts/qa/run-p2-fin-live-window.sh|client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts","[""P2FLIVE-1""]","DONE: added QA-only runner/spec with P2_FIN_LIVE_APPROVED=1 guard and final rollback; bash -n/list/typecheck/build passed; evidence report=artifacts/qa-flow/p2-fin-live-20260517-001022."
"P2FLIVE-3","flag-off 下创建测试报销并审批","在打开付款批次前,用员工账号新建专用测试报销、上传并绑定授权 PDF 样票、提交审批,并由 manager/finance 链路审批到 approved;样票不可绑定则停止。","1) 生成专用测试报销单号或 ID;2) 报销金额为小额测试值;3) 发票为 PDF-only 授权样票且成功绑定;4) 报销状态进入 approved;5) payment_batch_v1 仍处于关闭态。","受影响流程:员工新建报销 -> PDF 发票绑定 -> 提交 -> manager/finance 审批到 approved;验证步骤:P2_FIN_LIVE_APPROVED=1 LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-p2-fin-live-window.sh;检查 summary.json 中 reimbursement.status=approved before flag-on。","playwright|node","DONE","DONE","DONE","client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts|artifacts/qa-flow","[""P2FLIVE-2""]","DONE: created dedicated small test reimbursement BX-20260517-0022, bound authorized PDF sample, and approved to approved before flag-on; payment_batch_v1 was force_off before opening."
"P2FLIVE-4","公网短窗口 flag-on","由 admin 读取 payment_batch_v1 当前快照并临时设置 force_on;仅打开 payment_batch_v1,不打开 erp_sync。","1) 原始 feature flag 快照记录到证据摘要但不含 token;2) payment_batch_v1 设置为 force_on 且 effectiveEnabled=true;3) erp_sync 不被本轮改为 force_on;4) 操作写入 FEATURE_FLAG_UPDATED 审计;5) 失败时立即执行回滚。","受影响流程:系统功能开关 -> 公网付款批次入口短窗口开启;验证步骤:live spec 通过 /api/system/feature-flags 读取 version 并 PUT /api/system/feature-flags/payment_batch_v1;随后 GET /api/payment-batches 返回 200。","playwright|node","DONE","DONE","DONE","client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts|server/src/routes/featureFlags.js","[""P2FLIVE-3""]","DONE: payment_batch_v1 moved force_off -> force_on for short window only; erp_sync remained disabled; FEATURE_FLAG_UPDATED audit verified; final rollback force_off."
"P2FLIVE-5","付款批次公网闭环","在短窗口内由 finance 创建付款批次,finance_mgr 复核,finance 执行,并验证报销 paid、票据 archived、AP 台账已付款。","1) 付款批次创建成功;2) finance_mgr 复核成功;3) finance 执行成功;4) 报销状态为 paid;5) 关联发票为 archived 且 AP 台账 payment.status=paid。","受影响流程:approved 报销 -> 付款批次创建 -> 复核 -> 执行 -> 报销 paid -> 发票 archived -> AP 台账已付款;验证步骤:P2_FIN_LIVE_APPROVED=1 LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-p2-fin-live-window.sh;检查 summary.json 中 batch/reimbursement/invoice/ledger 终态。","playwright|node","DONE","DONE","DONE","client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts|artifacts/qa-flow","[""P2FLIVE-4""]","DONE: finance created batch c7eefe90-7164-4232-a307-bfbf3b823065; finance_mgr reviewed; finance executed; reimbursement paid, invoice archived, AP ledger paid."
"P2FLIVE-6","权限审计导出核验","核验员工、manager、admin-only 不可越权,审计含 FEATURE_FLAG_UPDATED、PAYMENT_BATCH_*、REIMBURSEMENT_PAYMENT_MARKED 和 EXPORT_AP_OPERATIONS;AP 导出只记录状态和审计,不打印内容。","1) employee/manager 创建或执行付款被拒绝;2) admin-only 账号若可用则创建或执行付款被拒绝,若 LIVE_SMOKE_ADMIN 为 wildcard superadmin 则记录 SKIP_WILDCARD_SUPERADMIN;3) PAYMENT_BATCH_CREATED/REVIEWED/EXECUTED 可查;4) REIMBURSEMENT_PAYMENT_MARKED 可查;5) EXPORT_AP_OPERATIONS 可查;6) 导出内容不输出到日志或报告。","受影响流程:付款批次权限边界、AP 导出权限、审计追溯;验证步骤:live spec 用 API 探测 employee/manager 越权 POST;若 live admin 是 wildcard superadmin 则跳过 admin-only 写负例并记录 SKIP_WILDCARD_SUPERADMIN;查询 /api/audit-logs;finance POST /api/exports/ap-operations 只检查 200/审计,不输出响应正文。","playwright|node","DONE","DONE","DONE","client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts|server/src/routes/paymentBatches.js|server/src/routes/exports.js","[""P2FLIVE-5""]","DONE: employee/manager create boundaries returned 403; LIVE_SMOKE_ADMIN is wildcard superadmin so admin-only negative write boundary recorded SKIP_WILDCARD_SUPERADMIN; PAYMENT_BATCH_*, REIMBURSEMENT_PAYMENT_MARKED and EXPORT_AP_OPERATIONS audits verified; export content not printed."
"P2FLIVE-7","强制回滚与关闭态复核","无论 P2FLIVE-3..6 成功或失败,恢复 payment_batch_v1 到原始关闭态,并复跑公网 flag-off 只读门禁。","1) live spec finally 执行回滚;2) runner 结束后 check-payment-batch-flag-off --json 通过;3) 财务/员工/admin 对 payment-batches/AP 返回 409 flag_force_off 或权限拒绝;4) 回滚失败时 runner 返回非 0 并突出风险;5) 不执行生产恢复或数据库重置。","受影响流程:公网付款批次 feature flag 回滚;验证步骤:P2_FIN_LIVE_APPROVED=1 LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-p2-fin-live-window.sh;随后 LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-payment-batch-flag-off.mjs --json。","bash|node|playwright","DONE","DONE","DONE","scripts/qa/run-p2-fin-live-window.sh|scripts/qa/check-payment-batch-flag-off.mjs|client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts","[""P2FLIVE-6""]","DONE: spec finally and runner final hook restored payment_batch_v1 to force_off; final check returned 409 payment_batch_v1_disabled / flag_force_off for finance/employee/admin."
"P2FLIVE-8","移动和企业微信自动化复核","付款闭环后跑公网移动矩阵和 WeCom UA 自动化;真机测试机器只确认入口、免登和状态查看,不执行付款动作。","1) 公网移动矩阵通过或有可解释失败;2) WeCom UA 自动化通过或有可解释失败;3) 真机如执行只记录查看确认;4) 不新增移动付款能力;5) 不因真机未执行付款阻塞短窗口自动化结论。","受影响流程:移动首页、移动财务入口、企业微信 UA 渲染和 deeplink 查看;验证步骤:cd client && E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts tests/e2e/r124-mobile-entry-matrix.spec.ts tests/e2e/r6-wecom-mobile-rendering-hardening.spec.ts --workers=1 --reporter=list。","playwright|manual","DONE","DONE","DONE","client/tests/e2e/dg7-mobile-information-dedupe.spec.ts|client/tests/e2e/r124-mobile-entry-matrix.spec.ts|client/tests/e2e/r6-wecom-mobile-rendering-hardening.spec.ts|external","[""P2FLIVE-7""]","DONE: public mobile matrix 6 passed and WeCom UA rendering matrix 8 passed in report artifacts/qa-flow/p2-fin-live-20260517-001022; no mobile payment action added."
"P2FLIVE-9","收口回填与提交","回填 P2-FIN-LIVE CSV、文档索引、事实源矩阵和人工试运行报告,执行最终门禁并提交中文 commit。","1) P2FLIVE 各行状态按真实证据回填;2) docs/文档索引.md、docs/文档事实源状态矩阵.md、docs/trialrun/人工试运行报告.md 必要状态更新;3) validate、audit-docs、rg、git diff --check 通过;4) 中文 commit 引用 P2FLIVE;5) 明确未部署和公网最终 flag 状态。","流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-16_23-42-08-p2-fin-payment-batch-live-enable.csv;node scripts/qa/audit-docs.mjs --check-registry;rg -n 'P2FLIVE|P2-FIN-LIVE|payment_batch_v1|PAYMENT_BATCH|EXPORT_AP_OPERATIONS|flag_force_off' docs issues scripts client/tests;git diff --check;git status --short。","python3|node|rg|git","DONE","DONE","DONE","issues/2026-05-16_23-42-08-p2-fin-payment-batch-live-enable.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md","[""P2FLIVE-7"",""P2FLIVE-8""]","DONE: CSV/docs updated; validate_issues_csv passed; audit-docs errors=0 warnings=1 existing unregistered docs files=24; keyword sweep explainable; git diff --check passed; final public flag-off check PASS."
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 P2FLIVE-0 P2-FIN-LIVE 合同建档 建立公网付款批次受控短窗口测试合同;用户已批准立即短窗口、现有 live smoke 测试账号和新建专用测试报销;默认测试结束后关回 payment_batch_v1。 1) CSV 校验通过;2) 不部署、不改业务 API/schema/UI;3) 不接真实支付、不写 ERP 实时凭证、不开放图片 OCR;4) 公网写入仅限测试报销、付款批次、审计和 AP 导出审计;5) 最终 payment_batch_v1 回到 force_off。 受影响流程:P2-FIN-V1 启用前硬化 -> 公网短窗口付款批次测试 -> 强制 flag 回滚;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-16_23-42-08-p2-fin-payment-batch-live-enable.csv;人工核对本合同范围和用户批准。 python3|manual DONE DONE DONE issues/2026-05-16_23-42-08-p2-fin-payment-batch-live-enable.csv [] DONE: user approved immediate public short window; executed report=artifacts/qa-flow/p2-fin-live-20260517-001022; no deploy/API/schema/UI change; no real payment/ERP/image OCR; final payment_batch_v1=force_off.
3 P2FLIVE-1 公网前置与关闭态复核 执行公网 readiness、PDF live OCR readiness 和 payment_batch_v1 关闭态只读复核,确认进入短窗口前系统可用且付款批次仍未打开。 1) check-live-smoke-env --strict 通过;2) check-payment-batch-flag-off --json 通过;3) 工作区无非本轮未解释改动;4) 不打印 secret、cookie、样票路径或远端 env;5) 不执行付款批次写入。 受影响流程:公网 /ready、live smoke、PDF OCR readiness、付款批次关闭态;验证步骤:set -a && source ~/.hyb-oa/live-smoke.env && set +a;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-live-smoke-env.mjs --strict;LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-payment-batch-flag-off.mjs --json;git status --short。 bash|node|git DONE DONE DONE scripts/qa/check-live-smoke-env.mjs|scripts/qa/check-payment-batch-flag-off.mjs|external ["P2FLIVE-0"] DONE: live-env-strict PASS and pre-flag-off-check PASS before flag-on; workspace dirty only with this P2FLIVE contract/QA files; no secrets or sample paths printed.
4 P2FLIVE-2 公网安全 runner 和 live spec 新增 QA-only runner 与 Playwright live spec,只有 P2_FIN_LIVE_APPROVED=1 时才允许公网写入,并在 finally 中执行 flag 回滚。 1) scripts/qa/run-p2-fin-live-window.sh 存在且 bash -n 通过;2) client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts 使用 helpers/liveAuth.ts 的 live 账号;3) 缺 P2_FIN_LIVE_APPROVED=1 直接拒绝;4) 证据落 artifacts/qa-flow/p2-fin-live-*;5) 不打印 secret、cookie、PDF 路径或导出内容。 受影响流程:公网短窗口自动化编排;验证步骤:bash -n scripts/qa/run-p2-fin-live-window.sh;cd client && npx playwright test tests/e2e/manual/p2-fin-live-payment-batch.spec.ts --list;人工核对脚本强制审批变量和 finally 回滚。 bash|playwright|manual DONE DONE DONE scripts/qa/run-p2-fin-live-window.sh|client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts ["P2FLIVE-1"] DONE: added QA-only runner/spec with P2_FIN_LIVE_APPROVED=1 guard and final rollback; bash -n/list/typecheck/build passed; evidence report=artifacts/qa-flow/p2-fin-live-20260517-001022.
5 P2FLIVE-3 flag-off 下创建测试报销并审批 在打开付款批次前,用员工账号新建专用测试报销、上传并绑定授权 PDF 样票、提交审批,并由 manager/finance 链路审批到 approved;样票不可绑定则停止。 1) 生成专用测试报销单号或 ID;2) 报销金额为小额测试值;3) 发票为 PDF-only 授权样票且成功绑定;4) 报销状态进入 approved;5) payment_batch_v1 仍处于关闭态。 受影响流程:员工新建报销 -> PDF 发票绑定 -> 提交 -> manager/finance 审批到 approved;验证步骤:P2_FIN_LIVE_APPROVED=1 LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-p2-fin-live-window.sh;检查 summary.json 中 reimbursement.status=approved before flag-on。 playwright|node DONE DONE DONE client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts|artifacts/qa-flow ["P2FLIVE-2"] DONE: created dedicated small test reimbursement BX-20260517-0022, bound authorized PDF sample, and approved to approved before flag-on; payment_batch_v1 was force_off before opening.
6 P2FLIVE-4 公网短窗口 flag-on 由 admin 读取 payment_batch_v1 当前快照并临时设置 force_on;仅打开 payment_batch_v1,不打开 erp_sync。 1) 原始 feature flag 快照记录到证据摘要但不含 token;2) payment_batch_v1 设置为 force_on 且 effectiveEnabled=true;3) erp_sync 不被本轮改为 force_on;4) 操作写入 FEATURE_FLAG_UPDATED 审计;5) 失败时立即执行回滚。 受影响流程:系统功能开关 -> 公网付款批次入口短窗口开启;验证步骤:live spec 通过 /api/system/feature-flags 读取 version 并 PUT /api/system/feature-flags/payment_batch_v1;随后 GET /api/payment-batches 返回 200。 playwright|node DONE DONE DONE client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts|server/src/routes/featureFlags.js ["P2FLIVE-3"] DONE: payment_batch_v1 moved force_off -> force_on for short window only; erp_sync remained disabled; FEATURE_FLAG_UPDATED audit verified; final rollback force_off.
7 P2FLIVE-5 付款批次公网闭环 在短窗口内由 finance 创建付款批次,finance_mgr 复核,finance 执行,并验证报销 paid、票据 archived、AP 台账已付款。 1) 付款批次创建成功;2) finance_mgr 复核成功;3) finance 执行成功;4) 报销状态为 paid;5) 关联发票为 archived 且 AP 台账 payment.status=paid。 受影响流程:approved 报销 -> 付款批次创建 -> 复核 -> 执行 -> 报销 paid -> 发票 archived -> AP 台账已付款;验证步骤:P2_FIN_LIVE_APPROVED=1 LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-p2-fin-live-window.sh;检查 summary.json 中 batch/reimbursement/invoice/ledger 终态。 playwright|node DONE DONE DONE client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts|artifacts/qa-flow ["P2FLIVE-4"] DONE: finance created batch c7eefe90-7164-4232-a307-bfbf3b823065; finance_mgr reviewed; finance executed; reimbursement paid, invoice archived, AP ledger paid.
8 P2FLIVE-6 权限审计导出核验 核验员工、manager、admin-only 不可越权,审计含 FEATURE_FLAG_UPDATED、PAYMENT_BATCH_*、REIMBURSEMENT_PAYMENT_MARKED 和 EXPORT_AP_OPERATIONS;AP 导出只记录状态和审计,不打印内容。 1) employee/manager 创建或执行付款被拒绝;2) admin-only 账号若可用则创建或执行付款被拒绝,若 LIVE_SMOKE_ADMIN 为 wildcard superadmin 则记录 SKIP_WILDCARD_SUPERADMIN;3) PAYMENT_BATCH_CREATED/REVIEWED/EXECUTED 可查;4) REIMBURSEMENT_PAYMENT_MARKED 可查;5) EXPORT_AP_OPERATIONS 可查;6) 导出内容不输出到日志或报告。 受影响流程:付款批次权限边界、AP 导出权限、审计追溯;验证步骤:live spec 用 API 探测 employee/manager 越权 POST;若 live admin 是 wildcard superadmin 则跳过 admin-only 写负例并记录 SKIP_WILDCARD_SUPERADMIN;查询 /api/audit-logs;finance POST /api/exports/ap-operations 只检查 200/审计,不输出响应正文。 playwright|node DONE DONE DONE client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts|server/src/routes/paymentBatches.js|server/src/routes/exports.js ["P2FLIVE-5"] DONE: employee/manager create boundaries returned 403; LIVE_SMOKE_ADMIN is wildcard superadmin so admin-only negative write boundary recorded SKIP_WILDCARD_SUPERADMIN; PAYMENT_BATCH_*, REIMBURSEMENT_PAYMENT_MARKED and EXPORT_AP_OPERATIONS audits verified; export content not printed.
9 P2FLIVE-7 强制回滚与关闭态复核 无论 P2FLIVE-3..6 成功或失败,恢复 payment_batch_v1 到原始关闭态,并复跑公网 flag-off 只读门禁。 1) live spec finally 执行回滚;2) runner 结束后 check-payment-batch-flag-off --json 通过;3) 财务/员工/admin 对 payment-batches/AP 返回 409 flag_force_off 或权限拒绝;4) 回滚失败时 runner 返回非 0 并突出风险;5) 不执行生产恢复或数据库重置。 受影响流程:公网付款批次 feature flag 回滚;验证步骤:P2_FIN_LIVE_APPROVED=1 LIVE_SMOKE_BASE_URL=https://oa.hyinda.com bash scripts/qa/run-p2-fin-live-window.sh;随后 LIVE_SMOKE_BASE_URL=https://oa.hyinda.com node scripts/qa/check-payment-batch-flag-off.mjs --json。 bash|node|playwright DONE DONE DONE scripts/qa/run-p2-fin-live-window.sh|scripts/qa/check-payment-batch-flag-off.mjs|client/tests/e2e/manual/p2-fin-live-payment-batch.spec.ts ["P2FLIVE-6"] DONE: spec finally and runner final hook restored payment_batch_v1 to force_off; final check returned 409 payment_batch_v1_disabled / flag_force_off for finance/employee/admin.
10 P2FLIVE-8 移动和企业微信自动化复核 付款闭环后跑公网移动矩阵和 WeCom UA 自动化;真机测试机器只确认入口、免登和状态查看,不执行付款动作。 1) 公网移动矩阵通过或有可解释失败;2) WeCom UA 自动化通过或有可解释失败;3) 真机如执行只记录查看确认;4) 不新增移动付款能力;5) 不因真机未执行付款阻塞短窗口自动化结论。 受影响流程:移动首页、移动财务入口、企业微信 UA 渲染和 deeplink 查看;验证步骤:cd client && E2E_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/dg7-mobile-information-dedupe.spec.ts tests/e2e/r124-mobile-entry-matrix.spec.ts tests/e2e/r6-wecom-mobile-rendering-hardening.spec.ts --workers=1 --reporter=list。 playwright|manual DONE DONE DONE client/tests/e2e/dg7-mobile-information-dedupe.spec.ts|client/tests/e2e/r124-mobile-entry-matrix.spec.ts|client/tests/e2e/r6-wecom-mobile-rendering-hardening.spec.ts|external ["P2FLIVE-7"] DONE: public mobile matrix 6 passed and WeCom UA rendering matrix 8 passed in report artifacts/qa-flow/p2-fin-live-20260517-001022; no mobile payment action added.
11 P2FLIVE-9 收口回填与提交 回填 P2-FIN-LIVE CSV、文档索引、事实源矩阵和人工试运行报告,执行最终门禁并提交中文 commit。 1) P2FLIVE 各行状态按真实证据回填;2) docs/文档索引.md、docs/文档事实源状态矩阵.md、docs/trialrun/人工试运行报告.md 必要状态更新;3) validate、audit-docs、rg、git diff --check 通过;4) 中文 commit 引用 P2FLIVE;5) 明确未部署和公网最终 flag 状态。 流程级验证:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-16_23-42-08-p2-fin-payment-batch-live-enable.csv;node scripts/qa/audit-docs.mjs --check-registry;rg -n 'P2FLIVE|P2-FIN-LIVE|payment_batch_v1|PAYMENT_BATCH|EXPORT_AP_OPERATIONS|flag_force_off' docs issues scripts client/tests;git diff --check;git status --short。 python3|node|rg|git DONE DONE DONE issues/2026-05-16_23-42-08-p2-fin-payment-batch-live-enable.csv|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md ["P2FLIVE-7","P2FLIVE-8"] DONE: CSV/docs updated; validate_issues_csv passed; audit-docs errors=0 warnings=1 existing unregistered docs files=24; keyword sweep explainable; git diff --check passed; final public flag-off check PASS.