mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-04 22:32:12 +03:00
- Tiered quota scoring (Ultra>Pro>Free) as 7th Auto-Combo factor - Intra-family model fallback on 404/400/403 errors - Configurable API bridge timeout (API_BRIDGE_PROXY_TIMEOUT_MS) - INITIAL_PASSWORD accepted on first login with timingSafeEqual - README </details> truncation fix (affects all GitHub renders) - pnpm @swc/helpers override conflict removed - CLI path injection hardening (isSafePath validator) - 429 retry, Gemini CLI headers, Claude response_format injection - deepseek-3.1/3.2, qwen3-coder-next pricing added - starchart.cc star widget in all 30 READMEs
6.3 KiB
6.3 KiB
Changelog
[2.3.13] - 2026-03-12
✨ New Features
- Tiered Quota Scoring (Auto-Combo): Added
tierPriorityas a 7th scoring factor — accounts with Ultra/Pro tiers are now preferred over Free tiers when other factors are equal. New optional fieldsaccountTierandquotaResetIntervalSecsonProviderCandidate. All 4 mode packs updated (ship-fast,cost-saver,quality-first,offline-friendly). - Intra-Family Model Fallback (T5): When a model is unavailable (404/400/403), OmniRoute now automatically falls back to sibling models from the same family before returning an error (
modelFamilyFallback.ts). - Configurable API Bridge Timeout:
API_BRIDGE_PROXY_TIMEOUT_MSenv var lets operators tune the proxy timeout (default 30s). Fixes 504 errors on slow upstream responses. (#332) - Star History: Replaced star-history.com widget with starchart.cc (
?variant=adaptive) in all 30 READMEs — adapts to light/dark theme, real-time updates.
🐛 Bug Fixes
- Auth — First-time password:
INITIAL_PASSWORDenv var is now accepted when setting the first dashboard password. UsestimingSafeEqualfor constant-time comparison, preventing timing attacks. (#333) - README Truncation: Fixed a missing
</details>closing tag in the Troubleshooting section that caused GitHub to stop rendering everything below it (Tech Stack, Docs, Roadmap, Contributors). - pnpm install: Removed redundant
@swc/helpersoverride frompackage.jsonthat conflicted with the direct dependency, causingEOVERRIDEerrors on pnpm. Addedpnpm.onlyBuiltDependenciesconfig. - CLI Path Injection (T12): Added
isSafePath()validator incliRuntime.tsto block path traversal and shell metacharacters inCLI_*_BINenv vars. - CI: Regenerated
package-lock.jsonafter override removal to fixnpm cifailures on GitHub Actions.
🔧 Improvements
- Response Format (T1):
response_format(json_schema/json_object) now injected as a system prompt for Claude, enabling structured output compatibility. - 429 Retry (T2): Intra-URL retry for 429 responses (2× attempts with 2s delay) before falling back to next URL.
- Gemini CLI Headers (T3): Added
User-AgentandX-Goog-Api-Clientfingerprint headers for Gemini CLI compatibility. - Pricing Catalog (T9): Added
deepseek-3.1,deepseek-3.2, andqwen3-coder-nextpricing entries.
📁 New Files
| File | Purpose |
|---|---|
open-sse/services/modelFamilyFallback.ts |
Model family definitions and intra-family fallback logic |
Fixed
- KiloCode: kilocode healthcheck timeout already fixed in v2.3.11
- OpenCode: Add opencode to cliRuntime registry with 15s healthcheck timeout
- OpenClaw / Cursor: Increase healthcheck timeout to 15s for slow-start variants
- VPS: Install droid and openclaw npm packages; activate CLI_EXTRA_PATHS for kiro-cli
- cliRuntime: Add opencode tool registration and increase timeout for continue
[2.3.11] - 2026-03-12
Fixed
- KiloCode healthcheck: Increase
healthcheckTimeoutMsfrom 4000ms to 15000ms — kilocode renders an ASCII logo banner on startup causing falsehealthcheck_failedon slow/cold-start environments
[2.3.10] - 2026-03-12
Fixed
- Lint: Fix
check:any-budget:t11failure — replaceas anywithas Record<string, unknown>in OAuthModal.tsx (3 occurrences)
Docs
- CLI-TOOLS.md: Complete guide for all 11 CLI tools (claude, codex, gemini, opencode, cline, kilocode, continue, kiro-cli, cursor, droid, openclaw)
- i18n: CLI-TOOLS.md synced to 30 languages with translated title + intro
[2.3.8] - 2026-03-12
[2.3.9] - 2026-03-12
Added
- /v1/completions: New legacy OpenAI completions endpoint — accepts both
promptstring andmessagesarray, normalizes to chat format automatically - EndpointPage: Now shows all 3 OpenAI-compatible endpoint types: Chat Completions, Responses API, and Legacy Completions
- i18n: Added
completionsLegacy/completionsLegacyDescto 30 language files
Fixed
- OAuthModal: Fix
[object Object]displayed on all OAuth connection errors — properly extract.messagefrom error response objects in all 3throw new Error(data.error)calls (exchange, device-code, authorize) - Affects Cline, Codex, GitHub, Qwen, Kiro, and all other OAuth providers
[2.3.7] - 2026-03-12
Fixed
- Cline OAuth: Add
decodeURIComponentbefore base64 decode so URL-encoded auth codes from the callback URL are parsed correctly, fixing "invalid or expired authorization code" errors on remote (LAN IP) setups - Cline OAuth:
mapTokensnow populatesname = firstName + lastName || emailso Cline accounts show real user names instead of "Account #ID" - OAuth account names: All OAuth exchange flows (exchange, poll, poll-callback) now normalize
name = emailwhen name is missing, so every OAuth account shows its email as the display label in the Providers dashboard - OAuth account names: Removed sequential "Account N" fallback in
db/providers.ts— accounts with no email/name now use a stable ID-based label viagetAccountDisplayName()instead of a sequential number that changes when accounts are deleted
[2.3.6] - 2026-03-12
Fixed
- Provider test batch: Fixed Zod schema to accept
providerId: null(frontend sends null for non-provider modes); was incorrectly returning "Invalid request" for all batch tests - Provider test modal: Fixed
[object Object]display by normalizing API error objects to strings before rendering insetTestResultsandProviderTestResultsView - i18n: Added missing keys
cliTools.toolDescriptions.opencode,cliTools.toolDescriptions.kiro,cliTools.guides.opencode,cliTools.guides.kirotoen.json - i18n: Synchronized 1111 missing keys across all 29 non-English language files using English values as fallbacks
[2.3.5] - 2026-03-11
Fixed
- @swc/helpers: Added permanent
postinstallfix to copy@swc/helpersinto the standalone app'snode_modules— prevents MODULE_NOT_FOUND crash on global npm installs
[2.3.4] - 2026-03-10
Added
- Multiple provider integrations and dashboard improvements