diff --git a/CHANGELOG.md b/CHANGELOG.md index bcf7736ac5..d09c005a42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 --- +## [2.2.0] โ€” 2026-03-10 + +> ### ๐Ÿ”ง Bug Fixes ยท Provider Support ยท CI Recovery + +### Bug Fixes + +- **Cursor tool-call loop (#275/#274)** โ€” Stabilized Cursor executor to stop double-translating tool results. Set-based `finalizedIds` for O(1) dedup, byte guard (`0x7b`) before payload `.toString()`, `escapeXml()` to prevent tag injection, and converted all debug `console.log` to `debugLog()`. Fixes the 400 Bad Request loop that corrupted multi-turn Cursor sessions. +- **A/V provider validation (#281)** โ€” Added `validateElevenLabsProvider` (GET `/v1/voices` with `xi-api-key`) and `validateInworldProvider` (POST `/tts/v1/voice` with Basic auth) so both providers can be test-connected without false 400 errors. +- **OpenAI-compatible Add Connection button (#272)** โ€” "Add Connection" button was hidden behind `!isCompatible` guard in the Connections card. Button now appears for compatible providers when 0 connections exist, limited to 1 (matches single-key-per-node policy). +- **CI: unit tests** โ€” Fixed circuit breaker tests using wrong instance keys (`combo:groq` โ†’ `combo:groq/llama-3.3-70b`). +- **CI: E2E protocol-visibility** โ€” Updated spec to click "Protocols" tab before asserting MCP/A2A links (now tabs inside `/dashboard/endpoint`). +- **CI: i18n** โ€” Added missing `header.mcp`, `header.mcpDescription`, `header.a2a`, `header.a2aDescription` keys to `en.json`. + +### New Features + +- **Kimi Coding plan quota display (#279)** โ€” New `getKimiUsage()` with `X-Msh-*` device headers. Parses weekly quota + rate-limit breakdown from `/v1/usages`. Wires `kimi-coding` into the provider usage switch; adds quota capability flag. + +### Dependencies + +- **Dev dependencies** โ€” Bumped `@playwright/test`, `@types/react`, `eslint-plugin-*` and 2 others (#264). +- **Prod dependencies** โ€” Bumped 2 production packages (#263). + +--- + ## [2.1.2] โ€” 2026-03-09 > ### ๐Ÿ”จ CI Green + Electron .deb + Link Fixes diff --git a/docs/openapi.yaml b/docs/openapi.yaml index f0a3357bdc..a7160b3a66 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: OmniRoute API - version: 2.1.2 + version: 2.2.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 ce92009e7b..c5b997e7dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "omniroute", - "version": "2.1.2", + "version": "2.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "omniroute", - "version": "2.1.2", + "version": "2.2.0", "hasInstallScript": true, "license": "MIT", "workspaces": [ diff --git a/package.json b/package.json index 1c573c5624..04a7ff2ece 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "omniroute", - "version": "2.1.2", + "version": "2.2.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": {