diff --git a/CHANGELOG.md b/CHANGELOG.md index a35dcee209..4a08e3b45c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,27 @@ --- +## [2.6.0] - 2026-03-15 + +> Issue resolution sprint: 4 bugs fixed, logs UX improved, Kiro credit tracking added. + +### 🐛 Bug Fixes + +- **fix(media)**: ComfyUI and SD WebUI no longer appear in the Media page provider list when unconfigured — fetches `/api/providers` on mount and hides local providers with no connections (#390) +- **fix(auth)**: Round-robin no longer re-selects rate-limited accounts immediately after cooldown — `backoffLevel` is now used as primary sort key in the LRU rotation (#340) +- **fix(oauth)**: iFlow (and other providers that redirect to their own UI) no longer leave the OAuth modal stuck at "Waiting for Authorization" — popup-closed detector auto-transitions to manual URL input mode (#344) +- **fix(logs)**: Request log table is now readable in light mode — status badges, token counts, and combo tags use adaptive `dark:` color classes (#378) + +### ✨ Features + +- **feat(kiro)**: Kiro credit tracking added to usage fetcher — queries `getUserCredits` from AWS CodeWhisperer endpoint (#337) + +### 🛠 Chores + +- **chore(tests)**: Aligned `test:plan3`, `test:fixes`, `test:security` to use same `tsx/esm` loader as `npm test` — eliminates module resolution false negatives in targeted runs (PR #386) + +--- + ## [2.5.9] - 2026-03-15 > Codex native passthrough fix + route body validation hardening. diff --git a/docs/openapi.yaml b/docs/openapi.yaml index c905a75f1e..68e2daaa5f 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: OmniRoute API - version: 2.5.9 + version: 2.6.0 description: | OmniRoute is a local-first AI API proxy router. It provides an OpenAI-compatible endpoint that routes requests to multiple AI providers with load balancing, diff --git a/package-lock.json b/package-lock.json index 8d1cd5c623..dd0a098f46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "omniroute", - "version": "2.5.9", + "version": "2.6.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "omniroute", - "version": "2.5.9", + "version": "2.6.0", "hasInstallScript": true, "license": "MIT", "workspaces": [ diff --git a/package.json b/package.json index 15be911ef3..4abc3677e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "omniroute", - "version": "2.5.9", + "version": "2.6.0", "description": "Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.", "type": "module", "bin": { diff --git a/src/shared/components/RequestLoggerV2.tsx b/src/shared/components/RequestLoggerV2.tsx index 0b970dc126..2d5903b4dc 100644 --- a/src/shared/components/RequestLoggerV2.tsx +++ b/src/shared/components/RequestLoggerV2.tsx @@ -351,16 +351,16 @@ export default function RequestLoggerV2() { {totalCount} total - + {okCount} OK {errorCount > 0 && ( - + {errorCount} ERR )} {comboCount > 0 && ( - + {comboCount} combo )} @@ -498,11 +498,11 @@ export default function RequestLoggerV2() { {visibleColumns.status && (
@@ -635,7 +635,7 @@ export default function RequestLoggerV2() { {visibleColumns.combo && ( {log.comboName ? ( - + {log.comboName} ) : ( @@ -651,7 +651,7 @@ export default function RequestLoggerV2() { | O:{" "} - + {log.tokens?.out?.toLocaleString() || 0}