# v0.5.79 (2026-09-18)
## Features - **Xiaomi MiMo**: merge MiMo Desktop support into `xiaomi-mimo` with dual auth (API key + Desktop/OAuth session), Preview models support, and encrypted-callback OAuth flow - **Claude Code**: add 1M-context toggle (`[1m]` marker) and drive `CLAUDE_CODE_AUTO_COMPACT_WINDOW` directly from the dashboard - **Models**: add DeepSeek-V4.1-Flash to DeepSeek provider, CodeBuddy-Intl, and Ollama (`deepseek-v4.1-flash:cloud`); enable `low`..`max` reasoning effort levels and vision capability for DeepSeek-V4.* - **i18n**: integrate Persian (fa) translation ## Fixes - **OpenCode / OpenCode Go**: resolve 403 `FreeTierError` and 429 rate limits with canonical session format, valid User-Agent, and stable upstream session reuse; force stream and declare `forceStream` for free-tier SSE aggregation; cloak decoy tools, normalize Muse Free tool choice, and strip prior reasoning items on Responses models; route Union Alpha via Messages API - **Kiro**: preserve underscores in tool names (`mcp__server__tool`) and restore client tool names in responses; use neutral placeholder for tool-result-only turns; forward tool-result images - **Stream**: report aborts after HTTP 200 in-band (per-format error frames) instead of closing silently - **Command Code**: preserve images and `reasoning_effort` on `/alpha/generate`; retry transient stream errors and avoid fake stop chunks; add Quota Tracker support - **Zed**: harden OAuth lifecycle (preserve `systemId`, renew proxy timeout), support live model resolution, and lower display priority in OAuth list - **Antigravity**: scope cached thought signatures to model family; strip Claude Code billing headers from system prompts; sanitize Hermes system identity - **Codex**: route bare `codex-auto-review` requests to the Codex provider (#4135) - **Auth**: do not cool down an account for request-scoped 4xx errors - **Usage**: improve DeepSeek credit balance display as currency credit instead of 0/total quota bar - **Model Catalog**: scope synced catalog to gateways and declare vision capabilities for DeepSeek V4.1-Flash IDs
This commit is contained in:
20
CHANGELOG.md
20
CHANGELOG.md
@@ -1,3 +1,23 @@
|
|||||||
|
# v0.5.79 (2026-09-18)
|
||||||
|
|
||||||
|
## Features
|
||||||
|
- **Xiaomi MiMo**: merge MiMo Desktop support into `xiaomi-mimo` with dual auth (API key + Desktop/OAuth session), Preview models support, and encrypted-callback OAuth flow
|
||||||
|
- **Claude Code**: add 1M-context toggle (`[1m]` marker) and drive `CLAUDE_CODE_AUTO_COMPACT_WINDOW` directly from the dashboard
|
||||||
|
- **Models**: add DeepSeek-V4.1-Flash to DeepSeek provider, CodeBuddy-Intl, and Ollama (`deepseek-v4.1-flash:cloud`); enable `low`..`max` reasoning effort levels and vision capability for DeepSeek-V4.*
|
||||||
|
- **i18n**: integrate Persian (fa) translation
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
- **OpenCode / OpenCode Go**: resolve 403 `FreeTierError` and 429 rate limits with canonical session format, valid User-Agent, and stable upstream session reuse; force stream and declare `forceStream` for free-tier SSE aggregation; cloak decoy tools, normalize Muse Free tool choice, and strip prior reasoning items on Responses models; route Union Alpha via Messages API
|
||||||
|
- **Kiro**: preserve underscores in tool names (`mcp__server__tool`) and restore client tool names in responses; use neutral placeholder for tool-result-only turns; forward tool-result images
|
||||||
|
- **Stream**: report aborts after HTTP 200 in-band (per-format error frames) instead of closing silently
|
||||||
|
- **Command Code**: preserve images and `reasoning_effort` on `/alpha/generate`; retry transient stream errors and avoid fake stop chunks; add Quota Tracker support
|
||||||
|
- **Zed**: harden OAuth lifecycle (preserve `systemId`, renew proxy timeout), support live model resolution, and lower display priority in OAuth list
|
||||||
|
- **Antigravity**: scope cached thought signatures to model family; strip Claude Code billing headers from system prompts; sanitize Hermes system identity
|
||||||
|
- **Codex**: route bare `codex-auto-review` requests to the Codex provider (#4135)
|
||||||
|
- **Auth**: do not cool down an account for request-scoped 4xx errors
|
||||||
|
- **Usage**: improve DeepSeek credit balance display as currency credit instead of 0/total quota bar
|
||||||
|
- **Model Catalog**: scope synced catalog to gateways and declare vision capabilities for DeepSeek V4.1-Flash IDs
|
||||||
|
|
||||||
# v0.5.75 (2026-09-10)
|
# v0.5.75 (2026-09-10)
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "9router",
|
"name": "9router",
|
||||||
"version": "0.5.75",
|
"version": "0.5.79",
|
||||||
"description": "9Router CLI - Start and manage 9Router server",
|
"description": "9Router CLI - Start and manage 9Router server",
|
||||||
"bin": {
|
"bin": {
|
||||||
"9router": "./cli.js"
|
"9router": "./cli.js"
|
||||||
|
|||||||
@@ -111,6 +111,8 @@ export const MODEL_PRICING = {
|
|||||||
"deepseek-v3.2-chat": { input: 0.14, output: 0.28, cached: 0.0028, reasoning: 0.28, cache_creation: 0.14 },
|
"deepseek-v3.2-chat": { input: 0.14, output: 0.28, cached: 0.0028, reasoning: 0.28, cache_creation: 0.14 },
|
||||||
"deepseek-v3.2-reasoner": { input: 0.14, output: 0.28, cached: 0.0028, reasoning: 0.28, cache_creation: 0.14 },
|
"deepseek-v3.2-reasoner": { input: 0.14, output: 0.28, cached: 0.0028, reasoning: 0.28, cache_creation: 0.14 },
|
||||||
"deepseek-v4-flash": { input: 0.14, output: 0.28, cached: 0.0028, reasoning: 0.28, cache_creation: 0.14 },
|
"deepseek-v4-flash": { input: 0.14, output: 0.28, cached: 0.0028, reasoning: 0.28, cache_creation: 0.14 },
|
||||||
|
"deepseek-v4.1-flash": { input: 0.14, output: 0.28, cached: 0.0028, reasoning: 0.28, cache_creation: 0.14 },
|
||||||
|
"deepseek-flash": { input: 0.14, output: 0.28, cached: 0.0028, reasoning: 0.28, cache_creation: 0.14 },
|
||||||
"deepseek-v4-pro": { input: 0.435, output: 0.87, cached: 0.003625, reasoning: 0.87, cache_creation: 0.435 },
|
"deepseek-v4-pro": { input: 0.435, output: 0.87, cached: 0.003625, reasoning: 0.87, cache_creation: 0.435 },
|
||||||
|
|
||||||
// === GLM ===
|
// === GLM ===
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ export default {
|
|||||||
{ id: "deepseek-v4-pro", name: "DeepSeek V4 Pro" },
|
{ id: "deepseek-v4-pro", name: "DeepSeek V4 Pro" },
|
||||||
{ id: "deepseek-v4-pro-max", name: "DeepSeek V4 Pro Max", upstreamModelId: "deepseek-v4-pro" },
|
{ id: "deepseek-v4-pro-max", name: "DeepSeek V4 Pro Max", upstreamModelId: "deepseek-v4-pro" },
|
||||||
{ id: "deepseek-v4-pro-none", name: "DeepSeek V4 Pro No Thinking", upstreamModelId: "deepseek-v4-pro" },
|
{ id: "deepseek-v4-pro-none", name: "DeepSeek V4 Pro No Thinking", upstreamModelId: "deepseek-v4-pro" },
|
||||||
|
{ id: "deepseek-v4.1-flash", name: "DeepSeek V4.1 Flash" },
|
||||||
{ id: "deepseek-v4-flash", name: "DeepSeek V4 Flash" },
|
{ id: "deepseek-v4-flash", name: "DeepSeek V4 Flash" },
|
||||||
{ id: "deepseek-v4-flash-vision-exp", name: "DeepSeek V4 Flash Vision (Exp)" },
|
{ id: "deepseek-v4-flash-vision-exp", name: "DeepSeek V4 Flash Vision (Exp)" },
|
||||||
{ id: "deepseek-chat", name: "DeepSeek V3.2 Chat" },
|
{ id: "deepseek-chat", name: "DeepSeek V3.2 Chat" },
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "9router-app",
|
"name": "9router-app",
|
||||||
"version": "0.5.75",
|
"version": "0.5.79",
|
||||||
"description": "9Router web dashboard",
|
"description": "9Router web dashboard",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -44,6 +44,7 @@
|
|||||||
},
|
},
|
||||||
"usage": {
|
"usage": {
|
||||||
"quotaApiUrl": "https://daily-cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",
|
"quotaApiUrl": "https://daily-cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",
|
||||||
|
"quotaSummaryApiUrl": "https://daily-cloudcode-pa.googleapis.com/v1internal:retrieveUserQuotaSummary",
|
||||||
"loadProjectApiUrl": "https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",
|
"loadProjectApiUrl": "https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",
|
||||||
"tokenUrl": "https://oauth2.googleapis.com/token"
|
"tokenUrl": "https://oauth2.googleapis.com/token"
|
||||||
},
|
},
|
||||||
@@ -131,6 +132,9 @@
|
|||||||
"HTTP-Referer": "https://cline.bot",
|
"HTTP-Referer": "https://cline.bot",
|
||||||
"X-Title": "Cline"
|
"X-Title": "Cline"
|
||||||
},
|
},
|
||||||
|
"quirks": {
|
||||||
|
"clineEnvelope": true
|
||||||
|
},
|
||||||
"tokenUrl": "https://api.cline.bot/api/v1/auth/token",
|
"tokenUrl": "https://api.cline.bot/api/v1/auth/token",
|
||||||
"refreshUrl": "https://api.cline.bot/api/v1/auth/refresh",
|
"refreshUrl": "https://api.cline.bot/api/v1/auth/refresh",
|
||||||
"auth": {
|
"auth": {
|
||||||
@@ -149,6 +153,9 @@
|
|||||||
"HTTP-Referer": "https://cline.bot",
|
"HTTP-Referer": "https://cline.bot",
|
||||||
"X-Title": "Cline"
|
"X-Title": "Cline"
|
||||||
},
|
},
|
||||||
|
"quirks": {
|
||||||
|
"clineEnvelope": true
|
||||||
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"combined": true,
|
"combined": true,
|
||||||
"header": "Authorization",
|
"header": "Authorization",
|
||||||
@@ -241,6 +248,12 @@
|
|||||||
"reasoningInject": {
|
"reasoningInject": {
|
||||||
"scope": "all"
|
"scope": "all"
|
||||||
},
|
},
|
||||||
|
"quirks": {
|
||||||
|
"claudeSupportedToolTypes": [
|
||||||
|
"web_search_20250305",
|
||||||
|
"web_search_20260209"
|
||||||
|
]
|
||||||
|
},
|
||||||
"format": "openai",
|
"format": "openai",
|
||||||
"transports": [
|
"transports": [
|
||||||
{
|
{
|
||||||
@@ -438,6 +451,9 @@
|
|||||||
"groq": {
|
"groq": {
|
||||||
"baseUrl": "https://api.groq.com/openai/v1/chat/completions",
|
"baseUrl": "https://api.groq.com/openai/v1/chat/completions",
|
||||||
"validateUrl": "https://api.groq.com/openai/v1/models",
|
"validateUrl": "https://api.groq.com/openai/v1/models",
|
||||||
|
"usage": {
|
||||||
|
"url": "https://api.groq.com/openai/v1/models"
|
||||||
|
},
|
||||||
"format": "openai"
|
"format": "openai"
|
||||||
},
|
},
|
||||||
"hyperbolic": {
|
"hyperbolic": {
|
||||||
@@ -571,7 +587,8 @@
|
|||||||
"Anthropic-Beta": "claude-code-20250219,interleaved-thinking-2025-05-14"
|
"Anthropic-Beta": "claude-code-20250219,interleaved-thinking-2025-05-14"
|
||||||
},
|
},
|
||||||
"quirks": {
|
"quirks": {
|
||||||
"dropOutputConfig": true
|
"dropOutputConfig": true,
|
||||||
|
"requireClaudeToolType": true
|
||||||
},
|
},
|
||||||
"reasoningInject": {
|
"reasoningInject": {
|
||||||
"scope": "all"
|
"scope": "all"
|
||||||
@@ -622,7 +639,8 @@
|
|||||||
"Anthropic-Beta": "claude-code-20250219,interleaved-thinking-2025-05-14"
|
"Anthropic-Beta": "claude-code-20250219,interleaved-thinking-2025-05-14"
|
||||||
},
|
},
|
||||||
"quirks": {
|
"quirks": {
|
||||||
"dropOutputConfig": true
|
"dropOutputConfig": true,
|
||||||
|
"requireClaudeToolType": true
|
||||||
},
|
},
|
||||||
"reasoningInject": {
|
"reasoningInject": {
|
||||||
"scope": "all"
|
"scope": "all"
|
||||||
@@ -709,6 +727,9 @@
|
|||||||
"opencode-go": {
|
"opencode-go": {
|
||||||
"baseUrl": "https://opencode.ai/zen/go/v1/chat/completions",
|
"baseUrl": "https://opencode.ai/zen/go/v1/chat/completions",
|
||||||
"headers": {},
|
"headers": {},
|
||||||
|
"usage": {
|
||||||
|
"url": "https://opencode.ai/zen/go/v1/usage"
|
||||||
|
},
|
||||||
"format": "openai",
|
"format": "openai",
|
||||||
"transports": [
|
"transports": [
|
||||||
{
|
{
|
||||||
@@ -746,7 +767,13 @@
|
|||||||
"headers": {
|
"headers": {
|
||||||
"x-opencode-client": "desktop"
|
"x-opencode-client": "desktop"
|
||||||
},
|
},
|
||||||
|
"forceStream": true,
|
||||||
"noAuth": true,
|
"noAuth": true,
|
||||||
|
"quirks": {
|
||||||
|
"forceAutoToolChoiceModels": [
|
||||||
|
"muse-spark-1.3-contributor-free"
|
||||||
|
]
|
||||||
|
},
|
||||||
"format": "openai"
|
"format": "openai"
|
||||||
},
|
},
|
||||||
"openrouter": {
|
"openrouter": {
|
||||||
@@ -949,6 +976,7 @@
|
|||||||
"HTTP-Referer": "https://endpoint-proxy.local",
|
"HTTP-Referer": "https://endpoint-proxy.local",
|
||||||
"X-Title": "Endpoint Proxy"
|
"X-Title": "Endpoint Proxy"
|
||||||
},
|
},
|
||||||
|
"forceStream": true,
|
||||||
"format": "openai"
|
"format": "openai"
|
||||||
},
|
},
|
||||||
"baidu": {
|
"baidu": {
|
||||||
@@ -1010,4 +1038,4 @@
|
|||||||
},
|
},
|
||||||
"format": "openai"
|
"format": "openai"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user