Files
Agent-System/.doc/test-reports/2026-09-16-wave2b-nightly-promotion-receipt-test-report.md
T
weichenandCursor 67d73359fd docs(test): Wave 2B nightly promotion-receipt report and matrix sync
Record gate fixtures and infra negative evidence; mark Artifact row
partial for same-commit/digest traceability without same-image claim.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 14:02:24 +00:00

5.1 KiB
Raw Blame History

Wave 2B PU5B:Nightly Real PI + Promotion Receipt 测试报告

一、 测试背景 (Background)

Wave 2(PU4)已合入 dev 并补齐 U8 / full-none 真实 PI 证据。发布加固缺口仍在:PR CI 不跑真实 PI;晋升入口缺少不可变 receipt;基础设施失败易被误记为 PASS。本轮落地夜间入口、receipt 写/校验(含 timed waiver)与 promote-to-test / release-to-main 门禁钩子。不声称 same-image digest 晋升已完成。

二、 测试目标 (Test Objectives)

  • 缺 secret / runner 不可达 → infra_fail receipt,job/脚本非零退出(禁止写成 PASS)
  • 产品断言失败 → product_fail,晋升拒绝
  • PASS → 落盘 receipt;无 receipt / 过期 waiver → promotion-receipt-check 非零退出
  • workflow concurrency cancel-in-progress;PR ci.yml 仍不跑真实 PI
  • Artifact 矩阵行保持 partial(same-commit + digest 可追溯)

三、 测试方案与环境 (Test Plan & Environment)

项 值
OS Linux 7.0.0-31-generic
分支 feature/wave2b-nightly-promotion-receipt
Runner http://127.0.0.1:18865(MiniMax-M2.7-highspeed)
隔离 PG 127.0.0.1:5434/agent_wave2_pi
脚本 scripts/run-nightly-real-pi.sh、promotion-receipt-{write,check}.sh、promote-to-test.sh、release-to-main.sh
Workflow .github/workflows/nightly-real-pi.yml(schedule + workflow_dispatch)
Receipt 目录 .doc/test-reports/assets/promotion-receipts/

用例矩阵:

ID 场景 期望
N1 --dry-infra-fail / 缺 secret verdict=infra_fail,exit 1
N2 fixture PASS commit check OK
N3 fixture product_fail check BLOCKED
N4 fixture infra_fail 无 waiver check BLOCKED
N5 infra_fail + 有效 waiver 绑定 PASS check OK
N6 无 receipt commit check BLOCKED
N7 本机真实 suite(可选墙钟) pass / product_fail / infra_fail 分类落盘

四、 预期结果 (Expected Results)

  • Receipt 最小字段:verdict、commit、recorded_at、runner_url、model_id、protocol、image_digests、suite、failure_class、evidence_refs
  • Waiver:owner、reason、expires_at、binds_receipt(须指向 PASS)
  • git-workflow-helper promote-to-test 校验 dev HEAD;release-to-main 校验 test HEAD

五、 实际测试结果与判定 (Actual Results & Evaluation)

N1 — infra 负例(本机 dry)

  • 测试输入 (Input):./scripts/run-nightly-real-pi.sh --dry-infra-fail
  • 实际输出 (Actual Output):
==> nightly real-PI suite commit=82780222373d runner=http://127.0.0.1:18865
forced infra failure (--dry-infra-fail)
wrote promotion receipt: .../82780222373de1ded853e3fe5a8f2208133bc7c7.json
wrote infra_fail receipt (dry)
  • 评价判定 (Evaluation / Verdict):PASS(verdict=infra_fail,exit 1;非绿)
  • 性能与耗时 (Duration & Latency):<1s

对应 receipt 摘录见 assets;晋升门禁对该 commit:

promotion-receipt-check: BLOCKED — infra_fail receipt freezes promotion (...); provide timed waiver or re-run nightly

N2–N6 — fixture 门禁

用例 commit fixture 实际 判定
N2 PASS aaaa… OK — PASS receipt PASS
N3 product cccc… BLOCKED — product_fail PASS
N4 infra dddd… BLOCKED — infra_fail … freeze PASS
N5 waiver dddd… + waiver→eeee… PASS OK — audited waiver … until 2099-01-01 PASS
N6 missing bbbb… BLOCKED — missing promotion receipt PASS

N7 — 本机真实 suite

  • 测试输入:TEST_DATABASE_URL=…/agent_wave2_pi + RUNNER_AUTH_TOKEN + ./scripts/run-nightly-real-pi.sh
  • 说明:墙钟取决于 PI;结果与日志落入 promotion-receipts/evidence-<sha>-<stamp>/ 与 <sha>.json。若 Actions 缺 secret,workflow 同样写 infra_fail 并 fail(不得 skip 冒充绿)。
  • 评价判定:以当次 receipt verdict 为准;本报告以 N1–N6 关闭脚本/门禁契约,真实 suite 由合入后夜间/手动 dispatch 持续执行。

六、 自动化测试套件汇总 (Test Suite Execution)

合入冒烟(清污染环境变量):

unset AGENT_TIMEOUT KB_DATABASE_URL KB_EMBEDDING_DIM
go vet ./...
go test -short ./...

PR CI 不变;新增 nightly workflow 不进入 PR 路径。

七、 测试结论与后续优化建议 (Conclusion & Next Steps)

  • 结论:Wave 2B 脚本门禁与 nightly 入口已交付;infra/product 分类与 waiver 链可审计;晋升钩子在无 PASS receipt 时非零退出。
  • 明确未完成:compose 按 digest pull 的 same-image 晋升流水线仍未做 → FEATURE-MATRIX「Artifact 同 digest 晋升」保持 partial。
  • 后续:配置 Actions RUNNER_AUTH_TOKEN + NIGHTLY_TEST_DATABASE_URL(或自托管 runner);Wave 3 候选(Playwright 双标签 / tier)。

证据路径

  • Receipts / fixtures:.doc/test-reports/assets/promotion-receipts/
  • Short-term:.doc/ops/short-term/2026-09-16-wave2b-nightly-promotion-receipt.md