AgentXchain v2.148.0
v2.148.0 hardens the local-CLI adapter diagnostics for BUG-54 and lands both BUG-55 sub-defects at the source and release-boundary layers. BUG-54 is not closed — it remains open pending tester-quoted proof of >90% QA dispatch reliability on this shipped package. BUG-55 sub-A and sub-B fixes are both in the tarball and covered by packaged claim-reality preflight.
Bug Fixes
-
BUG-54 adapter timing diagnostics:
local-cli-adapternow emitsstartup_watchdog_ms,startup_latency_ms, andelapsed_since_spawn_mson thespawn_attached,first_output,startup_watchdog_fired, andprocess_exitdiagnostic lines. Operators can compare observed startup against the effective watchdog from a single diagnostic row instead of diffing ISO strings, whether it came fromrun_loop.startup_watchdog_msor aruntimes.<id>.startup_watchdog_msoverride. -
BUG-54 real-Claude stdin proof: a CLAUDE-gated integration test now exercises the repo's actual authoritative Claude runtime contract (
claude --print --dangerously-skip-permissionswithprompt_transport: "stdin") across 10 consecutive dispatches. The probe fails loudly on timeout, non-zero, or malformed--versionoutput and only skips on ENOENT. Handle growth stays bounded (<= 3),stdin_errorcount is zero, and the watchdog→SIGTERM→close cleanup path is backed by quoted diagnostic lines instead of a soft claim. -
BUG-55 sub-A checkpoint completeness:
checkpoint-turnnow partitions declaredfiles_changedpaths into staged, already_committed_upstream, and genuinely_missing. It fails loudly only ongenuinely_missing, which preserves the tester-reported dirty-survival gate while accepting the legitimate BUG-23 pattern where the actor committed a declared file before checkpoint ran. Staged paths still commit into the checkpoint; already-committed-upstream paths are surfaced on the result for audit. -
BUG-55 sub-B undeclared verification outputs: acceptance rejects turns that declared
verification.commands(or non-emptymachine_evidence) but left undeclared fixture outputs dirty, emitting the dedicatederror_code: 'undeclared_verification_outputs'with the remediation pointerverification.produced_files. Blankverification.commands[]/machine_evidence[].commandentries are now rejected at validation time so the malformed-declaration fall-through cannot mask the dedicated error class. -
BUG-55 packaged claim-reality proof: the shipped tarball now carries both BUG-55 behavioral rows — checkpoint-completeness commit-all-declared and rejection-then-acceptance on undeclared verification outputs — so package regressions cannot silently reintroduce either sub-defect.
Decisions
DEC-BUG55A-ALREADY-COMMITTED-UPSTREAM-002DEC-BUG55B-UNDECLARED-VERIFICATION-OUTPUTS-001DEC-BUG55B-REJECTION-OVER-AUTO-CLASSIFY-001DEC-BUG55-VERIFICATION-COMMAND-NONEMPTY-001DEC-BUG54-REAL-CLAUDE-EVIDENCE-001DEC-BUG54-REAL-STDIN-PROOF-001DEC-BUG54-CLAUDE-PROBE-FAIL-LOUD-001DEC-V2148-RELEASE-GATE-READY-001
Operator Notes
- Tight startup watchdog values can starve real Claude startup when auth is cold or plugins init slowly. First-stdout latency is ~276ms with warm auth on a dev machine; cold-start can exceed a tight watchdog. Use the new
startup_latency_msdiagnostic to observe actual startup on your environment before tuning the watchdog down, and preferruntimes.<id>.startup_watchdog_mswhen only onelocal_cliruntime is slower than the rest.
Tester Re-Run Contract
Run the shipped package, not the source tree:
For closure evidence on v2.148.0, quote the exact command output or diagnostic lines for these checks. BUG-52 and BUG-53 fixes shipped in v2.147.0 are unchanged in v2.148.0; re-verify them against this shipped package so closure evidence is pinned to the latest published version.
- BUG-54 QA startup reliability: run the tester's normal QA flow on
v2.148.0and quote the adapter diagnostic lines that includestartup_latency_msandelapsed_since_spawn_ms. If the QA runtime is slower than the repo default, setruntimes.<id>.startup_watchdog_msbefore rerunning and quote the effective override from the diagnostic line. Closure requires QA dispatches succeeding at>90%on the tester's real setup, not just "startup failures are detected." If QA still fails, quote the exactstartup_failure_typeand the surroundingspawn_prepare/spawn_attached/startup_watchdog_fired/process_exitlines. - BUG-55 sub-A checkpoint completeness: quote the
accept-turn+checkpoint-turnresult for a real QA turn and the resultinggit status --short. The tree must be clean after checkpoint, and the already-committed-upstream path must not false-positive as missing. - BUG-55 sub-B verification outputs: first quote the failure showing
undeclared_verification_outputstogether with theverification.produced_filesremediation pointer; then quote the clean acceptance path after the produced file is declared. - BUG-55 combined tester shape: if the same QA turn both declares
files_changedand its verification commands produce fixture outputs, runaccept-turnfollowed bycheckpoint-turnand quotegit status --shortafter. Clean tree means BUG-55 is fixed for your reproduction; any leftover actor-owned file or fixture path means it is not. - BUG-52 phase-gate reconciliation (rides along from v2.147.0): run the tester's exact CLI chain
agentxchain accept-turn→agentxchain checkpoint-turn→agentxchain unblock <hesc-id>→agentxchain resumeon a realplanning_signoffescalation. Quote the resulting dispatched turn'sassigned_role(must bedev, not another PM) and thephase_enteredevent line containingtrigger: "reconciled_before_dispatch". Repeat the same chain on aqa_ship_verdictescalation and quote that the next dispatched role islaunch, not another QA. No manualstate.jsonpatching at any step. - BUG-53 continuous auto-chain (rides along from v2.147.0): run
agentxchain run --continuous --max-runs 3from a clean session. After the first run completes cleanly, quote thesession_continuationevent line (formatsession_continuation <previous_run_id> -> <next_run_id> (<next_objective>)) and confirm session status staysrunning, never transitions topausedbetween runs. On reaching--max-runs, status must end ascompletedoridle_exit, neverpaused.
The closure artifact is the tester's quoted shipped-package output. No source-tree run, local green test, or agent summary is sufficient for BUG-52, BUG-53, BUG-54, or BUG-55.
Status
- BUG-54: adapter diagnostics + real-Claude stdin loop shipped, awaiting tester-quoted QA dispatch reliability proof on
v2.148.0. - BUG-55 sub-A: checkpoint completeness refined to partition staged / already-committed-upstream / genuinely-missing; awaiting tester verification on
v2.148.0. - BUG-55 sub-B: undeclared verification outputs rejection shipped; awaiting tester verification on
v2.148.0. - BUG-52: v2.147.0 fix remains under tester verification — no changes in this release.
- BUG-53: v2.147.0 fix remains under tester verification — no changes in this release.
Evidence
- node --test cli/test/beta-tester-scenarios/*.test.js → 153 tests / 61 suites / 0 failures
- node --test cli/test/claim-reality-preflight.test.js → 36 tests / 1 suite / 0 failures