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, preserverun_id,blocked_category, andrecovery_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_onlyreturnsoperator_commit_reconcile_refusedbefore anyidle_expansion_dispatchedevent 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:
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_readyunblock completes the run, and no duplicate dispatch occurs - quote any
startup_latency_ms,elapsed_since_spawn_ms, andruntimes.<id>.startup_watchdog_msevidence 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, andactive_turns={} - durable events include both
gate_approvedforrun_completionandrun_completed - non-terminal phase recovery should still quote
phase_enteredwithreconciled_before_dispatchif a standing gate advances before dispatch .agentxchain/continuous-session.jsonno longer stays atpausedwithruns_completed=0; quote the terminal session shape after the run completessession_continuationshould 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_dispatchedafter the vision queue empties under--on-idle perpetualidle_expansion_ingestedwithpayload.kind == "new_intake_intent"orpayload.kind == "vision_exhausted"idle_expansion_cap_reachedwhen expansion cap exhaustion is the terminal path.agentxchain/continuous-session.jsonwith non-zeroexpansion_iterationand non-emptyvision_headings_snapshot- budget-stop evidence as
status: "session_budget"andbudget_exhausted: trueif the session budget path is exercised
For BUG-63 dogfood regression proof, quote:
- blocked inherited runs return
still_blockedbefore idle-expansion dispatch idle_expansion_dispatchedis 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_refusedbefore idle-expansion mutation