mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-15 11:43:10 +03:00
- README: expand features table from 16 to 40+ entries across 5 categories (Core Routing, Multi-Modal APIs, Resilience, Observability, Deployment) - README: update tech stack to reflect 100% TypeScript codebase - README: update Docker tag 0.6.0 → 0.8.5, release command to v0.8.5 - CHANGELOG: add detailed v0.8.5 section (40 commits categorized) covering TLS spoofing, SQLite logs, unified logging, full TS migration, Qwen fix, VPS compatibility, CI improvements, dependency bumps - ARCHITECTURE: update all open-sse file references .js → .ts - CODEBASE_DOCUMENTATION: update all open-sse file references .js → .ts
11 KiB
11 KiB
Changelog
All notable changes to OmniRoute are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.8.5 — 2026-02-17
Added
- 🔒 TLS fingerprint spoofing — Implement browser-like TLS fingerprinting via
wreq-jsto bypass bot detection on providers that enforce TLS client fingerprint checks (3dd0cc1, PR #52) - 💾 SQLite proxy log persistence — Proxy request/response logs now persist to SQLite database, surviving server restarts. Previously, logs were lost on restart (
f1664fe, PR #53) - 📋 Unified test logging — Shared
Logger+ Proxy logging infrastructure for all provider connection test flows. Consistent log formatting across batch and individual tests (bce302e, PR #55)
Refactored
- 🔷 Full TypeScript migration —
src/— Migrated the entiresrc/directory from JavaScript to TypeScript. All.js/.jsxfiles converted to.ts/.tsxwith proper type annotations across API routes, lib modules, components, services, stores, domain layer, and shared utilities (d0ca595)- Wave 1: Shared component interfaces + EventTarget fixes (
dfdd2a2) - Wave 2: Utils & services typed fields, Zustand stores, logger, sync scheduler (
89dd107,b2907cd) - Wave 3a: Lib layer, DB, compliance, domain layer typed (
9e13fe2) - Wave 3b: Usage, CLI runtime, SSE auth/logger typed (
a291abd) - Wave 3c: OAuth services + server utils typed (
d62cf8d) - Wave 4a: 7 API routes — providers, cli-tools, oauth (
7cdb923) - Wave 4b: 7 more API routes — providers, test, usage, nodes (
5592c2e) - Wave 4c: 8 files — components, SSE handlers, services (
d8ce9dc) - Dashboard hardening: Resolve all TypeScript errors across dashboard pages (
7a463a3, PR #61)
- Wave 1: Shared component interfaces + EventTarget fixes (
- 🔷 Full TypeScript migration —
open-sse/— Migrated all 94.jsfiles in the SSE routing engine to TypeScript (PR #62)- Phase 1: Rename all 94
.js→.tsfiles (256e443) - Phase 6: Reduce
@ts-ignorefrom 231 → 186 with targeted fixes (6a54b84) - Phase 7: Eliminate ALL
@ts-ignoreannotations (186 → 0) and ALL TypeScript errors (237 → 0) — zero@ts-ignore, zero errors (7b37a3c) - Typing strategies:
Record<string, any>for dynamic objects, optional function params,as anycasts for custom Error/Array properties,declare var EdgeRuntimefor edge compatibility, properfs/pathimports
- Phase 1: Rename all 94
Fixed
- 🐛 Qwen token refresh — Detect
invalid_requestas unrecoverable error and switch broken test endpoints tocheckExpirymethod instead of failing silently (1e0ffbc, PR #60) - 🐛 VPS batch test compatibility — Eliminate HTTP self-calls in batch provider connection tests for VPS environments where localhost is unreachable (
a3bbbb5, PR #54) - 🐛 E2E test assertions — Correct API endpoints and response format assertions in end-to-end tests (
92b5e66) - 🐛 CI coverage thresholds — Lower coverage thresholds, use production server for E2E, block ESLint major upgrades from breaking CI (
3ca4b6b, PR #51)
Changed
- 📖 Documentation update — Updated all documentation to reflect JS → TS migration, corrected file extensions and import paths (
7ff8aa2) - ⬆️ CI/CD — Bump
actions/checkoutv4 → v6,actions/setup-nodev4 → v6,peter-evans/dockerhub-descriptionv4 → v5
Dependencies
- ⬆️
undici7.21.0 → 7.22.0 (production) - ⬆️
actions/checkout4 → 6 - ⬆️
actions/setup-node4 → 6 - ⬆️
peter-evans/dockerhub-description4 → 5 - 🚫
eslint10.0.0 blocked — major version incompatible witheslint-config-next
0.8.0 — 2026-02-16
Added
- 🌐 Official website — omniroute.online live with static site on Akamai VM + Cloudflare proxy
- 🛡️ Comprehensive SECURITY.md — Full codebase audit documenting 10+ security features (AES-256-GCM, prompt injection guard, PII redaction, circuit breaker, etc.)
- 📖 Documentation tracking —
USER_GUIDE.md,API_REFERENCE.md,TROUBLESHOOTING.mdnow tracked in git - 🏷️ Website badge — Official website badge and links in README, npm, and Docker Hub
- 🔗 36+ providers — Updated provider count across documentation
Changed
- 📦 npm homepage — Points to
omniroute.onlineinstead of GitHub - 🐳 Docker OCI labels — Added
org.opencontainers.image.urlfor Docker Hub - 🔒 Security policy — Updated supported versions, replaced email with GitHub Security Advisories
0.7.0 — 2026-02-16
Added
- 🐳 Docker Hub public image —
diegosouzapw/omnirouteavailable on Docker Hub withlatestand versioned tags - 🔄 Docker CI/CD — GitHub Actions workflow (
docker-publish.yml) auto-builds and pushes Docker image on every release - ☁️ Akamai VM deployment — Nanode 1GB instance created for remote hosting
- 🎯 Provider model filtering — Filter model suggestions by selected provider in Translator and Chat Tester
- 🔌 CLI status badges — Extract
CliStatusBadgecomponent; status visible on collapsed tool cards - ☁️ Cloud connection UX — GET status endpoint, toast feedback, and sidebar indicator for cloud sync
- 🔐 OAuth provider secrets — Default cloud URL and OAuth provider secrets set via environment variables
- ⚡ Edge compatibility — Replace
uuidpackage with nativecrypto.randomUUID()for Cloudflare Workers compatibility
0.6.0 — 2026-02-16
Added
- 💰 Costs & Budget page — Dedicated dashboard page for cost tracking and budget management
- 📊 Provider metrics display — Show per-provider usage metrics and statistics
- 📥 Model import for passthrough providers — Import models from API-compatible providers (Deepgram, AssemblyAI, NanoBanana)
- 🎨 App icon redesign — New network node graph icon with updated color scheme
0.5.0 — 2026-02-15
Added
- 🧪 LLM Evaluations (Evals) — Golden set testing framework with 4 match strategies (
exact,contains,regex,custom) - 🎲 Advanced combo strategies —
random,least-used, andcost-optimizedbalancing strategies for combos - 📊 API key usage in Evals — Evals tab uses API key auth for real LLM calls through the proxy
- 🏷️ Model availability badge — Visual indicator for model availability per provider
- 🎨 Landing page retheme — Updated landing page design with new aesthetic
- 🧩 Shared UI component library — Refactored dashboard with reusable component library
Fixed
- 🐛 Fix
TypeErrorinchat/completionsensureInitializedcall
0.4.0 — 2026-02-15
Added
- 🧠 LLM Gateway Intelligence (Phase 9) — Smart routing, semantic caching, request idempotency, progress tracking
- 📄 Missing flows & pages (Phase 8) — Error pages, UX components, telemetry dashboards
- 🔧 API & code quality (Phase 7) — API restructuring, JSDoc documentation, code quality improvements
- 📚 Documentation restructuring (Phase 10) — Component decomposition, docs cleanup
- ✅ 26 action items from critical analysis resolved
Changed
- ♻️ Architecture refactor (Phase 5-6) — Domain persistence, policy engine, OAuth extraction, proxy decoupling
Fixed
- 🐛 Fix CI build and lint failures
- 🐛 Fix ghost import in
chatHelpers.jsSSE handling
0.3.0 — 2026-02-15
Added
- ⚡ Resilience system — Exponential backoff, circuit breaker, anti-thundering herd mutex, Resilience UI settings page
- 🖥️ 100% frontend API coverage — 7 implementation batches covering all backend routes
- 📊 9 new API routes — Budget, telemetry, compliance, tags, storage health, and more
- 🧪 Eval framework & compliance — ADRs, accessibility, CLI specs, Playwright test specs (46 tasks)
- 🏗️ Pipeline integration — 7 backend modules wired into request processing pipeline
- 🔐 Security hardening — Phases 01–06 (input validation, CSRF, rate limiting, auth hardening)
- 🤖 Advanced features — Phases 07–09 (domain extraction, error codes, request ID, fetch timeout)
- 🔄 Unrecoverable token handling — Detect and mark connections as expired on fatal refresh errors
Changed
- ♻️ Decompose
usageDb,handleSingleModelChat, and UI components for maintainability - ⬇️ Downgrade ESLint v10 → v9 for
eslint-config-nextcompatibility
0.2.0 — 2026-02-14
Added
- 🛣️ Advanced routing services — Priority-based routing, global strategy configuration
- 💰 Cost analytics dashboard — Token cost tracking and analytics visualization
- 💎 Pricing overhaul — Comprehensive pricing data for all supported providers and models
- 📦 npm badge & CLI options — npm version badge in README, CLI options table, automated release docs
0.1.0 — 2026-02-14
Added
- 🎉 Initial OmniRoute release — Rebranded from 9router with full feature set
- 🔄 28 AI providers — OpenAI, Claude, Gemini, Copilot, DeepSeek, Groq, xAI, Mistral, Qwen, iFlow, and more
- 🎯 Smart fallback — 3-tier auto-routing (Subscription → Cheap → Free)
- 🔀 Format translation — Seamless OpenAI ↔ Claude ↔ Gemini format conversion
- 👥 Multi-account support — Multiple accounts per provider with round-robin
- 🔐 OAuth 2.0 (PKCE) — Automatic token management and refresh
- 📊 Usage tracking — Real-time quota monitoring with reset countdown
- 🎨 Custom combos — Create model combinations with fallback chains
- ☁️ Cloud sync — Sync configuration across devices via Cloudflare Worker
- 📖 OpenAPI specification — Full API documentation
- 🛡️ SOCKS5 proxy support — Outbound proxy for upstream provider calls
- 🔌 New endpoints —
/v1/rerank,/v1/audio/*,/v1/moderations - 📦 npm CLI package —
npm install -g omniroutewith auto-launch - 🐳 Docker support — Multi-stage Dockerfile with
baseandcliprofiles - 🔒 Security policy —
SECURITY.mdwith vulnerability reporting guidelines - 🧪 CI/CD pipeline — GitHub Actions for lint, build, test, and npm publish