diff --git a/CHANGELOG.md b/CHANGELOG.md index 025dad54..945daaa8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,29 @@ --- +## [3.0.0-rc.1] - 2026-03-22 + +### 🔧 Bug Fixes + +- **#521** — Login no longer gets stuck after skipping password setup (redirects to onboarding) +- **#522** — API Manager: Removed misleading "Copy masked key" button (replaced with lock icon tooltip) +- **#527** — Claude Code + Codex superpowers loop: `tool_result` blocks now converted to text instead of dropped +- **#532** — OpenCode GO API key validation now uses the correct `zen/v1` endpoint (`testKeyBaseUrl`) +- **#489** — Antigravity: missing `googleProjectId` returns structured 422 error with reconnect guidance +- **#510** — Windows: MSYS2/Git-Bash paths (`/c/Program Files/...`) are now normalized to `C:\\Program Files\\...` +- **#492** — `omniroute` CLI now detects `mise`/`nvm` when `app/server.js` is missing and shows targeted fix + +### 📖 Documentation + +- **#513** — Docker password reset: `INITIAL_PASSWORD` env var workaround documented +- **#520** — pnpm: `pnpm approve-builds better-sqlite3` documented + +### ✅ Closed Issues + +#489, #492, #510, #513, #520, #521, #522, #525, #527, #532 + +--- + ## [2.9.5] — 2026-03-22 > Sprint: New OpenCode providers, embedding credentials fix, CLI masked key bug, CACHE_TAG_PATTERN fix. diff --git a/docs/openapi.yaml b/docs/openapi.yaml index f4a8ef4f..bb0f63fd 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: OmniRoute API - version: 2.9.5 + version: 3.0.0-rc.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 c7e627b5..1d79ed4e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "omniroute", - "version": "2.9.5", + "version": "3.0.0-rc.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "omniroute", - "version": "2.9.5", + "version": "3.0.0-rc.1", "hasInstallScript": true, "license": "MIT", "workspaces": [ diff --git a/package.json b/package.json index bb3fb029..63f58253 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "omniroute", - "version": "2.9.5", + "version": "3.0.0-rc.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": { diff --git a/scripts/check-docs-sync.mjs b/scripts/check-docs-sync.mjs index b1f89825..bea9ec67 100644 --- a/scripts/check-docs-sync.mjs +++ b/scripts/check-docs-sync.mjs @@ -48,7 +48,8 @@ function extractChangelogSections(content) { } function isSemver(value) { - return /^\d+\.\d+\.\d+$/.test(value); + // Accept X.Y.Z and X.Y.Z-prerelease.N (e.g. 3.0.0-rc.1, 3.0.0-beta.2) + return /^\d+\.\d+\.\d+(-[a-zA-Z0-9.]+)?$/.test(value); } let hasFailure = false;