The OpenClaw session contract smoke and SSE long-task stream checks used to
live in the Ansible validate role and ran during the Deploy stage. They depend
on the public OpenClaw gateway producing a 'pong' reply, which the bridge
itself cannot guarantee end-to-end. When the gateway returned an empty
completion envelope (CI run 27010307958), the entire Deploy job failed even
though the bridge binary had been installed and was healthy.
Move the lightweight session contract check into the GitHub Actions validate
stage as a new script. Deploy now only asserts the bridge's own state
(binary, ports, /api/ping, /acp/rpc capabilities, routing.resolve), and the
OpenClaw contract check runs in validate where the release-blocking failure
belongs.