Skip to content

Commit 7aae537

Browse files
committed
fix: satisfy failover proof review
1 parent 02125fd commit 7aae537

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,6 @@ Docs: https://docs.openclaw.ai
196196
- Auth/Codex: emit a one-shot actionable `log.warn` from the embedded legacy Codex OAuth sidecar loader when the only available seed lives in the macOS Keychain, naming `openclaw doctor --fix` and macOS Keychain instead of letting the credential silently fall through to a downstream `No API key found for provider "openai-codex"`. Thanks @romneyda.
197197
- Agents: fail closed when provider-less session models match multiple provider-prefixed runtime policies so CLI runtime routing no longer depends on config order. (#85970) Thanks @potterdigital.
198198
- Control UI/agents: keep collapsed tool rows readable without early ellipses, preserve raw expanded tool details, and make post-compaction AGENTS.md reinjection opt-in to avoid duplicated project context. Fixes #45649 and #45488. Thanks @BunsDev.
199-
- Codex: keep harness-owned turn timeouts inside the Codex runtime boundary instead of rotating auth profiles, falling back to public OpenAI, or retiring the shared app-server.
200199

201200
## 2026.5.24
202201

src/agents/pi-embedded-runner/run/failover-policy.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,11 @@ function shouldRotateAssistant(params: AssistantDecisionParams): boolean {
127127
}
128128

129129
function assistantFallbackReason(params: AssistantDecisionParams): FailoverReason {
130-
if (isConcreteNonTimeoutAssistantFailure(params)) {
131-
return params.failoverReason;
130+
const failoverReason = params.failoverReason;
131+
if (params.failoverFailure && failoverReason && failoverReason !== "timeout") {
132+
return failoverReason;
132133
}
133-
return isAssistantTimeoutFailure(params) ? "timeout" : (params.failoverReason ?? "unknown");
134+
return isAssistantTimeoutFailure(params) ? "timeout" : (failoverReason ?? "unknown");
134135
}
135136

136137
export function mergeRetryFailoverReason(params: {

0 commit comments

Comments
 (0)