docs: Restructure changelog to Keep a Changelog format and add entries for model selector autocomplete and OpenAPI specification.

This commit is contained in:
diegosouzapw
2026-02-13 21:35:06 -03:00
parent c0c2816671
commit 4e6ba7d9cc

View File

@@ -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/<model>`, 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 `<think>` 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
- `<think>` 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
- `<think>` 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