test(e2e): validate M3 acceptance criteria for v3.2.0 milestone closure #559

Merged
hurui200320 merged 1 commits from test/m3-acceptance-gate into master 2026-03-05 15:09:20 +00:00

1 Commits

Author SHA1 Message Date
hurui200320 a8265a5074 test(e2e): validate M3 acceptance criteria for v3.2.0 milestone closure
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 13s
CI / quality (pull_request) Successful in 16s
CI / build (pull_request) Successful in 17s
CI / security (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 35s
CI / unit_tests (pull_request) Successful in 2m0s
CI / docker (pull_request) Successful in 48s
CI / integration_tests (pull_request) Successful in 3m1s
CI / coverage (pull_request) Successful in 4m19s
CI / benchmark-regression (pull_request) Successful in 28m3s
Reworked robot/helper_m3_e2e_verification.py to validate real CLI
command paths for all M3 acceptance criteria:

- agents plan use + agents plan execute through CLI runner with
  real PlanLifecycleService wired to in-memory SQLite UnitOfWork
- agents plan tree with JSON tree structure validation
  (root -> child -> grandchild hierarchy)
- agents plan explain with --show-context and --show-reasoning
  flags, full context snapshot field validation, and confidence
  score verification
- agents invariant add/list --project local/large-project
  (project-scoped, matching acceptance criteria exactly) with
  real InvariantService round-trip (add then list through same
  service instance)
- agents plan correct --dry-run impact analysis and live
  --mode=revert correction through CLI with --yes flag, including
  root boundary validation (root must not be reverted)

Added persistence-backed decision tree verification using
UnitOfWork with in-memory SQLite (write -> read round-trip).
Added explicit Robot process timeouts (120s) on all Run Process
calls in actor_context_management.robot, changeset_persistence.robot,
and decision_di_wiring_smoke.robot for pabot cold-start resilience.
M3 suite uses 60s timeouts. Added suite-level Force Tags (m3,
acceptance_gate, v3.2.0) and per-test acceptance criteria tags for
filtering. Switched to deterministic hardcoded ULIDs for test
reproducibility.

Updated CHANGELOG.md entry for #494. Added Rui Hu to
CONTRIBUTORS.md.

ISSUES CLOSED: #494
2026-03-05 22:36:43 +08:00