From cec833afc60e1635322e7af059a6063060867146 Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Sat, 28 Mar 2026 21:13:14 -0300 Subject: [PATCH] =?UTF-8?q?chore(release):=20v3.2.1=20=E2=80=94=20context?= =?UTF-8?q?=20pinning=20fix=20+=20global=20fallback=20provider?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 16 ++++++++++++++++ docs/openapi.yaml | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f3bd1b98a7..66eddf1562 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,22 @@ --- +## [3.2.1] โ€” 2026-03-29 + +### โœจ New Features + +- **Global Fallback Provider (#689)** โ€” When all combo models are exhausted (502/503), OmniRoute now attempts a configurable global fallback model before returning the error. Set `globalFallbackModel` in settings to enable. + +### ๐Ÿ› Bug Fixes + +- **Fix #721** โ€” Fixed context pinning bypass during tool-call responses. Non-streaming tagging used wrong JSON path (`json.messages` โ†’ `json.choices[0].message`). Streaming injection now triggers on `finish_reason` chunks for tool-call-only streams. `injectModelTag()` now appends synthetic pin messages for non-string content. +- **Fix #709** โ€” Confirmed already fixed (v3.1.9) โ€” `system-info.mjs` creates directories recursively. Closed. +- **Fix #707** โ€” Confirmed already fixed (v3.1.9) โ€” empty tool name sanitization in `chatCore.ts`. Closed. + +### ๐Ÿงช Tests + +- Added 6 unit tests for context pinning with tool-call responses (null content, array content, roundtrip, re-injection) + ## [3.2.0] โ€” 2026-03-28 ### โœจ New Features diff --git a/docs/openapi.yaml b/docs/openapi.yaml index 544de5cec3..1cb46cd117 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: OmniRoute API - version: 3.2.0 + version: 3.2.1 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 a6df674ee8..0f75d5d1e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "omniroute", - "version": "3.2.0", + "version": "3.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "omniroute", - "version": "3.2.0", + "version": "3.2.1", "hasInstallScript": true, "license": "MIT", "workspaces": [ diff --git a/package.json b/package.json index d2ccee93bc..997aca446a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "omniroute", - "version": "3.2.0", + "version": "3.2.1", "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": {