mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 07:31:33 +00:00
* fix(scripts): run changed checks locally when Blacksmith never ran them AGENTS.md already says trusted-source work falls back to local execution when the remote backend is unavailable, but the tooling did not implement it: a lease, broker, DNS, or network failure surfaced as a plain exit 1, so the lanes were reported red without ever having been evaluated. That is worse than slow — a run that never happened looked the same as a run that failed. Tee the wrapper output and use its run summary as the discriminator. The summary only appears once the command reached the box, so a failure carrying `command-exit` is a real verdict and propagates unchanged; anything else never produced one and re-runs locally, with a loud note so the proof summary records which machine produced it. Deliberately a positive test for `command-exit` rather than a blocklist of infrastructure errors. Guessing wrong toward "infrastructure" only re-runs the checks locally; guessing wrong toward "real failure" would block on an outage. It must never widen to "fall back on any non-zero exit" — prompt snapshots are Linux-only truth and would pass locally on macOS, turning a red gate green. The sparse-checkout path keeps no fallback: it exists precisely because the checkout cannot resolve the diff refs, so there is nothing local to run. * fix(scripts): require positive pre-dispatch evidence before falling back A missing run summary does not prove the remote never started: a wrapper that crashes or loses its output transport after dispatch looks identical. Reading that absence as "never ran" would rerun locally and could turn an unknown or failing Linux-only lane green, which is the exact masking this guard exists to prevent. Require a positive pre-dispatch signature instead, and keep the command-exit veto. Also reapply backpressure on the tee: inherited stdio got it from the OS, piping does not, so a verbose delegated run could buffer its whole output here.