From e45ef00bef8888eda5af1c4f48a0f550fbf12754 Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Tue, 17 Mar 2026 08:17:11 -0300 Subject: [PATCH] =?UTF-8?q?chore(release):=20v2.6.7=20=E2=80=94=20SSE=20fi?= =?UTF-8?q?xes,=20local=20provider=5Fnodes,=20proxy=20registry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PRs merged: #414 (deps) #415 #417 #419 #420 #421 (SSE fixes) #418 (Claude passthrough) #422 #416 #423 (local nodes) #427 (strip empty blocks) #428 (OAuth refreshable) #429 (proxy registry) Contributors: @prakersh, @Regis-RCR, @dependabot --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ docs/openapi.yaml | 2 +- package-lock.json | 5 +++-- package.json | 2 +- 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62aa69ca82..485eb08b59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,34 @@ --- +## [2.6.7] — 2026-03-17 + +> Sprint: SSE improvements, local provider_nodes extensions, proxy registry, Claude passthrough fixes. + +### ✨ Features + +- **feat(health)**: Background health check for local `provider_nodes` with exponential backoff (30s→300s) and `Promise.allSettled` to avoid blocking (#423, @Regis-RCR) +- **feat(embeddings)**: Route `/v1/embeddings` to local `provider_nodes` — `buildDynamicEmbeddingProvider()` with hostname validation (#422, @Regis-RCR) +- **feat(audio)**: Route TTS/STT to local `provider_nodes` — `buildDynamicAudioProvider()` with SSRF protection (#416, @Regis-RCR) +- **feat(proxy)**: Proxy registry, management APIs, and quota-limit generalization (#429, @Regis-RCR) + +### 🐛 Bug Fixes + +- **fix(sse)**: Strip Claude-specific fields (`metadata`, `anthropic_version`) when target is OpenAI-compat (#421, @prakersh) +- **fix(sse)**: Extract Claude SSE usage (`input_tokens`, `output_tokens`, cache tokens) in passthrough stream mode (#420, @prakersh) +- **fix(sse)**: Generate fallback `call_id` for tool calls with missing/empty IDs (#419, @prakersh) +- **fix(sse)**: Claude-to-Claude passthrough — forward body completely untouched, no re-translation (#418, @prakersh) +- **fix(sse)**: Filter orphaned `tool_result` items after Claude Code context compaction to avoid 400 errors (#417, @prakersh) +- **fix(sse)**: Skip empty-name tool calls in Responses API translator to prevent `placeholder_tool` infinite loops (#415, @prakersh) +- **fix(sse)**: Strip empty text content blocks before translation (#427, @prakersh) +- **fix(api)**: Add `refreshable: true` to Claude OAuth test config (#428, @prakersh) + +### 📦 Dependencies + +- Bump `vitest`, `@vitest/*` and related devDependencies (#414, @dependabot) + +--- + ## [2.6.6] — 2026-03-17 > Hotfix: Turbopack/Docker compatibility — remove `node:` protocol from all `src/` imports. diff --git a/docs/openapi.yaml b/docs/openapi.yaml index 53e7b2137f..89d5d7cf3b 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: OmniRoute API - version: 2.6.6 + version: 2.6.7 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 303b75ff31..7efbd41143 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "omniroute", - "version": "2.6.6", + "version": "2.6.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "omniroute", - "version": "2.6.6", + "version": "2.6.7", "hasInstallScript": true, "license": "MIT", "workspaces": [ @@ -6817,6 +6817,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, diff --git a/package.json b/package.json index de486f9a89..4bffd87537 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "omniroute", - "version": "2.6.6", + "version": "2.6.7", "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": {