fix(scripts): fall back to local check:changed lanes on full Crabbox provider outage (#121323)

Recognize Crabbox workload-routing provider exhaustion as a pre-dispatch backend outage so check:changed runs its documented local fallback.

The observed full provider-chain outage previously exited 2 without running local lanes.

The existing command-exit veto still runs first, so a remote run that actually executed and failed remains fail-closed.
This commit is contained in:
Peter Steinberger
2026-08-09 19:06:01 -07:00
committed by GitHub
parent 50026f1031
commit e61ba9c1ea
2 changed files with 16 additions and 2 deletions
+11
View File
@@ -2431,6 +2431,17 @@ describe("delegationFailedBeforeRunning", () => {
expect(delegationFailedBeforeRunning(output)).toBe(false);
});
it("treats a full workload-routing provider outage as never having run", () => {
// Provider selection happens before any dispatch, so an exhausted routing
// chain (every doctor failing) can never carry a remote verdict.
const output = [
"[crabbox] no ready provider for workload=ci-fast",
"[crabbox] provider readiness blacksmith-testbox:doctor exited 1,daytona:doctor exited 124,azure:doctor exited 124,aws:doctor exited 124",
].join("\n");
expect(delegationFailedBeforeRunning(output)).toBe(true);
});
it("does not mistake an infrastructure error kind for a command verdict", () => {
const output = [
"failed to acquire lease for testbox",