Releases: decolua/9router
Releases · decolua/9router
feat: token-saver dashboard, Venice AI, Blackbox catalog overhaul version 0.5.12
Features:
- Add token-saver dashboard page — decolua
- Add bulk delete for provider connections — teddytkz
- Resolve GitHub Copilot model catalog from upstream — caiqinzhou
- Add Venice AI provider — Brokenc0de
- Add Kiro external_idp import for Microsoft SSO (CLIProxyAPI) — Stevanus Pangau
- Overhaul Blackbox provider catalog + WebUI test support — suryacagur
Fixes:
- Provider thinking compatibility (DeepSeek/Gemini) — Mink Nguyen
- Stop double-counting streaming usage at source — decolua
- Usage logging dedupe to reduce stats churn — Mink Nguyen
- Prevent non-JSON SSE lines / duplicate [DONE] from breaking clients (PR #2046) — qianze
- Resolve Gemini TTS models from catalog — nguyenha935
- Support Kiro IDC (organization) token import — quanturbo
- Preserve forced streaming for JSON clients (#2031) — Joseph Yaksich
- Preserve Responses text format (Codex) — tenglong
- Support Gemini native TTS generateContent endpoint — nguyenha935
- Add missing zh-CN endpoint key label (i18n) — weimaozhen
- CodeBuddy: only send reasoning params when client requests reasoning (#2071) — Rex
- Show custom provider models in combo picker — Sapto
- Docker: add docker-compose.yml with headroom enabled by default — nitsuahlabs
- Clarify token diagnostics vs provider billing (headroom, #1998) — Sutarto Jordan Chrisfivo
- Translate openai-responses input through OpenAI for compression (#1998) — Ankit
- Kiro: report 1M context window for claude-opus-4.8 — EdisonPVE
- Avoid stale redirects after auth changes (#2100) — Emirhan
- Mark Claude Opus 4.7 (dashed id) as 1M context — Brokenc0de
- Preserve reasoning effort through Codex translations — ntdung6868
- Token-saver: full width card layout — decolua
- Antigravity: retry transient upstream failures — Sutarto Jordan Chrisfivo
- Param-support: handle strip rules without match/drop (#1960) — Joseph Yaksich
- Translator: resolve custom provider prefix in debug endpoint (#1083) — hamsa0x7
feat: Antigravity native image gen, CodeBuddy CN auth version 0.5.8
Features:
- Antigravity: native image generation support (image models tagged kind:image, shown in media-providers UI)
- CodeBuddy CN: API key auth + credit quota tracker
- CodeBuddy CN: short model prefix alias cbcn
Fixes:
- MiniMax-M3: enable vision capability
- Headroom: support Docker sidecar proxy
- Antigravity: image executor fixes
- mimo-free: Chrome User-Agent rotation to bypass anti-abuse gate
- cloudflare-ai: flatten content-part arrays to string to avoid oneOf 400 (#1926)
- Translator: normalize tools to Anthropic-native shape for non-Anthropic providers
- CLI: handle Next.js 16 nested standalone output path (#1940)
- Codex: preserve custom tools during request normalization
- next.config: add new route for responses endpoint to API
feat: Ponytail code gen, Headroom proxy, CodeBuddy CN provider version 0.5.6
Features:
- Ponytail: minimalist code generation feature
- Headroom: proxy lifecycle management + dashboard UI (one-click start/stop, install detection, status probing, token saver, claude↔openai shape conversion)
- CodeBuddy CN: new OAuth provider (copilot.tencent.com) — 15-model catalog, /v2 inference, forced streaming, OpenAI-style reasoning
- OpenCode-Go: align models with official endpoints; route Qwen 3.7 MiniMax via /v1/messages, GLM/Kimi/DeepSeek/MiMo via /chat/completions
Fixes:
- Anthropic-compatible validation: use POST /v1/messages (GET /models not spec, false invalid for valid keys)
- CLI tools: tolerate JSONC configs in all 8 settings routes (opencode, openclaw, kilo, droid, cowork, copilot, claude, cline)
- Gemini/Antigravity: preserve pattern in tool schema translation (glob/grep)
- Combo/Fusion: flatten Anthropic-style tool messages in panel calls (prevent 503)
- Models: store provider custom models by provider scope
- Perplexity: use /v1/models endpoint for key validation
fix: Kiro/AG/Xiaomi providers, fusion tool history, vision models version 0.5.4
Fixes:
- Kiro: honor thinking effort budgets
- AG/Kiro/Xiaomi: provider fixes
- Combo/Fusion: flatten tool history in panel calls to prevent 503
- LLM selector: show custom vision models in selector and model list
- Image: prevent compatible nodes from shadowing provider aliases
feat: Combo Fusion + Capacity auto-switch, Kiro API-key, Claude auto-ping & 429 throttle version 0.5.2
Features:
- Combo Fusion strategy — query all models in parallel, a judge synthesizes one answer
- Per-combo strategy selector (fallback / round-robin / fusion / capacity) with judge picker
- Capacity auto-switch — image/PDF/audio requests route to a capable model first
- Kiro headless API-key auth (ksk_) + direct claude<->kiro route
- Claude auto-ping — warm the 5h quota window right after reset
Fixes:
- Claude 429: throttle OAuth usage polling (cache resetAt, 3min refresh, cooldown), chat unaffected
- Usage logs always empty: missing await on getAdapter() in getRecentLogs
- Executors: strip params unsupported by provider/model (claude-opus-4 temperature 400)
- Translator: deterministic tool_call ids for gemini/antigravity -> OpenAI (tool-pairing 400s)
- Antigravity: strip optional from tool schemas before Gemini
- Claude-to-OpenAI: handle OpenAI-format responses in non-streaming path
- Usage views: consistent edited connection names across Providers & Quota Tracker
- Security: hardened reverse-proxy local-access trust + SSRF hardening on web fetch
Internal:
- Large open-sse/translator refactor: unified registry, single-sourced URLs, DRY concerns, golden tests
feat: Vercel AI Gateway, MiMo Free, Kiro failover + security & provider fixes version 0.4.80
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)
fix: codex streaming timeouts + Responses terminal events version 0.4.71
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 (#1529, #1572)
- MiniMax: echo reasoning_content on follow-up turns to avoid 400 (#1543)
- Kiro: handle 400 on tool-bearing history; add mappable auto model slot; fix binary EventStream crash + 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 real endpoints; 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
fix: Readable import + lower stream stall timeout version 0.4.63
Fixes:
- proxyFetch: restore missing Readable import causing runtime ReferenceError in DNS-bypass fetch path
Improvements:
- Lower stream stall timeout from 60s to 35s for faster hang detection
v0.4.62: Codex stability, AG 2.x MITM, json_schema fallback version 0.4.62
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:
- Reduce fetch connect timeout from 30s to 20s for faster fail-over
- Refactor Tunnel into dedicated Cloudflare and Tailscale manager modules
- Refactor tokenRefresh service with in-flight dedup to prevent refresh_token_reused errors
fix: OAuth login on Windows version 0.4.59
Fixes:
- OAuth: fix login flow on Windows