AgentXchain v2.154.5
v2.154.5 is a BUG-52 third-variant release. It ships the activeCount-agnostic
unblock fix for standing human gates, plus the missing empty-active negative
proof that keeps the repair evidence-gated.
Current quote-back target: use
[email protected]or later for BUG-52 tester evidence.v2.154.5shipped the activeCount-agnostic unblock fix, but it still loops on the realistic PMneeds_humanhandoff whereproposed_next_role: "human"andphase_transition_request: null. That predicate first landed inv2.154.7(Turn 205), together with the Turn 206 verification-safety repair. The canonical tester runbook is.planning/BUG_52_TESTER_QUOTEBACK_RUNBOOK.md.
Bug Fixes
-
BUG-52 activeCount=0 unblock loop:
agentxchain unblock <hesc>now runs the standing-gate reconciliation path for every blocked operator-unblock resume, even whenactive_turnsis empty. This closes the tester's v2.151.0 loop wherepending_phase_transition: null,planning_signoff: pending, and no retained PM turn causedunblockto redispatch PM instead of entering implementation. -
BUG-52 evidence-gated empty-active negative path: the empty-active standing-gate path now has command-chain proof that missing required evidence leaves the run blocked in the original phase, keeps the gate pending, avoids dispatching the next phase role, and emits no
phase_enteredorphase_cleanupevents. -
BUG-52 spec alignment:
.planning/BUG_52_RECONCILE_SOURCE_RESOLUTION_SPEC.mdnow records the activeCount=0 positive and negative acceptance contract.
Operator Notes
For BUG-52 closure, run the tester chain against the shipped package: accept and
checkpoint a PM needs_human turn with no phase_transition_request, resolve
the human escalation with agentxchain unblock <hesc>, then verify the run
enters implementation and dispatches dev rather than looping back to PM.
Decisions
DEC-BUG52-UNBLOCK-ADVANCES-PHASE-001DEC-BUG52-UNBLOCK-ADVANCES-PHASE-ACTIVECOUNT-AGNOSTIC-001DEC-BUG52-STATE-CLEANUP-ON-PHASE-ADVANCE-001
Evidence
- node --test --test-timeout=60000 test/beta-tester-scenarios/bug-52-gate-unblock-phase-advance.test.js -> 10 tests / 1 suite / 0 failures / 0 skipped
- node --test --test-timeout=60000 test/beta-tester-scenarios/ test/governed-cli.test.js test/claim-reality-preflight.test.js -> 299 tests / 77 suites / 0 failures / 5 skipped
Tester Re-Run Contract
Run the latest shipped package that carries the full BUG-52 third-variant fix stack, not the source tree:
The command above supersedes the original v2.154.5 quote-back pin. Use the
canonical runbook in .planning/BUG_52_TESTER_QUOTEBACK_RUNBOOK.md for the
exact realistic PM handoff shape, pre-/post-unblock state fields, durable
events, and negative counter-case.
For BUG-52 closure, quote all of the following from a shipped-package run:
agentxchain statusreportsPhase: implementationafterunblockagentxchain gate show planning_signoffreportsStatus: passed- 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-52 closure proof, quote phase_entered after unblock.
Older paths may still show trigger: "reconciled_before_dispatch". Standing
gate paths should also show cleanup evidence when stale same-phase state
existed.
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 plus routine auto-approval ledger
rows and credentialed hard-stop counter-evidence.
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 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.