AgentXchain v2.155.3
v2.155.3 is a dogfood unblock patch over v2.155.2. It narrows the
BUG-62 reconcile-state governed-path check so that non-state .agentxchain/
files no longer block operator-commit reconciliation.
Bug Fixes
-
BUG-62 reconcile-safe-paths allowlist:
reconcile-state --accept-operator-headno longer refuses operator commits that only modify non-state.agentxchain/files. Two categories are now reconcile-safe:.agentxchain/SESSION_RECOVERY.md— auto-generated recovery documentation.agentxchain/prompts/*— operator-customizable prompt overrides
Core governed state files (
state.json,history.jsonl,events.jsonl,continuous-session.json,session.json) remain protected. Mixed commits that touch both safe and unsafe paths are still blocked.
Evidence
- cd cli && node --test --test-timeout=60000 test/continuous-run.test.js test/beta-tester-scenarios/bug-60-perpetual-idle-expansion.test.js test/schedule-daemon-health-e2e.test.js -> 101 tests / 33 suites / 0 failures
- cd cli && node --test --test-timeout=60000 test/beta-tester-scenarios/bug-62-operator-commit-reconcile.test.js -> 8 tests (3 new: AT-BUG62-004, -005, -006) / 0 failures
Tester Re-Run Contract
Run the shipped package:
For BUG-62 regression proof, quote:
- operator commit that only modifies
.agentxchain/SESSION_RECOVERY.mdis reconciled successfully byagentxchain reconcile-state --accept-operator-head - operator commit that modifies
.agentxchain/prompts/*is reconciled successfully - operator commit that modifies
.agentxchain/state.jsonis still refused withgovernance_state_modified - mixed commit touching both
SESSION_RECOVERY.mdandstate.jsonis still refused
For downstream dogfood proof, quote:
- tusq.dev
agentxchain-dogfood-2026-04branch reconcile succeeds on shipped[email protected]wherev2.155.2refused withgovernance_state_modifiedon.agentxchain/SESSION_RECOVERY.md - continuous perpetual mode dispatches after successful reconciliation
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