From 515e2cc4300ace55650ae366414cd51ef3d675df Mon Sep 17 00:00:00 2001 From: decolua Date: Sat, 13 Jun 2026 15:41:13 +0700 Subject: [PATCH] =?UTF-8?q?v0.4.77=20(2026-06-13)=20Features=20Vercel=20AI?= =?UTF-8?q?=20Gateway:=20support=20embeddings,=20images=20and=20credit=20u?= =?UTF-8?q?sage=20(#1183)=20Add=20MiMo=20Free=20no-auth=20provider=20(#178?= =?UTF-8?q?9)=20Vertex:=20support=20ADC=20authorized=5Fuser=20credential?= =?UTF-8?q?=20Cowork:=20re-enable=20Claude=20Cowork=20with=20preset-only?= =?UTF-8?q?=20stdio=20MCP=20Codex:=20bulk=20add=20accounts=20via=20JSON=20?= =?UTF-8?q?(#1719)=20Kiro:=20enable=20multi-endpoint=20failover=20for=20Ge?= =?UTF-8?q?nerateAssistantResponse=20(#1722)=20Fixes=20Security:=20re-auth?= =?UTF-8?q?=20on=20DB=20export/import=20+=20SSRF=20guard=20on=20web=20fetc?= =?UTF-8?q?h=20Auth:=20real=20client=20IP=20rate-limiting=20+=20remote=20d?= =?UTF-8?q?efault-password=20guard=20Cerebras/Mistral:=20strip=20unsupport?= =?UTF-8?q?ed=20client=5Fmetadata=20from=20downstream=20requests=20(#1742)?= =?UTF-8?q?=20SiliconFlow:=20update=20baseUrl=20.cn=20=E2=86=92=20.com=20+?= =?UTF-8?q?=20curate=20verified=20model=20list=20(#1760)=20Gemini-to-OpenA?= =?UTF-8?q?I:=20route=20unsigned=20thought=20parts=20to=20reasoning=5Fcont?= =?UTF-8?q?ent=20(#1752)=20Claude-to-OpenAI:=20strip=20Anthropic=20billing?= =?UTF-8?q?=20header=20from=20system=20prompt=20(#1765)=20Anthropic-compat?= =?UTF-8?q?ible:=20send=20Bearer=20auth=20for=20third-party=20gateways=20(?= =?UTF-8?q?#1795)=20Usage-stats:=20avoid=20partial=20stats=20on=20initial?= =?UTF-8?q?=20SSE=20race=20(#1767)=20Proxy:=20use=20export=20default=20in?= =?UTF-8?q?=20proxy.js=20for=20Next.js=2016=20middleware=20detection=20Cla?= =?UTF-8?q?ude=20passthrough:=20add=20body=20normalization=20GitHub=20Copi?= =?UTF-8?q?lot:=20refresh=20missing/expired=20token=20on=20models=20discov?= =?UTF-8?q?ery=20(#1727)=20+=20add=20mappable=20gpt-5-mini/gpt-5.4-nano=20?= =?UTF-8?q?slots=20for=20Copilot=20MITM=20(#1653)=20Kiro:=20auto-resolve?= =?UTF-8?q?=20profileArn=20to=20prevent=20403=20on=20IDC=20login,=20enhanc?= =?UTF-8?q?e=20profile=20ARN=20resolution,=20update=20endpoint=20to=20runt?= =?UTF-8?q?ime.us-east-1.kiro.dev=20(#1713)=20Tunnel:=20detect=20system-in?= =?UTF-8?q?stalled=20Tailscale=20via=20dual-socket=20probe=20(#1723)=20+?= =?UTF-8?q?=20non-blocking=20probes=20to=20prevent=20UI=20freeze=20Command?= =?UTF-8?q?Code:=20force=20stream=3Dtrue=20in=20transformRequest=20(#1706)?= =?UTF-8?q?=20Qoder:=20increase=20timeouts=20for=20reasoning=20models=20an?= =?UTF-8?q?d=20improve=20stream=20handling=20Dashboard:=20show=20provider?= =?UTF-8?q?=20node=20name=20instead=20of=20connection=20name=20in=20topolo?= =?UTF-8?q?gy=20(#1770)=20+=20show=20explicit=20kind=3D"llm"=20combos=20on?= =?UTF-8?q?=20combos=20page=20(#1684)=20Docs=20README:=20add=20Indonesian?= =?UTF-8?q?=209Router=20tutorial=20video=20(#1709)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ cli/package.json | 2 +- open-sse/config/providers.js | 4 +++- package.json | 2 +- 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f325eb60..f2176c2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,34 @@ +# v0.4.77 (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 diff --git a/cli/package.json b/cli/package.json index 3232a3f2..846d36dc 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "9router", - "version": "0.4.73", + "version": "0.4.80", "description": "9Router CLI - Start and manage 9Router server", "bin": { "9router": "./cli.js" diff --git a/open-sse/config/providers.js b/open-sse/config/providers.js index 4eb2fd9c..3f99cd04 100644 --- a/open-sse/config/providers.js +++ b/open-sse/config/providers.js @@ -210,7 +210,9 @@ export const PROVIDERS = { "https://q.us-east-1.amazonaws.com/generateAssistantResponse", ], format: "kiro", - retry: { 429: 2 }, + // 429 = identity-level throttle; retrying the same identity only spams AWS. + // Rotate across the 3 host surfaces once each (shouldRetry) without per-host retries. + retry: { 429: 0 }, headers: { "Content-Type": "application/json", "Accept": "application/vnd.amazon.eventstream", diff --git a/package.json b/package.json index c648cdc2..91dd2f1d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "9router-app", - "version": "0.4.73", + "version": "0.4.80", "description": "9Router web dashboard", "private": true, "scripts": {