Skip to content

feat: add bounded chat upstream failover - #100

Merged
Upper9527 merged 2 commits into
mainfrom
codex/upstream-fallback
Oct 21, 2026
Merged

Upper9527 merged 2 commits into
mainfrom
codex/upstream-fallback

Conversation

@Upper9527

Copy link
Copy Markdown
Collaborator

When a chat upstream is unavailable or quota-limited, SkillClaw previously retried the same endpoint six times. Add up to three explicitly configured fallback endpoints and advance immediately on transport failures and HTTP 408/429/500/502/503/504. Each endpoint gets fresh headers and its own key/model; nonretryable HTTP errors do not replay requests elsewhere.

Share six attempts and the existing request timeout across the operation, including compatibility retries and Retry-After. Preserve streaming-required compatibility collection and reject invalid fallback config. Keep saved fallback entries when rerunning setup. Document the YAML and the chat-only scope (native Responses, Bedrock, and standalone evolve-server are unchanged).

Validation: 23 new tests cover routing, credentials, OpenRouter extension isolation, no retry on invalid/auth requests, total deadline, quota windows, compatibility, and config validation. Full suite: 175 passed, 1 credential-dependent skip. Ruff 0.12.2 lint/format and diff check pass. No live provider calls.

Closes #85.

@Upper9527
Upper9527 merged commit e2bea48 into main Oct 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: multi-endpoint upstream fallback (retry a secondary LLM endpoint when the primary is rate-limited or down)

1 participant