fix: resolve scheduled live and e2e CI failures on main#98686
Closed
LZY3538 wants to merge 1 commit into
Closed
Conversation
Fix two issues causing the nightly scheduled CI checks to fail since 2026-06-28: 1. model-fallback e2e: pass abortSignal to runWithModelFallback so the new isCallerAbortSignal guard in runFallbackCandidate can detect caller-initiated aborts. Previously only runEmbeddedAgent received the signal via the run callback closure; runWithModelFallback never saw it, so the new guard silently treated every abort as a provider-side error and fell through to the fallback loop, eventually surfacing FallbackSummaryError. 2. gateway tests: add a dev agent entry to test configs that reference agent:dev session keys. The gateway now rejects requests for agents not in the config list. Also make buildLiveGatewayConfig default to a dev agent when the input config has no agents configured. Co-Authored-By: Claude <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Problem This Solves
The nightly "OpenClaw Scheduled Live And E2E Checks" workflow has been failing consistently since 2026-06-28, causing CI emails for every scheduled run. Two distinct regressions were found.
Why This Change Was Made
Issue 1: model-fallback e2e test —
FallbackSummaryErrorinstead ofAbortErrorCommit 98ed83f replaced the
shouldRethrowAbort(err)guard inrunFallbackCandidatewithisCallerAbortSignal(params.abortSignal). The new guard checks whether the abort signal object passed torunWithModelFallbackis aborted, rather than checking the error name. However, the test helperrunEmbeddedFallbackonly forwardedabortSignaltorunEmbeddedAgentvia theruncallback closure — it never passed it torunWithModelFallbackitself. With the signal absent,isCallerAbortSignalalways returned false, and the AbortError fell through to the fallback loop where it was eventually wrapped as aFallbackSummaryError.Fix: Add
abortSignal: params.abortSignalto therunWithModelFallbackcall inrunEmbeddedFallback.Issue 2: gateway tests —
Agent "dev" no longer exists in configurationA new deleted-agent validation check now rejects gateway requests whose session key references an agent not in the config list. Several test configs used
agent:devsession keys without including a "dev" entry inagents.list.Fix:
agents.list: [{ id: "dev", default: true }]to thegateway.test.tse2e configbuildLiveGatewayConfigdefault to a "dev" agent when the input config has no agents configured, fixing thegateway-models.profiles.live.test.tslive suitesUser Impact
Scheduled CI checks return to green. No production code changes.
Evidence
pnpm test src/agents/model-fallback.run-embedded.e2e.test.ts— 20/20 passed (was 19/20)pnpm test src/gateway/gateway.test.ts— 4/4 passed (was 3/4)pnpm format:check— all modified files passbuildLiveGatewayConfigchange is purely additive (only kicks in when agents list is empty) and all existing tests continue to pass🤖 Generated with Claude Code