Files
Agent-System/.doc/test-reports/2026-09-15-event-e1b-workflow-advance-test-report.md
T

3.3 KiB
Raw Blame History

E1B workflow advance shadow/live/rollback 测试报告

一、 测试背景 (Background)

E1A 已把 notify 接到同事务 Handler。本波把 document.approved 的 workflow_advance 接到同一 dispatcher:重读文档/项目/阶段、service principal 鉴权,用已有 stage_advance_requests (stage_instance_id, readiness_revision) 唯一约束保证并发/重放只产生一次阶段可推进可见结果。生产集群 mode 保持 off。

二、 测试目标 (Test Objectives)

  • Goose 00042 additive:stage_advance_requests.source_event_id + 部分唯一索引。
  • Shadow dry-run 不写 stage_advance_requests;MarkDocTaskApproved 走 fenced tx,Rollback 可撤销。
  • Live 两次 RunOnce + 双 worker 并行:同一 workflow instance 仅 1 条 stage-ready 请求与 1 条通知。
  • 缺文档 / 跨项目 → quarantine。
  • 第二份 approved envelope 不新增 stage_advance_requests。
  • mode=off 回滚不再 claim。

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

项 值
OS Linux 7.0.0-31-generic
Go go1.27.1 linux/amd64
分支 fix/event-workflow-advance
Schema 42
PostgreSQL 隔离库 agent_rel_e1b(:5434);测完 DROP
项目 143 只读
默认 mode off
证据 .doc/test-reports/assets/2026-09-15-event-e1b-workflow-advance/

语义:至少一次投递 + 恰好一个可见结果。不是 exactly-once delivery。

四、 预期结果 (Expected Results)

用例 期望
shadow stage_advance_requests=0;有 recon
live 并行 + 再 RunOnce requests=1;notifications=1
重复 approved 事件 requests 仍为 1
missing doc delivery=quarantine
mode=off claim=0

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

5.1 隔离库 PG

  • 测试输入: TEST_DATABASE_URL → 127.0.0.1:5434/agent_rel_e1b;go test -v ./internal/app/docadvance -run TestE1B_
  • 实际输出: assets/.../pg-test.txt goose 至 42;TestE1B_AdvanceShadowLiveRollback_PG PASS(0.33s)
  • 评价判定: PASS
  • 性能与耗时: 含 goose 0.33s

5.2 race

  • 测试输入: 同上;go test -race ./internal/app/docadvance -run TestE1B_
  • 实际输出: assets/.../race.txt PASS(1.12s)
  • 评价判定: PASS

5.3 共享库 mode(只读)

  • 测试输入: SELECT environment, consumer, mode FROM event_consumer_modes
  • 实际输出: 全部 off(assets/.../consumer-modes.txt)
  • 评价判定: PASS

5.4 arch-check / short

  • 测试输入: ./scripts/arch-check.sh --mode block;go test -short ./internal/events ./internal/archtest ./internal/app/docadvance
  • 实际输出: PASS
  • 评价判定: PASS

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

命令 结果
隔离库 TestE1B_* PASS schema 42
go test -race ./internal/app/docadvance PASS
arch-check --mode block PASS
生产 workflow_advance mode off;闭包 AddOnApprovedHook 仍是 HTTP 进程写者

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

E1B PASS。cmd/events 已注册 workflow_advance,集群开关仍 off。下一波 E1C:projection no-replace + 三类 worker 重启 + 授权页面刷新。不激活 FAV。不删除批准 hook(E2)。