AgentXchain v2.155.0
v2.155.0 ships BUG-60: the perpetual continuous idle-expansion policy. When
--on-idle perpetual is set and the vision-scan queue is exhausted, a PM
idle-expansion turn synthesizes next work from VISION/ROADMAP/SYSTEM_SPEC and
ingests it via vision_idle_expansion intake events. Three idle policies are
now available: exit (default, bounded), perpetual (PM expansion), and
human_review (pause for operator).
Features
-
Perpetual continuous idle-expansion:
--on-idle perpetualdispatches a PM turn with thepm-idle-expansion.mdprompt when the vision queue goes empty. The PM reads VISION + ROADMAP + SYSTEM_SPEC, synthesizes anew_intake_intentor signalsvision_exhausted, and the result is ingested through the standard intake pipeline as avision_idle_expansionevent. -
Human-review idle policy:
--on-idle human_reviewpauses the session withidle_human_reviewstatus when vision is exhausted, letting the operator review before continuing. -
Schedule-owned session vision snapshot: schedule daemon captures vision headings and content SHA at session creation via
resolveContinuousOptions(), enabling idle-expansion iteration tracking and stale-drift detection. -
PM idle-expansion prompt scaffold:
agentxchain initwrites.agentxchain/prompts/pm-idle-expansion.mdwith charter-aware expansion constraints including budget-before-idle ordering and VISION immutability.
Bug Fixes
-
Schedule daemon E2E fixtures:
resolveContinuousOptions()defaultsautoCheckpoint: true; test fixtures now initialize git repos so checkpoint-turn succeeds (AT-SDH-008 through AT-SDH-011). -
Claim-reality preflight paused guard: expanded context window and added
idle_human_reviewto the blocked-status regex for the BUG-53 guard. -
Intake docs source guard: added
vision_idle_expansionto cli.mdx and continuous-delivery-intake.mdx documentation.
Evidence
- node --test cli/test/continuous-run.test.js cli/test/schedule-daemon-health-e2e.test.js cli/test/claim-reality-preflight.test.js cli/test/docs-cli-intake-content.test.js -> 136 tests / 28 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:
- Positive evidence: idle expansion dispatched and ingested — PM turn fires
when vision queue empties with
--on-idle perpetual, producesidle_expansion_resultwithnew_intake_intent, and the intent is ingested as avision_idle_expansionintake event. - Terminal evidence:
vision_exhaustedandvision_expansion_exhaustedterminal states fire correctly when PM signals no further work. - Budget ordering:
per_session_max_usdis checked before idle policy, ensuring budget exhaustion wins over perpetual expansion. - Quote
idle_policy,on_idle,expansion_iteration, and terminalsession_terminal_reasonfields from the continuous session state.
Keep BUG-62 separate in scratch because prior history mixed checkpoint
baselines with governed .agentxchain changes.