Repository navigation
docs: comprehensive v0.8.5 documentation update #63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -7,6 +7,54 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||||
|
|
||||||
| --- | ||||||
|
|
||||||
| ## [0.8.5] — 2026-02-17 | ||||||
|
|
||||||
| ### Added | ||||||
|
|
||||||
| - 🔒 **TLS fingerprint spoofing** — Implement browser-like TLS fingerprinting via `wreq-js` to 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 entire `src/` directory from JavaScript to TypeScript. All `.js`/`.jsx` files converted to `.ts`/`.tsx` with 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) | ||||||
| - 🔷 **Full TypeScript migration — `open-sse/`** — Migrated all 94 `.js` files in the SSE routing engine to TypeScript (PR #62) | ||||||
| - **Phase 1**: Rename all 94 `.js` → `.ts` files (`256e443`) | ||||||
| - **Phase 6**: Reduce `@ts-ignore` from 231 → 186 with targeted fixes (`6a54b84`) | ||||||
| - **Phase 7**: Eliminate ALL `@ts-ignore` annotations (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 any` casts for custom Error/Array properties, `declare var EdgeRuntime` for edge compatibility, proper `fs`/`path` imports | ||||||
|
|
||||||
| ### Fixed | ||||||
|
|
||||||
| - 🐛 **Qwen token refresh** — Detect `invalid_request` as unrecoverable error and switch broken test endpoints to `checkExpiry` method 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/checkout` v4 → v6, `actions/setup-node` v4 → v6, `peter-evans/dockerhub-description` v4 → v5 | ||||||
|
|
||||||
| ### Dependencies | ||||||
|
|
||||||
| - ⬆️ `undici` 7.21.0 → 7.22.0 (production) | ||||||
| - ⬆️ `actions/checkout` 4 → 6 | ||||||
| - ⬆️ `actions/setup-node` 4 → 6 | ||||||
| - ⬆️ `peter-evans/dockerhub-description` 4 → 5 | ||||||
| - 🚫 `eslint` 10.0.0 blocked — major version incompatible with `eslint-config-next` | ||||||
|
||||||
| - 🚫 `eslint` 10.0.0 blocked — major version incompatible with `eslint-config-next` | |
| - 🚫 `eslint` 11.x blocked — major version incompatible with `eslint-config-next` |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -5,7 +5,7 @@ | |||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| **Never stop coding. Auto-route to FREE & cheap AI models with smart fallback.** | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| **36+ Providers • Embeddings • Image Generation • Think Tag Parsing** | ||||||||||||||||||||||||||||||||||||||
| **36+ Providers • Embeddings • Image Generation • Audio • Reranking • Full TypeScript** | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| **Free AI Provider for OpenClaw.** | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
|
|
@@ -158,31 +158,69 @@ docker compose --profile cli up -d | |||||||||||||||||||||||||||||||||||||
| | Image | Tag | Size | Description | | ||||||||||||||||||||||||||||||||||||||
| | ------------------------ | -------- | ------ | --------------------- | | ||||||||||||||||||||||||||||||||||||||
| | `diegosouzapw/omniroute` | `latest` | ~250MB | Latest stable release | | ||||||||||||||||||||||||||||||||||||||
| | `diegosouzapw/omniroute` | `0.6.0` | ~250MB | Current version | | ||||||||||||||||||||||||||||||||||||||
| | `diegosouzapw/omniroute` | `0.8.5` | ~250MB | Current version | | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| ## 💡 Key Features | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| | Feature | What It Does | | ||||||||||||||||||||||||||||||||||||||
| | ------------------------------- | --------------------------------------------- | | ||||||||||||||||||||||||||||||||||||||
| | 🎯 **Smart 3-Tier Fallback** | Auto-route: Subscription → Cheap → Free | | ||||||||||||||||||||||||||||||||||||||
| | 📊 **Real-Time Quota Tracking** | Live token count + reset countdown | | ||||||||||||||||||||||||||||||||||||||
| | 🔄 **Format Translation** | OpenAI ↔ Claude ↔ Gemini seamless | | ||||||||||||||||||||||||||||||||||||||
| | 👥 **Multi-Account Support** | Multiple accounts per provider | | ||||||||||||||||||||||||||||||||||||||
| | 🔄 **Auto Token Refresh** | OAuth tokens refresh automatically | | ||||||||||||||||||||||||||||||||||||||
| | 🎨 **Custom Combos** | Create unlimited model combinations | | ||||||||||||||||||||||||||||||||||||||
| | 🧩 **Custom Models** | Add any model ID to any provider | | ||||||||||||||||||||||||||||||||||||||
| | 📝 **Request Logging** | Debug mode with full request/response logs | | ||||||||||||||||||||||||||||||||||||||
| | 💾 **Cloud Sync** | Sync config across devices | | ||||||||||||||||||||||||||||||||||||||
| | 📊 **Usage Analytics** | Track tokens, cost, trends over time | | ||||||||||||||||||||||||||||||||||||||
| | 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloudflare Workers | | ||||||||||||||||||||||||||||||||||||||
| | 🔌 **Circuit Breaker** | Auto-open/close per-provider with cooldowns | | ||||||||||||||||||||||||||||||||||||||
| | 🛡️ **Anti-Thundering Herd** | Mutex + auto rate-limit for API key providers | | ||||||||||||||||||||||||||||||||||||||
| | 🧠 **Semantic Cache** | Two-tier cache reduces cost & latency | | ||||||||||||||||||||||||||||||||||||||
| | ⚡ **Request Idempotency** | 5s dedup window for duplicate requests | | ||||||||||||||||||||||||||||||||||||||
| | 📈 **Progress Tracking** | Opt-in SSE progress events for streaming | | ||||||||||||||||||||||||||||||||||||||
| | 🧪 **LLM Evaluations** | Golden set testing with 4 match strategies | | ||||||||||||||||||||||||||||||||||||||
| ### 🧠 Core Routing & Intelligence | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| | Feature | What It Does | | ||||||||||||||||||||||||||||||||||||||
| | ------------------------------- | --------------------------------------------------------------------------------- | | ||||||||||||||||||||||||||||||||||||||
| | 🎯 **Smart 4-Tier Fallback** | Auto-route: Subscription → API Key → Cheap → Free | | ||||||||||||||||||||||||||||||||||||||
| | 📊 **Real-Time Quota Tracking** | Live token count + reset countdown per provider | | ||||||||||||||||||||||||||||||||||||||
| | 🔄 **Format Translation** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro seamless | | ||||||||||||||||||||||||||||||||||||||
| | 👥 **Multi-Account Support** | Multiple accounts per provider with P2C selection | | ||||||||||||||||||||||||||||||||||||||
| | 🔄 **Auto Token Refresh** | OAuth tokens refresh automatically with retry | | ||||||||||||||||||||||||||||||||||||||
| | 🎨 **Custom Combos** | 6 strategies: priority, weighted, round-robin, random, least-used, cost-optimized | | ||||||||||||||||||||||||||||||||||||||
| | 🧩 **Custom Models** | Add any model ID to any provider | | ||||||||||||||||||||||||||||||||||||||
| | 🌐 **Wildcard Router** | Route `provider/*` patterns to any provider dynamically | | ||||||||||||||||||||||||||||||||||||||
| | 🧠 **Thinking Budget** | Passthrough, auto, custom, and adaptive modes for reasoning models | | ||||||||||||||||||||||||||||||||||||||
| | 💬 **System Prompt Injection** | Global system prompt applied across all requests | | ||||||||||||||||||||||||||||||||||||||
| | 📄 **Responses API** | Full OpenAI Responses API (`/v1/responses`) support for Codex | | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| ### 🎵 Multi-Modal APIs | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| | Feature | What It Does | | ||||||||||||||||||||||||||||||||||||||
| | -------------------------- | --------------------------------------------------- | | ||||||||||||||||||||||||||||||||||||||
| | 🖼️ **Image Generation** | `/v1/images/generations` — 4 providers, 9+ models | | ||||||||||||||||||||||||||||||||||||||
| | 📐 **Embeddings** | `/v1/embeddings` — 6 providers, 9+ models | | ||||||||||||||||||||||||||||||||||||||
| | 🎤 **Audio Transcription** | `/v1/audio/transcriptions` — Whisper-compatible | | ||||||||||||||||||||||||||||||||||||||
| | 🔊 **Text-to-Speech** | `/v1/audio/speech` — Multi-provider audio synthesis | | ||||||||||||||||||||||||||||||||||||||
| | 🛡️ **Moderations** | `/v1/moderations` — Content safety checks | | ||||||||||||||||||||||||||||||||||||||
| | 🔀 **Reranking** | `/v1/rerank` — Document relevance reranking | | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| ### 🛡️ Resilience & Security | ||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||
| | Feature | What It Does | | ||||||||||||||||||||||||||||||||||||||
| | ------------------------------- | ------------------------------------------------------------ | | ||||||||||||||||||||||||||||||||||||||
| | 🔌 **Circuit Breaker** | Auto-open/close per-provider with configurable thresholds | | ||||||||||||||||||||||||||||||||||||||
| | 🛡️ **Anti-Thundering Herd** | Mutex + semaphore rate-limit for API key providers | | ||||||||||||||||||||||||||||||||||||||
| | 🧠 **Semantic Cache** | Two-tier cache (signature + semantic) reduces cost & latency | | ||||||||||||||||||||||||||||||||||||||
| | ⚡ **Request Idempotency** | 5s dedup window for duplicate requests | | ||||||||||||||||||||||||||||||||||||||
| | 🔒 **TLS Fingerprint Spoofing** | Bypass TLS-based bot detection via wreq-js | | ||||||||||||||||||||||||||||||||||||||
| | 🌐 **IP Filtering** | Allowlist/blocklist for API access control | | ||||||||||||||||||||||||||||||||||||||
| | 📋 **Compliance Audit Log** | Tamper-proof request logs with opt-out per API key | | ||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+196
to
+204
|
||||||||||||||||||||||||||||||||||||||
| | Feature | What It Does | | |
| | ------------------------------- | ------------------------------------------------------------ | | |
| | 🔌 **Circuit Breaker** | Auto-open/close per-provider with configurable thresholds | | |
| | 🛡️ **Anti-Thundering Herd** | Mutex + semaphore rate-limit for API key providers | | |
| | 🧠 **Semantic Cache** | Two-tier cache (signature + semantic) reduces cost & latency | | |
| | ⚡ **Request Idempotency** | 5s dedup window for duplicate requests | | |
| | 🔒 **TLS Fingerprint Spoofing** | Bypass TLS-based bot detection via wreq-js | | |
| | 🌐 **IP Filtering** | Allowlist/blocklist for API access control | | |
| | 📋 **Compliance Audit Log** | Tamper-proof request logs with opt-out per API key | | |
| | Feature | What It Does | | |
| | ------------------------------- | ---------------------------------------------------------------------------- | | |
| | 🔌 **Circuit Breaker** | Auto-open/close per-provider with configurable thresholds | | |
| | 🛡️ **Anti-Thundering Herd** | Mutex + semaphore rate-limit for API key providers | | |
| | 🧠 **Semantic Cache** | Two-tier cache (signature + semantic) reduces cost & latency | | |
| | ⚡ **Request Idempotency** | 5s dedup window for duplicate requests | | |
| | 🔒 **TLS Fingerprint Spoofing** | Bypass TLS-based bot detection via wreq-js | | |
| | 🌐 **IP Filtering** | Allowlist/blocklist for API access control | | |
| | 📋 **Admin Audit Log & Log Opt-out** | Immutable log of admin actions (settings/API keys/server events) + per-API-key opt-out for request/proxy logging | |
Copilot
AI
Feb 17, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
README now states Node.js 20+ runtime, but the repo’s declared engine requirement is still >=18.0.0 (package.json). This mismatch can confuse users and tooling; either adjust the README runtime line to match the supported engines, or update package.json engines to reflect the real minimum Node version.
| - **Runtime**: Node.js 20+ | |
| - **Runtime**: Node.js 18+ (recommended: 20+) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line duplicates information about CI/CD dependency bumps that is already listed in the 'Dependencies' section. To keep the changelog concise and avoid redundancy, it's best to list these updates in only one section. I recommend removing this line from the 'Changed' section.