Skip to main content

AgentXchain v2.154.7

v2.154.7 is the BUG-52 third-variant discriminator repair release. It ships the realistic PM needs_human handoff fix that v2.154.5 missed, while preserving verification-gated QA safety for synthetic standing-gate recovery.

Bug Fixes

  • BUG-52 realistic human-signoff handoff: agentxchain unblock <hesc> now advances a standing pending human-approval gate even when the accepted PM turn used status: "needs_human", left phase_transition_request: null, and set proposed_next_role: "human". The discriminator requires that the accepted turn contributed at least one of the gate's required files and that all required files exist on disk.

  • BUG-52 verification-gated synthetic source safety: synthetic standing-gate transition sources no longer fabricate verification for gates that declare requires_verification_pass: true. If the latest blocked turn did not pass verification, unblock resumes in the current phase instead of advancing.

  • BUG-52 spec and decision alignment: .planning/BUG_52_RECONCILE_SOURCE_RESOLUTION_SPEC.md and .planning/DECISIONS.md now record the artifact-contribution discriminator and the verification-preserving synthetic-source guard.

Operator Notes

For BUG-52 closure, run the tester chain against this shipped package, not v2.154.5. The target shape is a PM needs_human turn with no phase_transition_request, proposed_next_role: "human", accepted and checkpointed with planning gate artifacts present, followed by agentxchain unblock <hesc>.

Decisions

  • DEC-BUG52-UNBLOCK-GATE-ARTIFACT-CONTRIBUTION-DISCRIMINATOR-001
  • DEC-BUG52-STANDING-GATE-SYNTHETIC-SOURCE-HONORS-VERIFICATION-001

Evidence

  • node --test --test-timeout=60000 test/beta-tester-scenarios/bug-52-gate-unblock-phase-advance.test.js -> 12 tests / 1 suite / 0 failures / 0 skipped
  • node --test --test-timeout=60000 test/human-escalation.test.js test/run-schedule-e2e.test.js test/beta-tester-scenarios/bug-52-gate-unblock-phase-advance.test.js -> 26 tests / 3 suites / 0 failures / 0 skipped

Tester Re-Run Contract

Run the shipped package:

npx --yes -p [email protected] -c "agentxchain --version"

For BUG-52 closure, quote all of the following from a shipped-package run:

  • agentxchain status reports Phase: implementation after unblock
  • agentxchain gate show planning_signoff reports Status: passed
  • phase_entered is present after unblock (standing-gate paths may report trigger: "reconciled_before_dispatch" or trigger: "auto_approved", depending on policy)
  • the next active turn is assigned to dev
  • no duplicate PM redispatch occurs
  • no ghost recovery is required for the phase advance

BUG-52 remains open until that shipped-package quote-back lands. BUG-61, BUG-62, BUG-54, BUG-59, and BUG-53 remain open under their existing shipped package closure contracts.

For still-open BUG-62 closure, reproduce the tester drift scenario: make a safe manual product-file commit on top of an agent checkpoint, run a continuous session with reconcile_operator_commits: "auto_safe_only", and quote the state_reconciled_operator_commits event emitted before the next dispatch. Then make an unsafe operator commit that edits .agentxchain/state.json or deletes .planning/acceptance-matrix.md; quote agentxchain status, agentxchain status --json, operator_commit_reconcile_refused, the error_class, and the recovery action.

For still-open BUG-53 closure proof, run the shipped package in continuous mode and quote session_continuation events across chained runs. A bounded idle run should end as idle_exit, not as a paused gate.

For still-open BUG-54 and BUG-59 closure proof, pin to [email protected] or later and follow .planning/BUG_59_54_TESTER_QUOTEBACK_RUNBOOK.md. That runbook covers the real adapter-path watchdog evidence (startup_latency_ms, elapsed_since_spawn_ms, and any runtimes.<id>.startup_watchdog_ms override) plus routine auto-approval ledger rows and credentialed hard-stop counter-evidence.

For still-open BUG-54 closure proof, use the BUG-54/BUG-59 runbook above. The closure evidence must come from the adapter path, not from a standalone spawn harness.

For still-open BUG-55 regression proof, run accept-turn followed by checkpoint-turn on a turn that declares both product files and verification outputs. Include verification.produced_files with at least one artifact or ignored output, prove there are no undeclared_verification_outputs, and quote git status --short after checkpointing.

Clean tree means BUG-55 is fixed for your reproduction.

The key operator chain is accept-turn followed by checkpoint-turn against the same accepted turn.