Skip to main content

AgentXchain v2.155.2

v2.155.2 is a dogfood unblock patch over v2.155.1. It preserves the BUG-60 perpetual continuous mode feature while fixing BUG-63: idle-expansion must not enqueue PM synthesis work until the inherited governed run has proven it can legally start.

Bug Fixes

  • BUG-63 startup eligibility before idle-expansion: continuous startup now performs checkpoint reconciliation, operator-commit drift checks, and inherited blocked-run eligibility checks before the idle-policy branch can dispatch a PM idle-expansion intent.

  • Actionable blocked pause: inherited blocked runs now pause continuous mode with still_blocked, preserve run_id, blocked_category, and recovery_action, and avoid changing intake state. This keeps the original human or reconciliation blocker visible instead of hiding it behind a later start failure.

  • No-mutation operator-drift refusal: unsafe operator-commit drift under auto_safe_only returns operator_commit_reconcile_refused before any idle_expansion_dispatched event or new intake intent is created.

Evidence

  • node --test --test-timeout=60000 test/continuous-run.test.js test/continuous-budget.test.js test/beta-tester-scenarios/bug-60-perpetual-idle-expansion.test.js test/schedule-daemon-health-e2e.test.js -> 111 tests / 39 suites / 0 failures / 0 skipped

Tester Re-Run Contract

Run the shipped package:

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

For downstream closure, start from a clean checkpoint and quote:

  • functional downstream behavior remains fixed: continuous does not idle out in QA, QA advances, launch_ready unblock completes the run, and no duplicate dispatch occurs
  • quote any startup_latency_ms, elapsed_since_spawn_ms, and runtimes.<id>.startup_watchdog_ms evidence relevant to adapter-path reliability while confirming the downstream flow still uses the real runtime path
  • after final terminal approval, status is completed, pending_run_completion=null, and active_turns={}
  • durable events include both gate_approved for run_completion and run_completed
  • non-terminal phase recovery should still quote phase_entered with reconciled_before_dispatch if a standing gate advances before dispatch
  • .agentxchain/continuous-session.json no longer stays at paused with runs_completed=0; quote the terminal session shape after the run completes
  • session_continuation should still be quoted if the continuous session chains into another run; otherwise quote the terminal reason instead
  • if the project still reports approval_policy: null, say so explicitly rather than fabricating approval-policy ledger evidence

For BUG-55 regression proof, continue using accept-turn followed by checkpoint-turn and quote verification.produced_files, undeclared_verification_outputs, and git status --short.

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

For BUG-60 verification, use the self-contained fixture in .planning/TESTER_QUOTEBACK_ASK_V6_BUG60.md and quote:

  • idle_expansion_dispatched after the vision queue empties under --on-idle perpetual
  • idle_expansion_ingested with payload.kind == "new_intake_intent" or payload.kind == "vision_exhausted"
  • idle_expansion_cap_reached when expansion cap exhaustion is the terminal path
  • .agentxchain/continuous-session.json with non-zero expansion_iteration and non-empty vision_headings_snapshot
  • budget-stop evidence as status: "session_budget" and budget_exhausted: true if the session budget path is exercised

For BUG-63 dogfood regression proof, quote:

  • blocked inherited runs return still_blocked before idle-expansion dispatch
  • idle_expansion_dispatched is absent when the inherited run is blocked
  • no new .agentxchain/intake/intents/ file is created for the blocked-run negative path
  • unsafe operator-commit drift returns operator_commit_reconcile_refused before idle-expansion mutation