From 4e6ba7d9ccbe458f99c98df24f2707f742a27d53 Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Fri, 13 Feb 2026 21:35:06 -0300 Subject: [PATCH] docs: Restructure changelog to Keep a Changelog format and add entries for model selector autocomplete and OpenAPI specification. --- CHANGELOG.md | 257 ++++++++++++++++++++++----------------------------- 1 file changed, 108 insertions(+), 149 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f11ad6da83..5afeb81bdb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,193 +1,152 @@ -# v0.2.75 (2026-02-11) +# Changelog -## Features +All notable changes to OmniRoute are documented in this file. -- Added API key attribution in usage and call logs: - - request pipeline now captures API key metadata (`id`/`name`) when available. - - analytics now includes API-key level aggregates (`summary.uniqueApiKeys`, `byApiKey`). -- Enhanced Usage dashboard with API key observability: - - added API key distribution donut + sortable/filterable table (cost/tokens/requests). - - added explicit API key filter in Request Logger and API key column in log entries (masked display). -- Added in-app documentation page at `/docs` with: - - quick start checklist and common use cases. - - endpoint reference (`/v1/*` + rewrite helper paths). - - client compatibility notes for Cherry Studio and Codex/Copilot model routing. -- Updated docs navigation links across landing/dashboard UI to use local in-app docs instead of placeholder links. +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). -## Fixes +--- -- Unified storage path policy for `localDb` and `usageDb`: - - both now follow `DATA_DIR` first. - - when `DATA_DIR` is unset on Linux/macOS, support `XDG_CONFIG_HOME/omniroute`. - - legacy `~/.omniroute` files are auto-migrated when the resolved directory changes. -- Added build-phase guard to `usageDb` (in-memory mode during `next build`) to avoid unintended disk writes. -- Added optional feature flag for compatible nodes: - - `ALLOW_MULTI_CONNECTIONS_PER_COMPAT_NODE=true` allows multiple connections per OpenAI/Anthropic-compatible node. -- Improved LAN/reverse-proxy cookie security detection in login route (`x-forwarded-proto` parsing + protocol fallback). -- Hardened Antigravity request normalization for Gemini 3 Flash by dropping empty `contents` after `thought` filtering and adding preview-model compatibility mapping. -- Hardened non-stream fallback parsing when upstream returns SSE unexpectedly: - - non-stream responses now detect SSE by header/content and parse accordingly. - - uses Responses SSE parsing for `openai-responses` targets to avoid `JSON.parse` crashes. - - fixes `stream=false` stability for Codex chat compatibility paths. -- Fixed CLI tool/runtime and OAuth refresh reliability: - - increased Cline runtime health-check timeout to avoid false `not runnable` status. - - added refresh support for `cline` and `kimi-coding` OAuth providers. - - health-check scheduler now skips providers without supported refresh flow instead of forcing error state. -- Improved provider health diagnostics and retest flow: - - `/api/providers/[id]/test` now returns structured diagnosis (`runtime_error`, `upstream_auth_error`, `token_refresh_failed`, etc). - - persisted diagnostic metadata in connections (`lastErrorType`, `lastErrorSource`, `errorCode`, `lastTested`). - - provider detail UI now includes explicit `Retest` action per connection and clearer status badges separating local runtime issues from upstream auth failures. +## [Unreleased] -# v0.2.74 (2026-02-11) +### Added -## Fixes +- Model selector with autocomplete in Chat Tester and Test Bench modes — prevents "model does not exist" errors by letting users choose available models (`c25230c`) +- OpenAPI specification at `docs/openapi.yaml` covering all 89 API endpoints (`7abda4d`) +- Enhanced `restart.sh` with clean build, health check, graceful shutdown (Ctrl+C), and real-time log tailing (`0db8f3d`) -- Fixed model resolution fallback for unprefixed models to avoid incorrect OpenAI routing: - - Resolve to unique non-OpenAI provider when unambiguous. - - Return explicit `400` for ambiguous unprefixed models with prefix guidance (`gh/`, etc). - - Keep OpenAI fallback for unknown/unmapped models for backward compatibility. -- Added GitHub Copilot dynamic endpoint selection for Codex-family models: - - Codex models now route to `/responses`. - - Non-Codex models remain on `/chat/completions`. -- Added non-stream (`stream=false`) translation path for OpenAI Responses payloads to OpenAI Chat Completions response shape. -- Added non-stream usage extraction support for OpenAI Responses (`input_tokens`/`output_tokens`). -- Updated GitHub model catalog with upstream corrections and compatibility aliases: - - `raptor-mini` → `oswe-vscode-prime` - - `gemini-3-pro` → `gemini-3-pro-preview` - - `gemini-3-flash` → `gemini-3-flash-preview` - - Added `claude-opus-4.6`, `gpt-4o`, `gpt-4o-mini`, `gpt-4`, `gpt-3.5-turbo`. +### Fixed -# v0.2.73 (2026-02-09) +- Server port collision (EADDRINUSE) during restart — now kills port before `next start` (`e4c5c0c`) -## Features +--- -- Expanded provider registry from 18 → 28 providers: - - **Phase 1:** DeepSeek, Groq, xAI (Grok), Mistral, Perplexity — high-priority API Key providers. - - **Phase 4:** Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM — medium-priority API Key providers. - - All use `DefaultExecutor` with OpenAI-compatible format. -- Added `/v1/embeddings` endpoint with 6 providers and 9 embedding models: - - Nebius, OpenAI, Mistral, Together AI, Fireworks AI, NVIDIA NIM. - - New handler (`open-sse/handlers/embeddings.js`), registry (`open-sse/config/embeddingRegistry.js`), and Next.js route. -- Added `/v1/images/generations` endpoint with 4 providers and 9 image models: - - OpenAI (DALL-E), xAI (Grok Image), Together AI (FLUX), Fireworks AI. - - New handler (`open-sse/handlers/imageGeneration.js`), registry (`open-sse/config/imageRegistry.js`), and Next.js route. -- Added `` tag parser (`open-sse/utils/thinkTagParser.js`) for reasoning models (DeepSeek, Qwen). - - Supports both full-text extraction and streaming delta processing. -- Enhanced `/v1/models` endpoint to list chat, embedding, and image models with type metadata. -- Updated `open-sse/index.js` with exports for new handlers, registries, and utilities. +## [0.0.1] — 2026-02-13 -## Frontend +Initial public release of OmniRoute (rebranded from 9router). -- Added "Available Endpoints" card to the Endpoint page with collapsible sections for Chat Completions (127 models), Embeddings (9 models), and Image Generation (9 models), grouped by provider. -- Added Nebius AI to `providers.js` with icon, color, and text icon. -- Generated 11 provider PNG icons (128×128) from SVG for all new providers. -- Added auto-open of Add Connection modal when a provider detail page has zero connections. -- Updated Translator debug page with all 28 providers (was missing 12). +### Added -# v0.2.72 (2026-02-08) +- **28 AI Providers** — OpenAI, Anthropic, Google Gemini, DeepSeek, Groq, xAI, Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM, Nebius, GitHub Copilot, Cursor, Kiro, Kimi, MiniMax, iFlow, and more +- **OpenAI-compatible proxy** at `/api/v1/chat/completions` with automatic format translation, load balancing, and failover +- **Anthropic Messages API** at `/api/v1/messages` for Claude-native clients +- **OpenAI Responses API** at `/api/v1/responses` for modern OpenAI workflows +- **Embeddings API** at `/api/v1/embeddings` with 6 providers and 9 models +- **Image Generation API** at `/api/v1/images/generations` with 4 providers and 9 models +- **Format Translator** — automatic request/response conversion between OpenAI, Anthropic, Gemini, and OpenAI Responses formats +- **Translator Playground** with 4 modes: Playground, Chat Tester, Test Bench, Live Monitor +- **Combo Routing** — named route configurations with priority, weighted, and round-robin strategies +- **API Key Management** — create/revoke keys with usage attribution +- **Usage Dashboard** — analytics, call logs, request logger with API key filtering and cost tracking +- **Provider Health Diagnostics** — structured status (runtime errors, auth failures, token refresh) with per-connection retest +- **CLI Tools Integration** — runtime detection for Cline, Kiro, Droid, OpenClaw with backup/restore +- **OAuth Flows** — for Cursor, Kiro, Kimi, and GitHub Copilot +- **Docker Support** — multi-stage Dockerfile, docker-compose with 3 profiles (base, cli, host), production compose +- **SOCKS5 Proxy** — outbound proxy support enabled by default (`ab8d752`) +- **Unified Storage** — `DATA_DIR` / `XDG_CONFIG_HOME` resolution with auto-migration from `~/.omniroute` +- **In-app Documentation** at `/docs` with quick start, endpoint reference, and client compatibility notes +- **Dark Theme UI** — modern dashboard with glassmorphism, responsive layout +- `` tag parser for reasoning models (DeepSeek, Qwen) +- Non-stream response translation for all formats +- Secure cookie handling for LAN/reverse-proxy deployments -## Features +### Fixed -- Split Kimi into dual providers: `kimi` (OpenAI-compatible) and `kimi-coding` (legacy Moonshot API), with separate model catalogs, icons, and routing (`f40ab34`). -- Added hybrid CLI runtime support with Docker profiles: `runner-base` (minimal) and `runner-cli` (bundled CLIs), host-mount mode, per-tool env overrides (`CLI_*_BIN`, `CLI_EXTRA_PATHS`), and generic `/api/cli-tools/runtime/[toolId]` endpoint (`871db97`). -- Hardened cloud sync/auth flow with SSE fallback for non-streaming calls, added security test scripts for Docker hardening, cloud endpoint compatibility, and end-to-end sync validation (`6c87ba3`). +- OAuth re-authentication no longer creates duplicate connections (`773f117`, `510aedd`) +- Connection test no longer corrupts valid OAuth tokens (`a2ba189`) +- Cloud sync disabled to prevent 404 log spam (`71d132e`) +- `.env.example` synced with current environment structure (`6bdc74b`) +- Select dropdown dark theme inconsistency (`1bd734d`) -# v0.2.66 (2026-02-06) +### Dependencies -## Features +- `actions/github-script` bumped from 7 to 8 (`f6a994a`) +- `eslint` bumped from 9.39.2 to 10.0.0 (`ecd4aea`) -- Added Cursor provider end-to-end support, including OAuth import flow and translator/executor integration (`137f315`, `0a026c7`). -- Enhanced auth/settings flow with `requireLogin` control and `hasPassword` state handling in dashboard/login APIs (`249fc28`). -- Improved usage/quota UX with richer provider limit cards, new quota table, and clearer reset/countdown display (`32aefe5`). -- Added model support for custom providers in UI/combos/model selection (`a7a52be`). -- Expanded model/provider catalog: - - Codex updates: GPT-5.3 support, translation fixes, thinking levels (`127475d`) - - Added Claude Opus 4.6 model (`e8aa3e2`) - - Added MiniMax Coding (CN) provider (`7c609d7`) - - Added iFlow Kimi K2.5 model (`9e357a7`) - - Updated CLI tools with Droid/OpenClaw cards and base URL visibility improvements (`a2122e3`) -- Added auto-validation for provider API keys when saving settings (`b275dfd`). -- Added Docker/runtime deployment docs and architecture documentation updates (`5e4a15b`). +--- -## Fixes +## Pre-Release History (9router) -- Improved local-network compatibility by allowing auth cookie flow over HTTP deployments (`0a394d0`). -- Improved Antigravity quota/stream handling and Droid CLI compatibility behavior (`3c65e0c`, `c612741`, `8c6e3b8`). -- Fixed GitHub Copilot model mapping/selection issues (`95fd950`). -- Hardened local DB behavior with corrupt JSON recovery and schema-shape migration safeguards (`e6ef852`). -- Fixed logout/login edge cases: - - Prevent unintended auto-login after logout (`49df3dc`) - - Avoid infinite loading on failed `/api/settings` responses (`01c9410`) +> The following entries document the legacy 9router project before it was +> rebranded to OmniRoute. All changes below were included in the initial +> `0.0.1` release. -# v0.2.56 (2026-02-04) +### 0.2.75 — 2026-02-11 -## Features +- API key attribution in usage/call logs with per-key analytics aggregates +- Usage dashboard API key observability (distribution donut, filterable table) +- In-app docs page (`/docs`) with quick start, endpoint reference, and client compatibility notes +- Unified storage path policy (`DATA_DIR` → `XDG_CONFIG_HOME` → `~/.omniroute`) +- Build-phase guard for `usageDb` (in-memory during `next build`) +- LAN/reverse-proxy cookie security detection +- Hardened Gemini 3 Flash normalization and non-stream SSE fallback parsing +- CLI tool runtime and OAuth refresh reliability improvements +- Provider health diagnostics with structured error types -- Added Anthropic-compatible provider support across providers API/UI flow (`da5bdef`). -- Added provider icons to dashboard provider pages/lists (`60bd686`, `8ceb8f2`). -- Enhanced usage tracking pipeline across response handlers/streams with buffered accounting improvements (`a33924b`, `df0e1d6`, `7881db8`). +### 0.2.74 — 2026-02-11 -## Fixes +- Model resolution fallback fix for unprefixed models +- GitHub Copilot dynamic endpoint selection (Codex → `/responses`) +- Non-stream translation path for OpenAI Responses +- Updated GitHub model catalog with compatibility aliases -- Fixed usage conversion and related provider limits presentation issues (`e6e44ac`). +### 0.2.73 — 2026-02-09 -# v0.2.52 (2026-02-02) +- Expanded provider registry from 18 → 28 providers (DeepSeek, Groq, xAI, Mistral, Perplexity, Together AI, Fireworks AI, Cerebras, Cohere, NVIDIA NIM) +- `/v1/embeddings` endpoint with 6 providers and 9 models +- `/v1/images/generations` endpoint with 4 providers and 9 models +- `` tag parser for reasoning models +- Available Endpoints card on Endpoint page (127 chat, 9 embedding, 9 image models) -## Features +### 0.2.72 — 2026-02-08 -- Implemented Codex Cursor compatibility and Next.js 16 proxy migration updates (`e9b0a73`, `7b864a9`, `1c6dd6d`). -- Added OpenAI-compatible provider nodes with CRUD/validation/test coverage in API and UI (`0a28f9f`). -- Added token expiration and key-validity checks in provider test flow (`686585d`). -- Added Kiro token refresh support in shared token refresh service (`f2ca6f0`). -- Added non-streaming response translation support for multiple formats (`63f2da8`). -- Updated Kiro OAuth wiring and auth-related UI assets/components (`31cc79a`). +- Split Kimi into dual providers: `kimi` (OpenAI-compatible) and `kimi-coding` (Moonshot API) +- Hybrid CLI runtime support with Docker profiles (`runner-base`, `runner-cli`) +- Hardened cloud sync/auth flow with SSE fallback -## Fixes +### 0.2.66 — 2026-02-06 -- Fixed cloud translation/request compatibility path (`c7219d0`). -- Fixed Kiro auth modal/flow issues (`85b7bb9`). -- Included Antigravity stability fixes in translator/executor flow (`2393771`, `8c37b39`). +- Cursor provider end-to-end support with OAuth import flow +- `requireLogin` control and `hasPassword` state handling +- Usage/quota UX improvements +- Model support for custom providers +- Codex updates (GPT-5.3, thinking levels), Claude Opus 4.6, MiniMax Coding +- Auto-validation for provider API keys -# v0.2.43 (2026-01-27) +### 0.2.56 — 2026-02-04 -## Fixes +- Anthropic-compatible provider support +- Provider icons across dashboard +- Enhanced usage tracking pipeline -- Fixed CLI tools model selection behavior (`a015266`). -- Fixed Kiro translator request handling (`d3dd868`). +### 0.2.52 — 2026-02-02 -# v0.2.36 (2026-01-19) +- Codex Cursor compatibility and Next.js 16 proxy migration +- OpenAI-compatible provider nodes (CRUD/validation/test) +- Token expiration and key-validity checks +- Non-streaming response translation for multiple formats +- Kiro OAuth wiring and token refresh support -## Features +### 0.2.43 — 2026-01-27 -- Added the Usage dashboard page and related usage stats components (`3804357`). -- Integrated outbound proxy support in Open SSE fetch pipeline (`0943387`). -- Improved OpenAI compatibility and build stability across endpoint/profile/providers flows (`d9b8e48`). +- Fixed CLI tools model selection +- Fixed Kiro translator request handling -## Fixes +### 0.2.36 — 2026-01-19 -- Fixed combo fallback behavior (`e6ca119`). -- Resolved SonarQube findings, Next.js image warnings, and build/lint cleanups (`7058b06`, `0848dd5`). +- Usage dashboard page +- Outbound proxy support in Open SSE fetch pipeline +- Fixed combo fallback behavior -# v0.2.31 (2026-01-18) +### 0.2.31 — 2026-01-18 -## Fixes +- Fixed Kiro token refresh and executor behavior +- Fixed Kiro request translation handling -- Fixed Kiro token refresh and executor behavior (`6b22b1f`, `1d481c2`). -- Fixed Kiro request translation handling (`eff52f7`, `da15660`). +### 0.2.27 — 2026-01-15 -# v0.2.27 (2026-01-15) +- Added Kiro provider support with OAuth flow +- Fixed Codex provider behavior -## Features +### 0.2.21 — 2026-01-12 -- Added Kiro provider support with OAuth flow (`26b61e5`). - -## Fixes - -- Fixed Codex provider behavior (`26b61e5`). - -# v0.2.21 (2026-01-12) - -## Changes - -- README updates. -- Antigravity bug fixes. +- Initial README and project setup