AgentXchain v2.155.24
v2.155.24 adds the first HTTP intake surface for watch automation.
agentxchain watch --listen <port> runs a local webhook listener that accepts
GitHub-style deliveries, verifies HMAC signatures, reuses the governed watch
normalization and routing pipeline, and writes durable result records.
Features
- HTTP webhook intake:
watch --listen <port>starts a foreground listener withPOST /webhookandGET /health. - Signed GitHub deliveries: configure
--webhook-secret <secret>,AGENTXCHAIN_WEBHOOK_SECRET, orwatch.webhook_secretforX-Hub-Signature-256verification. - Local development mode:
--allow-unsignedaccepts unsigned payloads explicitly for local testing. - Request validation: non-JSON, malformed JSON, oversized payloads, missing signatures, invalid signatures, and unsupported event classes fail closed.
- Result correlation:
X-GitHub-Deliveryis returned in the response and persisted into.agentxchain/watch-results/*.json. - Health signal:
/healthreports accepted webhook deliveries without counting rejected requests as processed events.
Evidence
- node --test --test-timeout=60000 cli/test/watch-listen.test.js cli/test/watch-results-inspection.test.js cli/test/watch-event-dir-daemon.test.js cli/test/watch-result-output.test.js cli/test/watch-auto-start.test.js cli/test/watch-route-intake.test.js cli/test/watch-event-intake.test.js cli/test/watch-command.test.js cli/test/frontdoor-install-surface.test.js -> 76 tests / 13 suites / 0 failures / 0 skipped
Tester Re-Run Contract
Verify the shipped package and listener help:
For webhook intake verification, run a local listener with a configured secret,
send a signed GitHub pull-request payload to POST /webhook, then inspect the
durable result:
AGENTXCHAIN_WEBHOOK_SECRET=dev-secret agentxchain watch --listen 8787
agentxchain watch --results --limit 5
The expected proof is a 200 webhook response with result_id, event_id,
intent_id, and delivery_id, plus a matching watch result file that records
the same delivery ID.
For downstream closure proof, 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. If a standing phase gate advances before dispatch,
quote phase_entered with reconciled_before_dispatch; if continuous mode
chains into another run, quote the session_continuation event.
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.