| # v0.4.80 (2026-06-13) |
|
|
| ## Features |
| - Vercel AI Gateway: support embeddings, images and credit usage (#1183) |
| - Add MiMo Free no-auth provider (#1789) |
| - Vertex: support ADC `authorized_user` credential |
| - Cowork: re-enable Claude Cowork with preset-only stdio MCP |
| - Codex: bulk add accounts via JSON (#1719) |
| - Kiro: enable multi-endpoint failover for GenerateAssistantResponse (#1722) |
|
|
| ## Fixes |
| - Security: re-auth on DB export/import + SSRF guard on web fetch |
| - Auth: real client IP rate-limiting + remote default-password guard |
| - Cerebras/Mistral: strip unsupported `client_metadata` from downstream requests (#1742) |
| - SiliconFlow: update baseUrl `.cn` -> `.com` + curate verified model list (#1760) |
| - Gemini-to-OpenAI: route unsigned thought parts to `reasoning_content` (#1752) |
| - Claude-to-OpenAI: strip Anthropic billing header from system prompt (#1765) |
| - Anthropic-compatible: send Bearer auth for third-party gateways (#1795) |
| - Usage-stats: avoid partial stats on initial SSE race (#1767) |
| - Proxy: use `export default` in proxy.js for Next.js 16 middleware detection |
| - Claude passthrough: add body normalization |
| - GitHub Copilot: refresh missing/expired token on models discovery (#1727) + add mappable gpt-5-mini/gpt-5.4-nano slots for Copilot MITM (#1653) |
| - Kiro: auto-resolve profileArn to prevent 403 on IDC login, enhance profile ARN resolution, update endpoint to `runtime.us-east-1.kiro.dev` (#1713) |
| - Tunnel: detect system-installed Tailscale via dual-socket probe (#1723) + non-blocking probes to prevent UI freeze |
| - CommandCode: force `stream=true` in transformRequest (#1706) |
| - Qoder: increase timeouts for reasoning models and improve stream handling |
| - Dashboard: show provider node name instead of connection name in topology (#1770) + show explicit `kind="llm"` combos on combos page (#1684) |
|
|
| ## Docs |
| - README: add Indonesian 9Router tutorial video (#1709) |
|
|
| # v0.4.71 (2026-06-06) |
|
|
| ## Features |
| - Caveman: add wenyan classical Chinese levels and sync upstream prompts; locale-based visibility on endpoint page |
| - i18n: endpoint exposure notice across multiple languages + Russian README |
| - Antigravity: add gemini-3.5-flash-extra-low (Low) model |
| - xiaomi-tokenplan: add Claude-native MiMo V2.5 Pro alias via dedicated executor |
| - Qoder: fetch latest model + dashboard import-model button (#1642) |
| - MiniMax: add MiniMax-M3 + update Quota Tracker coding/CN (#1631) |
|
|
| ## Fixes |
| - Codex: harden streaming timeouts (stall/connect raised to 60s, configurable per-provider), accept `response.done` event, and always emit a terminal `response.failed` + `[DONE]` for Responses passthrough when a stream closes, stalls, or aborts before a terminal event β prevents codex clients from hanging (#1648, #1680, #1688, #1618) |
| - Codex: durable OAuth refresh lifecycle (#1664) |
| - Tunnel: skip virtual interfaces to prevent false netchange watchdog |
| - Claude: fix forced tool_choice 400 on cc/ OAuth route (#1592) |
| - Proxy: raise Next client body limit to 128MB via `NINEROUTER_PROXY_CLIENT_MAX_BODY_SIZE` (#1529, #1572) |
| - MiniMax: echo `reasoning_content` on follow-up turns to avoid 400 (#1543) |
| - Kiro: handle 400 on tool-bearing history without client tools; add mappable "auto" model slot; fix binary EventStream crash + add models & TTS tool filtering |
| - Antigravity: passthrough tab-autocomplete + mark default agent slot mandatory |
| - Qoder: allow `qmodel_latest` model key (#1638) |
| - Providers: restore one-connection guard for compatible/embedding nodes |
| - Model-test: route image/STT probes to their real endpoints, harden STT ping; add opencode-go + xiaomi-tokenplan to connection test (#1576, #1628) |
|
|
| ## Improvements |
| - Dashboard: reorganize menu actions across sidebar/header/profile |
| - Translator: add data-driven coverage, bug-exposing cases, and real provider smoke tests |
|
|
| # v0.4.66 (2026-05-29) |
|
|
| ## Features |
| - Add Qoder provider: device-flow OAuth, COSY signing, WAF-bypass body encoding, live model catalog, dashboard quota tracker, 11 models (#1372) |
| - Add new models: Claude Opus 4.8 (Claude Code), GPT 5.4 Mini (Codex) |
|
|
| ## Fixes |
| - DeepSeek thinking mode: echo `reasoning_content` back on follow-up/tool-call turns so OpenCode-free and custom providers no longer 400 with "reasoning_content must be passed back" (#1543) |
| - Reasoning injector: match deepseek/kimi model ids case-insensitively (covers custom providers using capitalized model names) |
| - OpenCode suggested-models: include free models without the `-free` suffix, e.g. `big-pickle` (#1535) |
| |
| ## Improvements |
| - Codex: trim sunset models, keep gpt-5.5 / gpt-5.4 / gpt-5.3-codex family, add gpt-5.4-mini |
| - volcengine-ark: refresh model list (add DeepSeek-V4-Flash/Pro, drop EOL entries) |
| - Lower stream stall timeout 35s β 30s for faster hang detection |
| |
| # v0.4.63 (2026-05-26) |
| |
| ## Fixes |
| - GitHub Copilot: never route Gemini/Claude models to the `/responses` endpoint; prevents misleading "does not support Responses API" 400s (#1062) |
| - proxyFetch: restore missing `Readable` import causing runtime `ReferenceError` in DNS-bypass fetch path |
| |
| ## Improvements |
| - Lower stream stall timeout from 60s β 35s for faster hang detection |
| |
| # v0.4.62 (2026-05-26) |
| |
| ## Fixes |
| - Codex: auto-retry when upstream drops mid-stream (no more hangs) |
| - Codex: fix random 400/404 errors, tool-calling failures, and unstable prompt cache |
| - MITM: support Antigravity 2.x |
| - Sanitize Read tool args to prevent retry loops from non-Anthropic models (#1144) |
| - Implement json_schema fallback for OpenAI-compatible providers without native Structured Output (#1343) |
| - Strip empty Read pages argument in OpenAI-to-Claude translator (#1354) |
| - Forward Gemini output dimensions for embeddings (#1366) |
| - Resolve setState-in-effect errors in dashboard components (#1362) |
| - Gemini CLI: reuse stored OAuth project IDs for quota checks and show clearer setup guidance when the project is missing (#1271, #1428) |
|
|
| ## Features |
| - Add Cloudflare Workers proxy deployer and pool integration (#1360) |
| - Add Deno Deploy relays support and improved proxy pools dashboard layout (#1437) |
|
|
| ## Improvements |
| - Refactor Tunnel into dedicated Cloudflare and Tailscale manager modules |
| - Refactor tokenRefresh service with in-flight dedup to prevent refresh_token_reused errors |
|
|
| # v0.4.59 (2026-05-21) |
|
|
| ## Fixes |
| - OAuth: fix login flow on Windows |
|
|
| # v0.4.58 (2026-05-21) |
|
|
| ## Features |
| - xAI Grok provider (OAuth, API key, image) |
| - Provider limits: paginated accounts with page size controls |
|
|
| ## Fixes |
| - Tailscale: fix connection status on Windows (#1300) |
| - Tunnel: fix false "checking" when tunnel URL is reachable |
| - Stream: fix pipe errors on client disconnect/abort |
|
|
| # v0.4.55 (2026-05-18) |
|
|
| ## Features |
| - Xiaomi MiMo Token Plan: region selector (Singapore / China / Europe) β keys are cluster-specific |
| - Antigravity: risk confirmation dialog before first connection |
| - Gemini CLI: surface upstream retry delay on 429 errors |
|
|
| ## Fixes |
| - MITM: cannot kill process on macOS under sudo (lsof not found in PATH) |
| - Stream: false-positive stall timeout on Claude reasoning / Kiro responses |
| - Tunnel: cannot re-enable after disable (stuck state) |
| - Tunnel: cloudflared error messages now include log tail for easier debugging |
| - Language switcher: applies selected locale immediately on close (#1234) |
| - Antigravity OAuth: metadata now matches the official client |
|
|
| ## Improvements |
| - Gemini CLI: bump engine to 0.34.0 |
| - Re-hide `qwen` (OAuth EOL) and `iflow` (not ready) providers |
|
|
| # v0.4.52 (2026-05-17) |
|
|
| ## Features |
| - Add Vercel AI Gateway provider support (#1183) |
| - rtk: Kiro format tool result compression β handle conversationState.history & currentMessage, preserve error results, ~13.6% savings (#1194) |
|
|
| ## Fixes |
| - openclaw: normalize agent.model object form `{primary, fallbacks}` before .startsWith β fix TypeError & 'not configured' status (#1216) |
| - Usage Details pagination: stay inside mobile viewport <640px (#1218) |
| - Fix test model error |
| - Fix MIMO provider in Codex |
| - Disable log file creation when using MITM AG |
|
|
| # v0.4.50 (2026-05-16) |
|
|
| ## Fixes |
| - Fix duplicate tray icon on macOS when hiding to tray |
| - Fix tray not showing in background mode on macOS |
| - Fix hide to tray broken on Windows/Linux |
| - Fix Shutdown button in web UI not working |
|
|
| # v0.4.49 (2026-05-16) |
|
|
| ## Features |
| - Add Kiro provider support: full request/response translation, live model listing, reasoning content support |
| - Add `buildOutput` RTK filter with autodetect for npm/yarn/cargo build logs |
| - Add MITM warning notification in tray and dashboard |
|
|
| ## Improvements |
| - Add modalities (input/output) to model configuration for OpenCode |
| - Fix tray hide-to-tray: keep current process alive instead of spawning detached child (fixes macOS NSStatusItem ghost icon) |
| - Fix tray kill: graceful shutdown with SIGTERM/SIGKILL escalation |
| - Fix SIGHUP handling so macOS terminal close doesn't kill tray process |
| - Hide deprecated providers (qwen, iflow, antigravity) |
| - Update i18n across 32 languages |
|
|
| ## Fixes |
| - Fix model check (test-models) blocked by dashboardGuard: pass machineId-based CLI token in internal self-calls |
|
|
| # v0.4.46 (2026-05-15) |
|
|
| ## Breaking Changes |
| - Tunnel public URL changed β old tunnel links no longer work, please reconnect to get the new URL |
|
|
| # v0.4.44 (2026-05-15) |
|
|
| ## Features |
| - Add Blackbox provider with `bb` alias (#1143) |
| - Add Xiaomi token plan provider |
| - Enhance model select modal UX + modal traffic lights (#1111) |
| - Default Usage dashboard period to Today (#1141) |
|
|
| ## Fixes |
| - Fix Cowork model selection and Windows CLI packaging (#1129) |
| - Update provider name retrieval for compatibility provider (#1135) |
| - Update JWT_SECRET handling |
| |
| # v0.4.41 (2026-05-14) |
| |
| ## Features |
| - Add jcode CLI tool integration with auto-configuration (#1047) |
| - Redesign CLI Tools dashboard: grid layout (1/2/3 cols) + dedicated detail page per tool |
| - Add drag-and-drop reordering for combo models (#1108) |
| - Add Today period option to Usage & Analytics (#1063) |
| - Add DeepSeek V4 Pro effort aliases (#950) |
| |
| ## Fixes |
| - fix(autostart): work on nvm + npm 9/10, actually register with launchctl (#1104, fixes #1082) |
| - Fix Ollama usage not tracked/shown in UI (#1102) |
| - fix(opencode): preserve DeepSeek reasoning content (#1099, fixes #1093) |
| - Fix TUI input lag (replace enquirer with native readline, persistent raw mode) |
| - fix(ui): show API key row actions on mobile (#1112) |
| |
| ## Improvements |
| - Sync DeepSeek TUI card style with other CLI tools (badges, layout, manual config modal) |
| - Add official logos for Amp CLI, jcode, Qwen Code (replace generic icons) |
| - Resize deepseek-tui icon 1024β128 with padding for visual consistency |
| |
| # v0.4.39 (2026-05-14) |
| |
| ## Fixes |
| - fix(docker): restore `/app/server.js` (v0.4.38 regression) |
| |
| # v0.4.38 (2026-05-13) |
| |
| ## Features |
| - Add DeepSeek TUI as CLI tool in dashboard (#1088) |
| |
| ## Fixes |
| - Fix broken Docker image in v0.4.36/v0.4.37 (#1096, #1097) |
| |
| ## Improvements |
| - Clean Docker tags + clearer pulls badge |
| |
| # v0.4.37 (2026-05-13) |
| |
| ## Improvements |
| - Security hardening β upgrade recommended |
| |
| # v0.4.36 (2026-05-13) |
| |
| ## Features |
| - Add MiniMax TTS provider support (#1043) |
| - Docker images now published on both Docker Hub (`decolua/9router`) and GHCR β pull from your preferred registry |
| |
| ## Improvements |
| - Replace browser confirm dialogs with custom ConfirmModal (#1060) |
| |
| ## Fixes |
| - Fix Docker `Cannot find module 'next'` error in standalone build |
| - Restore /app/server.js in Docker standalone build (#1064, #1067) |
| - Fix CLI TUI menu arrow-key escape sequences leaking (^[[A^[[B) |
| - Switch macOS/Linux tray to systray2 fork (fixes Kaspersky AV false-positive) (#1080) |
| - Fix zoom controls contrast in topology view (#1066) |