Skip to main content

AgentXchain v2.154.8

v2.154.8 is the BUG-52 escalation-turn repair release. It fixes the tusq.dev quote-back failure where agentxchain unblock <hesc> resolved the human escalation but redispatched PM in planning because a stale last_completed_turn_id overrode the turn that actually requested human gate approval.

Bug Fixes

  • BUG-52 escalation-linked standing gate recovery: operator unblock now uses the escalation-linked turn as the standing gate source before falling back to last_completed_turn_id. If the PM turn tied to the open escalation satisfied planning_signoff, unblock advances to implementation and dispatches dev instead of looping PM.

  • BUG-52 approval attribution: gate_approved and phase_entered events now include requested_by_turn for the approved phase transition, giving beta testers a stable quote-back field for the exact PM turn approved by the human.

  • Vitest contract cleanup: the local CLI adapter subprocess test now imports node:child_process dynamically inside the node:test-only test body, keeping the Vitest static dependency contract green.

Evidence

  • node --test cli/test/beta-tester-scenarios/bug-52-gate-unblock-phase-advance.test.js && node --test cli/test/vitest-contract.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 tusq.dev run:

  • agentxchain status reports Phase: implementation after unblock
  • agentxchain gate show planning_signoff reports Status: passed
  • phase_entered is present after unblock with a valid recovery trigger such as reconciled_before_dispatch
  • gate_approved.payload.requested_by_turn matches the PM turn tied to the human escalation
  • 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-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-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-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.