Releases: rizxfrog/CLIProxyAPI-Plus
Releases · rizxfrog/CLIProxyAPI-Plus
Release list
v2026.9.29-snapshot
Linux release assets
CLIProxyAPI_<version>_linux_<arch>.tar.gzis the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline.CLIProxyAPI_<version>_linux_<arch>_no-plugin.tar.gzis the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins.
FreeBSD release assets
CLIProxyAPI_<version>_freebsd_aarch64_no-plugin.tar.gzis the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins.
Changelog
- fix(antigravity): sanitize Claude tool IDs and resolve collisions (580df95)
- feat(registry): update devin model definitions (65459ca)
- fix(logging): prevent request log collisions and select latest log by ID (e6fcfa3)
- feat(usage): track execution request ID and trace ID across usage records (2fe9932)
- fix(gemini): stringify function responses containing JSON schema $ref (5af6cd7)
- fix(auth): isolate credential-scoped quota cooldown from model quota state (aafa4e9)
- feat(pluginhost): add host http operation bridge and lifecycle scoping (855a722)
- feat(auth): persist meta mint subscription metadata in auth record (7d888bf)
- fix(claude): merge adjacent text blocks into single assistant message (781a203)
- fix(auth): preserve file priority across plugin auth refreshes (c404af9)
- feat(executor): enhance sanitizeXAIResponsesBody to utilize resolved thinking support (984aee8)
- fix(codex): send the ChatGPT routing hint native Codex sends (b97f71d)
- refactor(executor): remove unsupported reasoning effort handling and update related tests (6d1d74b)
- Merge pull request router-for-me#6092 from router-for-me/xai (93cccc6)
- Merge commit 'refs/pull/6090/head' of github.com:router-for-me/CLIProxyAPI into dev (0876e7f)
- fix(codex): use resolved base model for routing hint (dd3b657)
- fix(claude): align 2.1.280 fingerprint and thinking visibility (router-for-me#6096) (f7c738d)
- fix(translator): sanitize tool names for Claude and inject fallback schema for parameterless tools (75b854e)
- Enhance logging and improve thought signature handling (router-for-me#6106) (8222e32)
- fix(translator,auth): avoid synthetic bypass on unsigned text parts and reduce stream rewrite log noise (107d7f7)
- Merge pull request router-for-me#6107 from sususu98/fix/stream-rewrite-log-noise (75f2d01)
- fix(executor,auth): support Session_id header in Antigravity replay and remove redundant stream chunk logging (c7f358d)
- fix(registry,cliproxy): set xai owned_by for Devin grok models and align Antigravity web search tests (377747b)
- fix(api): immediately close connections on stop and guard state access (759c57c)
- fix(registry): keep request context active until response body is read (74c1ebd)
- fix(interceptors): avoid cloning request body for read-only interceptors (c9a06ba)
- fix(session): avoid rescanning large payloads during session extraction (1dffddf)
- fix(meta): fix client id header and preserve subscription metadata (9bdde54)
- fix(devin): ensure swe-1-6-slow is preserved as a builtin model (60325f4)
- fix(auth): preserve attributes and path across plugin refreshes (5530cbd)
- fix(auth): unschedule disabled invalid_grant credentials and apply exponential backoff for enabled invalid_grant (58461c8)
- fix(claude): apply cloaking by default for direct Messages OAuth requests (4332048)
- fix(xiaohuanxiong): accept deep link and bare code in callback parsing (41aacb2)
- fix(auth): unschedule disabled invalid_grant credentials and apply exponential backoff for enabled invalid_grant (router-for-me#6123) (960be01)
- Merge branch 'main' into feature/dev (fdb74a3)
- fix(auth): preserve resolved model capabilities and configuration update support (ed980be)
- fix(thinking): log baseline configuration for native Responses requests (12245ad)
- fix(thinking): log effective effort and baseline for native Responses requests (b4e5cc0)
- fix(claude): preserve tool result adjacency for Antigravity requests (3de5709)
- feat(auth): support terminal rejection in plugin scheduler (6cd86fb)
- fix(codex): strip non-standard multi-agent metadata for compat models (3b2882b)
- feat(codex): support service tier in OpenAI request translation (be4b28f)
- feat(runtime): enhance Devin model aggregation and UID normalization (fc2c98d)
- fix(antigravity): extract and apply reasoning summary config for OpenAI responses (6dea3df)
- feat(tui): support remote management base URL for client mode (ef9e712)
- feat(config): add v8 configuration API (d9922f0)
- feat(api): use query params for v8 oauth routes (9a0502c)
- Merge pull request router-for-me#6154 from router-for-me/v8 (40d4b1a)
- feat: migrate CLIProxyAPI to version 8 (31f4cfa)
- docs(agents): add provider integration playbook (9202dac)
- feat(cline): add Cline (cline.bot) provider support (6c10834)
- feat(models): add per-provider model management (e9fe52e)
- Merge branch 'main' into feature/dev (06c4801)
- fix(config): drop obsolete legacy keys during v8 migration (6c385e6)
- fix(config): preserve unknown legacy sections as comments during v8 migration (4a2c818)
- fix(pluginhost): preserve disabled state in host auth callbacks (5756d76)
- feat(config): warn on unrecognized sections during v8 migration (01274e2)
- fix(meta): strip unsupported search_content_types from web search tools (2c27e61)
- feat(openai): support quality parameter for xAI image requests (4b99d1d)
- fix(openai): prevent false positive namespace prefix matches in responses tools (4ad5bba)
- fix(translator): append trailing newlines to SSEEventData frames (0a45f25)
- fix(gemini): preserve thought signatures in interactions translation (04f8816)
- fix(discovery): support bonded interfaces and deduplicate build warnings (acdace9)
- feat(config): preserve unknown nested fields as comments during v8 migration (48686cc)
- feat(readme): add OpenLux sponsorship information and logo (b87ac83)
- fix(codex): normalize empty function call arguments in responses requests (5d8bb3d)
- fix(claude): remap MCP aliases in tool_addition/tool_removal blocks (958eeca)
- feat(codex): extract and persist subscription plan type (59baf73)
- feat(sdk): add Home credential capabilities and quota APIs (b9971ee)
- fix(codex): use resolved compat for multi-agent v2 (d3cd466)
- Merge pull request router-for-me#6175 from magoz/fix/claude-oauth-tool-change-alias (e8156ec)
- fix(openai): use routed home model compatibility options (ac42acc)
- Merge pull request router-for-me#6176 from router-for-me/home (673e58d)
- feat(logging): switch request ID generation to UUIDv7 (d33f63f)
- feat(oauth): support per-channel model settings overrides (df2774c)
- feat(models): add claude-sonnet-5-5 model (9a3b869)
- docs(agents): mark /v0/management endpoints as deprecated (dace3bb)
- docs(readme): remove CyberPay sponsor (93b683c)
- test(config): add test for DELETE operation preserving document presence (775a308)
- feat(readme): update OpenLux sponsorship details and promotional offer (743bbdf)
- feat(readme): update OpenLux sponsorship links and promotional offer (07c5dc0)
- Merge branch 'sponsor/add-openlux' into dev (a270e7b)
- feat(minimax): add MiniMax Code provider (OAuth device flow) (1143563)
- Merge branch 'main' into feature/dev (a718d45)
Full Changelog: v2026.9.23-16-snapshot...v2026.9.29-snapshot
v2026.9.29-21-snapshot
Linux release assets
CLIProxyAPI_<version>_linux_<arch>.tar.gzis the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline.CLIProxyAPI_<version>_linux_<arch>_no-plugin.tar.gzis the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins.
FreeBSD release assets
CLIProxyAPI_<version>_freebsd_aarch64_no-plugin.tar.gzis the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins.
Changelog
- feat(minimax): add coding-plan quota endpoint (7e6579f)
Full Changelog: v2026.9.29-snapshot...v2026.9.29-21-snapshot
v2026.9.23-16-snapshot
Linux release assets
CLIProxyAPI_<version>_linux_<arch>.tar.gzis the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline.CLIProxyAPI_<version>_linux_<arch>_no-plugin.tar.gzis the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins.
FreeBSD release assets
CLIProxyAPI_<version>_freebsd_aarch64_no-plugin.tar.gzis the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins.
Changelog
- perf(codex): avoid discarded copies of SSE data lines (cbf8318)
- perf(codex): batch tool schema rewrites (5651848)
- perf: index Responses tools and cache stream request validation (8a6a396)
- test(executor): allow non-negative TTFT in xAI usage record assertions (fd5cd22)
- fix(claude): gate fallback-credit beta on fallback tokens or explicit fallbacks (ed751ea)
- fix(translator): hoist tool-result content part cache_control to the block (router-for-me#5432) (bcd13ca)
- refactor(translator): encapsulate tool-result cache-control hoisting in common (50585bf)
- fix(responses): support mid-connection prewarm in websocket handler (7b6fafc)
- fix(responses): filter upstream private and telemetry events in SSE streams (dd013f9)
- feat(pluginapi): propagate response model, service tier, and stream flag to usage plugins (ac3849e)
- fix(gemini): enforce array type for schema nodes declaring items (ffe6ad3)
- feat(models): add grok-4.7 model definition (130c879)
- chore(models): drop gpt-5.3-codex-spark from the embedded catalog (94b7cc2)
- style: gofmt codex bootstrap and cache-control tests (bf44a7f)
- fix(models): set grok-4.7 max completion to the context window (b9b50a8)
- feat(executor): support execution-scoped request proxy overrides (d582067)
- Merge pull request router-for-me#5680 from cookerpapa/perf/codex-tool-schema-batch (7f63f8c)
- Merge pull request router-for-me#5990 from jack-5566/fix/responses-request-cache-pr (5083f65)
- perf(executor): reuse identical Claude and Gemini request translations (639b7f1)
- Merge pull request router-for-me#5678 from cookerpapa/perf/codex-stream-copy (f6d582c)
- perf(executor): avoid discarded copies of Gemini and Kimi stream lines (a26cf2a)
- fix(qoder-cn): correct the CN model catalog and make models.json authoritative (d23a458)
- feat(qoder-cn): sign inference requests with COSY and use the /algo transport (995fec4)
- fix(gemini): preserve items for uppercase ARRAY type in schema sanitizer (2eb8dd1)
- docs(README_CN): fix FluxA AgenticPlan (5556629)
- fix(codex): strip octal NUL pattern escapes from tool schemas (320100e)
- fix(claude): support string input in responses request translation (b989e34)
- fix(registry): avoid double-counting clients with active quota and suspension (ed70aea)
- feat(openai): support video input in responses request translation (4b5adbb)
- feat(codex): add support for disable codex cloaking per credential (f351924)
- feat(management): support updating priority in credential patch endpoints (cc77410)
- feat(registry): update model definitions and bump codex client version to 0.155.0 (2430354)
- feat(server): support trusted proxies configuration for client IP resolution (a962b77)
- feat(registry): add gpt-6-luna model to codex-free (937ebb8)
- Merge pull request router-for-me#6049 from ZYHUO/main (1efd01d)
- docs(readme): add CLIProxy Quota Tray to community projects (e01806f)
- feat(registry): add grok-4.7-build-fast model and update grok-4.7 (fc914b9)
- feat(claude): bump claude cli baseline to 2.1.280 and support tool changes beta (779bf31)
- feat(claude): support Claude Code 2.1.280 feature-gated betas (bd584a7)
- fix(codex): compact client model catalog and preserve required fields (673131f)
- feat: extend Qoder provider authentication and configuration (5c4b4df)
- Merge branch 'main' into feature/dev (d3c6e2c)
Full Changelog: v2026.9.21.13-snapshot...v2026.9.23-16-snapshot
v2026.9.21.13-snapshot
Linux release assets
CLIProxyAPI_<version>_linux_<arch>.tar.gzis the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline.CLIProxyAPI_<version>_linux_<arch>_no-plugin.tar.gzis the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins.
FreeBSD release assets
CLIProxyAPI_<version>_freebsd_aarch64_no-plugin.tar.gzis the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins.
Changelog
- feat(management): paginate auth file listings (76ac75e)
- Merge pull request router-for-me#5897 from camy-x/feat/auth-files-pagination (46d4baf)
- fix(devin): support images in tool results (64c9433)
- fix(config): preserve plugin configurations when saving yaml (afba07b)
- feat(plugin): support scheduling across priorities (b715526)
- fix(management): reject unresolved token placeholders in api-call (0b55053)
- fix(devin): aggregate tool calls by id and track cache write tokens (9e10db5)
- fix(devin): handle orphaned tool results and normalize function result payloads (b6fe4f2)
- feat(claude): support model-level cooling and scope overage rate limits (44eaef0)
- fix(xai): unify forced hosted tool choice normalization (c616193)
- fix(ci): replace go-cross/cgo-actions with direct FreeBSD sysroot cross-compilation (b773607)
- feat(xai): allow grok imagine aspect_ratio 9:20 (75bd6a6)
- feat(xai): also allow grok imagine aspect_ratio 20:9 (f049e00)
- fix(claude): skip retry-after header on overage-only rejections (1cce932)
- fix(codex): strip item-level and tool output prompt cache breakpoints (3662d15)
- fix(xai): restore aliased client web search tool name in responses (660a580)
- feat(codex): append (Devin) suffix to Devin model display names (2874347)
- fix(codex): normalize and support ultrafast service tier (859c486)
- feat(codex): record upstream response model and warn on silent model substitution (25f40d8)
- fix(openai): align tool call messages and preserve ordering on ambiguous outputs (cc545cb)
- feat: add PatewayAI (784285a)
- feat: add FluxA (0b9a91f)
- Merge pull request router-for-me#5919 from Fesaluo/feat/xai-imagine-aspect-ratio-9-20 (05391d7)
- feat(qoder-cn): add Qoder CN provider with browser+PKCE device login (3d15c08)
- feat(refresh): register executor-backed refresh leads and qoder-cn/trae (10990da)
- Merge pull request router-for-me#5928 from Viggo95/feat/codex-response-model-observability (cd5af08)
- feat(executor): extend response model recording and substitution warnings to all providers (e9463ff)
- fix(executor): record authentic Devin and Gemini Interactions response models (f8467f0)
- fix(executor): robust response model observability across meta, kimi, and openai-compat streams (cde7d57)
- fix(executor): record expected Devin upstream model and bound stream observer memory (e84e248)
- fix(codex): preserve reasoning content and IDs for compat models in responses (81d6ba7)
- fix(openai): classify stream request timeout as server error (cb62a67)
- fix(translator): scope tool responses per turn to handle repeated tool call IDs (c2ea268)
- fix(executor): restrict claude advisor tool check to server tool use (f86a33f)
- test(config): verify claude cloak persistence and update behavior (f485217)
- feat(executor): support use-max-completion-tokens for openai compatibility models (690f4f3)
- fix(executor): restore hybrid passthrough mcp tool names in claude oauth (22392c5)
- fix(executor): buffer post-tool text to order devin tool calls before assistant response (b6d1f05)
- fix(schema): normalize true boolean subschemas and strip unsupported keywords (c93978c)
- fix(translator): deduct cache_write_tokens from input_tokens in openai/codex to claude (router-for-me#5956) (883660f)
- Merge pull request router-for-me#5962 from router-for-me/fix/issue-5956-cache-write-deduction (12773e7)
- fix(translator): align tool choice mapping and enforce fail-closed handling (49eec66)
- feat(translator): support strict tool mode mapping for gemini and claude (f247e2b)
- fix(translator): preserve constraints and additionalProperties in gemini parametersJsonSchema (b532db9)
- fix workbuddy daily check-in scheduling (228686e)
- add qodercn quota endpoints, checkin scripts, and reverse-engineering docs (00104d7)
- fix(management): reconcile expired cooldowns to active status in auth files (b4ff581)
- feat(management): support priority field in claude key patch (93b94d2)
- feat(executor): support duplex streaming for codex websockets (42c9680)
- fix(pluginhost): preserve http status codes in host callback and execution errors (1c87874)
- feat(translator): support multimodal audio, video, and file inputs in responses to gemini (61fdfc3)
- feat(translator): support builtin tools in gemini and antigravity interactions (cdfb79e)
- Merge branch 'main' into feature/dev (b721e62)
- chore: ignore codemap artifacts and format Go files (ae774ab)
- fix(claude): accept newer patch releases as native clients (router-for-me#5820) (83a4913)
- docs(claude): clarify patch version floor rationale for native passthrough (c52ca7b)
- fix(auth): avoid unnecessary scheduler rebuilds by checking sync needs from auth map (e56547f)
- feat(steering): add documentation for Codex response steering and duplex transport (ddc3f73)
- fix(translator): preserve reasoning content across tool turns in responses conversion (40cc648)
- feat(auth): propagate context compaction and node kind session metadata (28100e5)
- Merge pull request router-for-me#5982 from ysntony/add-kimi-ai-code-link (29bdd85)
- feat: add full support for kimi.ai oauth and runtime execution (a5ab695)
- Merge branch 'main' into feature/dev (9979612)
- script(check-in): qoder (0ef43f0)
- feat: add management anti-bot protection (9216501)
- feat(qoder-cn): improve quota handling and Python check-in tooling (9760746)
Full Changelog: v2026.9.17.17-snapshot...v2026.9.21.13-snapshot
v2026.9.21.12-snapshot
Linux release assets
CLIProxyAPI_<version>_linux_<arch>.tar.gzis the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline.CLIProxyAPI_<version>_linux_<arch>_no-plugin.tar.gzis the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins.
FreeBSD release assets
CLIProxyAPI_<version>_freebsd_aarch64_no-plugin.tar.gzis the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins.
Changelog
- feat(management): paginate auth file listings (76ac75e)
- Merge pull request router-for-me#5897 from camy-x/feat/auth-files-pagination (46d4baf)
- fix(devin): support images in tool results (64c9433)
- fix(config): preserve plugin configurations when saving yaml (afba07b)
- feat(plugin): support scheduling across priorities (b715526)
- fix(management): reject unresolved token placeholders in api-call (0b55053)
- fix(devin): aggregate tool calls by id and track cache write tokens (9e10db5)
- fix(devin): handle orphaned tool results and normalize function result payloads (b6fe4f2)
- feat(claude): support model-level cooling and scope overage rate limits (44eaef0)
- fix(xai): unify forced hosted tool choice normalization (c616193)
- fix(ci): replace go-cross/cgo-actions with direct FreeBSD sysroot cross-compilation (b773607)
- feat(xai): allow grok imagine aspect_ratio 9:20 (75bd6a6)
- feat(xai): also allow grok imagine aspect_ratio 20:9 (f049e00)
- fix(claude): skip retry-after header on overage-only rejections (1cce932)
- fix(codex): strip item-level and tool output prompt cache breakpoints (3662d15)
- fix(xai): restore aliased client web search tool name in responses (660a580)
- feat(codex): append (Devin) suffix to Devin model display names (2874347)
- fix(codex): normalize and support ultrafast service tier (859c486)
- feat(codex): record upstream response model and warn on silent model substitution (25f40d8)
- fix(openai): align tool call messages and preserve ordering on ambiguous outputs (cc545cb)
- feat: add PatewayAI (784285a)
- feat: add FluxA (0b9a91f)
- Merge pull request router-for-me#5919 from Fesaluo/feat/xai-imagine-aspect-ratio-9-20 (05391d7)
- feat(qoder-cn): add Qoder CN provider with browser+PKCE device login (3d15c08)
- feat(refresh): register executor-backed refresh leads and qoder-cn/trae (10990da)
- Merge pull request router-for-me#5928 from Viggo95/feat/codex-response-model-observability (cd5af08)
- feat(executor): extend response model recording and substitution warnings to all providers (e9463ff)
- fix(executor): record authentic Devin and Gemini Interactions response models (f8467f0)
- fix(executor): robust response model observability across meta, kimi, and openai-compat streams (cde7d57)
- fix(executor): record expected Devin upstream model and bound stream observer memory (e84e248)
- fix(codex): preserve reasoning content and IDs for compat models in responses (81d6ba7)
- fix(openai): classify stream request timeout as server error (cb62a67)
- fix(translator): scope tool responses per turn to handle repeated tool call IDs (c2ea268)
- fix(executor): restrict claude advisor tool check to server tool use (f86a33f)
- test(config): verify claude cloak persistence and update behavior (f485217)
- feat(executor): support use-max-completion-tokens for openai compatibility models (690f4f3)
- fix(executor): restore hybrid passthrough mcp tool names in claude oauth (22392c5)
- fix(executor): buffer post-tool text to order devin tool calls before assistant response (b6d1f05)
- fix(schema): normalize true boolean subschemas and strip unsupported keywords (c93978c)
- fix(translator): deduct cache_write_tokens from input_tokens in openai/codex to claude (router-for-me#5956) (883660f)
- Merge pull request router-for-me#5962 from router-for-me/fix/issue-5956-cache-write-deduction (12773e7)
- fix(translator): align tool choice mapping and enforce fail-closed handling (49eec66)
- feat(translator): support strict tool mode mapping for gemini and claude (f247e2b)
- fix(translator): preserve constraints and additionalProperties in gemini parametersJsonSchema (b532db9)
- fix workbuddy daily check-in scheduling (228686e)
- add qodercn quota endpoints, checkin scripts, and reverse-engineering docs (00104d7)
- fix(management): reconcile expired cooldowns to active status in auth files (b4ff581)
- feat(management): support priority field in claude key patch (93b94d2)
- feat(executor): support duplex streaming for codex websockets (42c9680)
- fix(pluginhost): preserve http status codes in host callback and execution errors (1c87874)
- feat(translator): support multimodal audio, video, and file inputs in responses to gemini (61fdfc3)
- feat(translator): support builtin tools in gemini and antigravity interactions (cdfb79e)
- Merge branch 'main' into feature/dev (b721e62)
- chore: ignore codemap artifacts and format Go files (ae774ab)
- fix(claude): accept newer patch releases as native clients (router-for-me#5820) (83a4913)
- docs(claude): clarify patch version floor rationale for native passthrough (c52ca7b)
- fix(auth): avoid unnecessary scheduler rebuilds by checking sync needs from auth map (e56547f)
- feat(steering): add documentation for Codex response steering and duplex transport (ddc3f73)
- fix(translator): preserve reasoning content across tool turns in responses conversion (40cc648)
- feat(auth): propagate context compaction and node kind session metadata (28100e5)
- Merge pull request router-for-me#5982 from ysntony/add-kimi-ai-code-link (29bdd85)
- feat: add full support for kimi.ai oauth and runtime execution (a5ab695)
- Merge branch 'main' into feature/dev (9979612)
- script(check-in): qoder (0ef43f0)
- feat: add management anti-bot protection (9216501)
- feat(qoder-cn): improve quota handling and Python check-in tooling (0cafdb0)
Full Changelog: v2026.9.17.17-snapshot...v2026.9.21.12-snapshot
v2026.9.21.8-snapshot
Linux release assets
CLIProxyAPI_<version>_linux_<arch>.tar.gzis the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline.CLIProxyAPI_<version>_linux_<arch>_no-plugin.tar.gzis the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins.
FreeBSD release assets
CLIProxyAPI_<version>_freebsd_aarch64_no-plugin.tar.gzis the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins.
Changelog
- feat(meta): add native Meta (Muse Code) provider and OAuth device flow (54d4f4c)
- fix(cli): make config optional in commandMode so login works without existing config.yaml (fbf7464)
- feat(meta): mint LLM API key from device access token via /muse-code/key (30191c3)
- feat(meta): add Meta OAuth management endpoint and WebUI / TUI support (23c16e2)
- fix(management): disable caching for management.html to prevent stale SPA views (78c14b8)
- fix(tui): rename Meta provider label from Meta (Muse) to Meta (18385de)
- feat(meta): add Meta API key management handlers, routes, logo, and tests (e475807)
- fix(meta): address review feedback on credential lifecycle, models, and config loading (cee799f)
- fix(codex): recognize codex_exec user agent for multi-agent v2 optimization (923a8c3)
- fix(meta): exclude cleared expired timestamp on persist, add runtime alias resolution, and fix test race (47cc31a)
- chore(meta): keep provider PR scoped to Meta support (21aa46b)
- fix(meta): recover and persist minted credentials correctly (be7323f)
- fix(meta): implement request preparer, disable unconditional refresh, scope 429 quota, and stabilize auth index (d09042a)
- fix(meta): require OAuth storage for DCA tokens and reject them in config meta-api-key (1144ae7)
- fix(meta): validate catalog section, singleflight management mints, and synchronize singleflight test (06660dd)
- fix(meta): unify credential minting and preserve auth lifecycle (4a0131c)
- chore(models): remove gpt-5.4 and gpt-5.4-mini models (31ec436)
- fix(aistudio): normalize thinking level to uppercase (9dfddd6)
- fix(watcher): preserve concurrent file updates during auth snapshot rescans (084f25c)
- fix(claude): avoid mid-conversation system splicing for advisor calls or results (7c2f6ce)
- fix(codex): scope usage limit errors to credentials and parse flexible quota resets (5ab0bca)
- feat(usage): propagate session and parent session hierarchy to usage reporting queue (580df36)
- chore(codex): update codex user-agent to 0.153.3 (c76dfd4)
- perf(auth): optimize scheduler result updates with targeted model shards (fa01468)
- feat(pluginhost): expose outbound HTTP wire profile to plugin requests (00c63a5)
- feat(antigravity): add conversation compaction support and capsule encryption (70f4560)
- fix(xai): support compaction fallback from payload input or previous response id (0e85eb4)
- fix(gemini): append trailing user turn for requests ending with model content (5dc428f)
- fix(claude): preserve non-result block positions during tool result alignment (8564142)
- fix(antigravity): omit tools when tool_choice is none (a76da71)
- fix(auth): preserve active cooldown deadlines on subsequent failures (1c22598)
- fix(antigravity): enable thinking summary when responses reasoning effort is set (e92f6cf)
- fix(claude): normalize codex agent messages in responses conversion (d2f7122)
- feat: add Aiberm sponser (63fd255)
- fix Aiberm sponser logo (578ac8f)
- feat: add Aiberm sponsorship information to README_JA.md (4cd8ee7)
- feat: add link to Aiberm in sponsorship section of README files (934fb79)
- fix(gemini): hide trailing text thought signatures from responses timeline (510c9c8)
- fix(codex): restore dotted collaboration tool names in multi-agent v2 (82f4f37)
- fix(antigravity): default to short connections and harden connection pool lifecycle (fixes router-for-me#5494) (d539790)
- Merge pull request router-for-me#5596 from sususu98/fix/issue-5494-antigravity-idle-conns (f19d6da)
- fix(codex): simplify complex tool schema unions and detect empty incomplete responses (bf20b99)
- feat(claude): support structured output via system prompt instructions (4f03809)
- fix(wsrelay): preserve queued frames during terminal message delivery (7871a5a)
- fix(codex): preserve service tier and cache write tokens in openai responses (8696585)
- fix(codex): explicitly default function tool strict to false (d01516c)
- fix(codex): recover omitted tool namespaces in openai responses (03a054e)
- fix(codex): sanitize invalid tool name characters for upstream compatibility (bee20b9)
- fix(codex): recognize retryable server errors for bootstrap failover (ba7e558)
- fix(docs): remove Infistar.ai sponsorship details from README files (d198db5)
- fix(claude): default function parameters for tools without input schema (6e1f9ec)
- fix(antigravity): normalize gemini responseJsonSchema to responseSchema (dc21a42)
- fix(claude): align beta assembly and Haiku helper transport with the measured 2.1.258 (280b96a)
- fix(claude): attach helper request IDs according to the upstream base (35a4723)
- feat(kimi): support openai responses api (d4146bd)
- fix(antigravity): include resolved pool settings in transport cache key (68dd99d)
- fix(claude): enforce sequential content blocks for interleaved streaming tool calls (ef99119)
- fix(auth): cap refresh loop timer wait duration (48e5e9e)
- fix(claude): map codex reasoning tokens to thinking tokens (e365ab0)
- feat(session): enhance harness hierarchy recognition and deduplicate selector extraction (3905891)
- feat(usage): normalize reported session hierarchy to canonical UUIDv8 (6b187e7)
- fix(plugin-store): only check releases for installed update sources (1c9d719)
- fix(auth): strip monotonic clock reading from quota cooldown deadlines (1d5f7b2)
- fix(plugin-store): coalesce and throttle cached release checks (54b17ce)
- fix(plugin-store): honor shared GitHub API rate-limit cooldowns (8c0ad8c)
- feat(auth): export helper functions for headless antigravity oauth (20e3f73)
- perf(antigravity): batch functionResponse name repairs (d8f2dce)
- fix(plugin-store): add network scope handling for shared GitHub API cooldowns (3639d92)
- fix(api): skip access logging for health probes (e026cbf)
- fix(session): harden canonical UUIDv8 normalization for empty prefixes and context roots (1119ef1)
- fix(logging): silence only successful health probes (a163c5e)
- Merge pull request router-for-me#5625 from router-for-me/fix/issue-5608-plugin-store-rate-limit (f39702a)
- fix(gemini): normalize responses tool call outputs and resolve alternate call ids (d0bb908)
- Merge pull request router-for-me#5626 from nichaoshou/fix/healthz-access-log (454452d)
- feat(plugin): preserve raw json in management responses on schema version 6 (c6327a8)
- fix(gemini): reorder trailing text before function responses in user turns (4fde97f)
- fix(codex): strip schema dialect keywords from tool parameters (7fac6b1)
- feat(plugin): add host session affinity lookup callback (0796d6d)
- fix(claude): emit trailing usage chunk and aggregate stream usage (a59b176)
- feat(codex): support model-level quota cooling (b064b83)
- fix(translator): strip unsupported unicode property escape patterns from tool schemas (e56abd5)
- fix(schema): inspect patternProperties keys and avoid Unicode escape fast-path bypass (37ce368)
- Merge pull request router-for-me#5677 from sususu98/fix/codex-tool-schema-pattern (db01159)
- feat(management): add endpoint to refresh auth files (60e5b8b)
- feat(auth): propagate canonical session id for custom header expansion (3bf787f)
- fix(auth): classify terminal upstream auth failures as non-retryable errors (aedc9e6)
- feat(codex): add support for gpt-image-2.5 models (d1a024e)
- fix(claude): preserve 1h cache ttl and beta header for subagent requests (6a73f39)
- fix(openai): preserve prewarm input and allow named tool outputs in responses websocket (bd03aab)
- fix(openai): preserve nested error details and sequence numbers in responses stream (2591308)
- fix(codex): treat model capacity errors as bootstrap overload failures (3ae9093)
- fix(auth): enable model cooldown and rotation for model not found errors (dde250f)
- fix(translator): ignore null and empty finish reasons in openai to gemini response (4dce5f3)
- fix(stream): handle split CRLF across chunk boundaries in SSE validation (638ed7e)
- docs(readme): remove RunAPI sponsor (09a29bd)
- fix(openai): process reasoning deltas before content in responses stream (c8ecb4f)
- fix(antigravity): keep active block open on empty text parts in claude stream (fd3e662)
- fix(auth): treat cloudflare 520-526 origin errors as transient upstream failures (9fad505)
- fix(gemini): preserve function call pairing for interrupted calls and replay failures (b8e6ec0)
- fix(auth): bound force refresh all concurrency using worker pool (6dce786)
- fix(translator): ignore fco output item IDs when extracting responses call ID (5a07045)
- Merge dev into feat/meta-provider and preserve both registry tests (c6e076f)
- docs(readme): update links after GitHub username change (cfeeeb3)
- feat(usage): propagate upstream base_url across usage records and plugin auth (c8f723e)
- chore(codex): update codex user-agent to 0.154.0 (8461b4e)
- fix(codex): inherit template metadata for model aliases and restrict provider capabilities (8f23ad0)
- fix(translator): support incomplete status and response.incomplete event in responses translation (4efcac7)
- feat(auth): support execution result policy before quota and cooldown mutations (2912516)
- fix(translator): relay claude tool result images as user messages for openai (4cd1729)
- feat(auth): support organization-hashed claude credentials and legacy migration (fc96a87)
- fix(translator): preserve unknown thinking signatures in clau...
v2026.9.17.17-snapshot
Linux release assets
CLIProxyAPI_<version>_linux_<arch>.tar.gzis the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline.CLIProxyAPI_<version>_linux_<arch>_no-plugin.tar.gzis the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins.
FreeBSD release assets
CLIProxyAPI_<version>_freebsd_aarch64_no-plugin.tar.gzis the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins.
Changelog
- feat(meta): add native Meta (Muse Code) provider and OAuth device flow (54d4f4c)
- fix(cli): make config optional in commandMode so login works without existing config.yaml (fbf7464)
- feat(meta): mint LLM API key from device access token via /muse-code/key (30191c3)
- feat(meta): add Meta OAuth management endpoint and WebUI / TUI support (23c16e2)
- fix(management): disable caching for management.html to prevent stale SPA views (78c14b8)
- fix(tui): rename Meta provider label from Meta (Muse) to Meta (18385de)
- feat(meta): add Meta API key management handlers, routes, logo, and tests (e475807)
- fix(meta): address review feedback on credential lifecycle, models, and config loading (cee799f)
- fix(codex): recognize codex_exec user agent for multi-agent v2 optimization (923a8c3)
- fix(meta): exclude cleared expired timestamp on persist, add runtime alias resolution, and fix test race (47cc31a)
- chore(meta): keep provider PR scoped to Meta support (21aa46b)
- fix(meta): recover and persist minted credentials correctly (be7323f)
- fix(meta): implement request preparer, disable unconditional refresh, scope 429 quota, and stabilize auth index (d09042a)
- fix(meta): require OAuth storage for DCA tokens and reject them in config meta-api-key (1144ae7)
- fix(meta): validate catalog section, singleflight management mints, and synchronize singleflight test (06660dd)
- fix(meta): unify credential minting and preserve auth lifecycle (4a0131c)
- Merge dev into feat/meta-provider and preserve both registry tests (c6e076f)
- docs(readme): update links after GitHub username change (cfeeeb3)
- feat(plugin-quota): add typed summary metrics (acb0eae)
- fix(plugin-quota): accept summary-only probes (5cb41e2)
- fix(plugin-quota): require summary metric values (7b60be3)
- fix(plugin-quota): tolerate malformed summaries (782a5cd)
- fix(plugin-quota): validate summary identifiers (d3cb685)
- fix(plugin-quota): validate summary metadata (617b9fd)
- fix(plugin-quota): preserve mapped summaries (6aea72e)
- fix(plugin-quota): preserve valid mapped summaries (07e85de)
- Merge pull request router-for-me#5803 from anpicasso/feat/plugin-quota-summary (512c453)
- feat(translator): refine tool call argument validation for finish reason logic (772c63c)
- Merge PR router-for-me#5502 feat/meta-provider into cpa/muse (42ca5d3)
- feat(executor): add native Meta (Muse Code) provider integration (65348b9)
- feat(config): add Meta OAuth aliasing and error rules support (8335eac)
- feat(auth): enhance retry logic with enriched error handling and tests (6724a95)
- fix(interactions): strip invalid id from function_result and redundant call_id from function_call (f51d3ae)
- Merge pull request router-for-me#5830 from router-for-me/fix/issue-5828-gemini-interactions-tool-result-id (10d464d)
- feat(translator): enhance finish reason handling and tool call translations (6f908cb)
- feat(translator): enhance cache usage handling and input token computation logic (e54a8e9)
- feat(translator): introduce namespace-aware tool name capping and collision handling (e3e97ad)
- fix(devin): support swe-1-6-slow model variant (dea4ce8)
- feat(antigravity): support web search translation and URL resolution in OpenAI Responses (ef63d2e)
- fix(provider): add CodeArts (Desktop Version) (HuaWei) (41d850a)
- feat(translator): preserve tool names in tool result messages (7def842)
- fix(devin): classify high-demand errors as rate limits (d44901f)
- Merge pull request router-for-me#5867 from avabbbb/fix/devin-swe-1-6-slow (44f8343)
- feat(codearts): credit quota endpoint, benefit-model routing, catalog refresh (4fd3c9b)
- fix(executor): prevent stream failure on client disconnect after claude completion (7c32971)
- Merge pull request router-for-me#5862 from sususu98/feat/antigravity-websearch (8c6d4dc)
- feat(codearts): add daily check-in script and fix the welfare check-in flow (cd94455)
- feat(translator): enhance web search streaming and citation mapping in OpenAI Responses (7fcbdf8)
- Merge pull request router-for-me#5870 from avabbbb/fix/devin-high-demand-rate-limit (4613cfd)
- feat(translator): support alternative reasoning fields in OpenAI Claude translation (77820cb)
- fix(devin): buffer content deltas to handle late thinking signatures (c2bb91d)
- feat(translator): wrap demoted mid-session system messages in system-reminder envelope (b681a1e)
- Merge pull request router-for-me#5725 from ztzpro/main (87561b6)
- Merge pull request router-for-me#5696 from cookerpapa/docs/picloud-related-project (12b496b)
- Merge pull request router-for-me#5509 from trukhinyuri/fix/codex-exec-user-agent (c8ec91f)
- fix(executor): strip relayed tool result images for text-only models (c4982e8)
- test(executor): use metaUserAgent constant in meta executor test (311efcb)
- fix(schema): strip unsupported schema identifier keywords (f668ac4)
- Merge branch 'main' into feature/dev (d1ff277)
- Merge pull request router-for-me#5889 from kinka/docs/add-cc-status-line (1bb8895)
- fix(codearts): confirm is best-effort and takes only userBenefitId (983ec73)
- feat(translator): preserve model metadata in requests (a9e92b8)
- fix(devin): filter automation update tools and sanitize tool descriptions (ad088a8)
- Merge pull request router-for-me#5896 from router-for-me/translator (8c664b2)
- Merge branch 'main' into feature/dev (09c8d1a)
Full Changelog: v2026.9.15.21-snapshot...v2026.9.17.17-snapshot
v2026.9.15.8-snapshot
Linux release assets
CLIProxyAPI_<version>_linux_<arch>.tar.gzis the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline.CLIProxyAPI_<version>_linux_<arch>_no-plugin.tar.gzis the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins.
FreeBSD release assets
CLIProxyAPI_<version>_freebsd_aarch64_no-plugin.tar.gzis the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins.
Changelog
- fix(codex): buffer keepalive and empty item announcements during codex bootstrap (cb73cd9)
- feat(devin): support port-free manual code login in no-browser mode (fe2fdde)
- fix(devin): align OAuth authorization URL parameter order with official CLI binary (09807c5)
- fix(devin): mock AuthService in headless token test and validate prompt before printing URL (c35db12)
- feat(discovery): add LAN gateway discovery (3428110)
- fix(translator): preserve html characters in tool arguments and fix devin sequential tool calls (c1cb0c5)
- docs(readme): remove FastAIToken sponsor (fd3cd15)
- test(devin): route status calls to mock server in headless auth tests (f465ebd)
- fix(claude): repair tool call pairing and handle standalone tool outputs (2bcebaa)
- fix(discovery): harden advertiser lifecycle and browse limits (b900577)
- fix(discovery): honor caller cancellation and reload endpoint (c1b7c91)
- Merge pull request router-for-me#5724 from Viggo95/fix/codex-bootstrap-buffer-noncontent-events (bb20fa2)
- feat(conductor): configurable system prompt override per provider (19a9158)
- fix(discovery): bound browse resource usage (f5c19d2)
- fix(cmd/fetch_antigravity_models): support symlinked auth dir and multi-auth fallback (f341e07)
- feat(models): add gemini-3.5-flash-lite model definition (d48590a)
- feat(codex): add optional time ceiling for stream bootstrap buffering (6e30755)
- test(discovery): report temp cleanup failures (c3a5e8c)
- fix(discovery): close lifecycle and routing gaps (20ec9b8)
- Merge pull request router-for-me#5818 from router-for-me/feat/codex-bootstrap-timeout (6c5fef9)
- fix(discovery): keep JSON scans clean and honor interface filters (7d68705)
- fix(discovery): load default scan config and sanitize hostnames (2dd2fd6)
- fix(discovery): uniquify instance names without a startup browse (9e847e5)
- fix(devin): share manual paste parsing and surface oauth callback errors (5f74acc)
- fix(discovery): tighten scan timeout, flags, and TCP-only types (13af6c0)
- Merge pull request router-for-me#5808 from router-for-me/feat/devin-code-login (c9b3dbe)
- Merge pull request router-for-me#5796 from router-for-me/feat/ai-gateway-discovery (9b52a49)
- fix(pluginhost): keep request and method buffers alive during native call (b8477c7)
- feat(pluginabi): support HTTP status code propagation in plugin error envelopes (6ba4445)
- test(openai): add tests for responses websocket compaction replay and routing (ca92945)
- feat(conductor): system prompt replacements, tool description rewrite, prompt-file (94d9d6f)
- feat(pluginhost): propagate forced provider and auth ID in host model execution (748d576)
- feat(auth): add tests to ensure async operations don’t block unrelated actions (e3cbe43)
- feat(executor): strip unsupported
idfields from Gemini interactions payload (1fac8cc) - feat(auth): add retry logic for pre-HTTP transport failures and related tests (bef1f65)
- feat(translator): handle orphan function outputs as user text in OpenAI and Gemini translators (8c98467)
- feat(executor): promote reasoning content as summary and sanitize inputs (7bbfeaf)
- Merge branch 'main' into feature/dev (5a50553)
Full Changelog: v2026.9.14.11-snapshot...v2026.9.15.8-snapshot
v2026.9.15.21-snapshot
Linux release assets
CLIProxyAPI_<version>_linux_<arch>.tar.gzis the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline.CLIProxyAPI_<version>_linux_<arch>_no-plugin.tar.gzis the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins.
FreeBSD release assets
CLIProxyAPI_<version>_freebsd_aarch64_no-plugin.tar.gzis the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins.
Changelog
- feat(provider): 商汤小浣熊 (170b770)
- feat: add built-in Prometheus metrics and Grafana dashboard (e40d605)
- Merge pull request #1 from centaurus-code/feature/prometheus-metrics (e966e7f)
- feat(provider): 商汤小浣熊 (758b4a9)
- fix(deps): add missing go.sum entry for prometheus/procfs (781509f)
What's Changed
- feat: add built-in Prometheus metrics and Grafana dashboard by @centaurus-code in #1
New Contributors
- @centaurus-code made their first contribution in #1
Full Changelog: v2026.9.15.8-snapshot...v2026.9.15.21-snapshot
v2026.9.14.9-snapshot
Linux release assets
CLIProxyAPI_<version>_linux_<arch>.tar.gzis the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline.CLIProxyAPI_<version>_linux_<arch>_no-plugin.tar.gzis the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins.
FreeBSD release assets
CLIProxyAPI_<version>_freebsd_aarch64_no-plugin.tar.gzis the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins.
Changelog
- chore(models): remove gpt-5.4 and gpt-5.4-mini models (31ec436)
- fix(aistudio): normalize thinking level to uppercase (9dfddd6)
- fix(watcher): preserve concurrent file updates during auth snapshot rescans (084f25c)
- fix(claude): avoid mid-conversation system splicing for advisor calls or results (7c2f6ce)
- fix(codex): scope usage limit errors to credentials and parse flexible quota resets (5ab0bca)
- feat(usage): propagate session and parent session hierarchy to usage reporting queue (580df36)
- chore(codex): update codex user-agent to 0.153.3 (c76dfd4)
- perf(auth): optimize scheduler result updates with targeted model shards (fa01468)
- feat(pluginhost): expose outbound HTTP wire profile to plugin requests (00c63a5)
- feat(antigravity): add conversation compaction support and capsule encryption (70f4560)
- fix(xai): support compaction fallback from payload input or previous response id (0e85eb4)
- fix(gemini): append trailing user turn for requests ending with model content (5dc428f)
- fix(claude): preserve non-result block positions during tool result alignment (8564142)
- fix(antigravity): omit tools when tool_choice is none (a76da71)
- fix(auth): preserve active cooldown deadlines on subsequent failures (1c22598)
- fix(antigravity): enable thinking summary when responses reasoning effort is set (e92f6cf)
- fix(claude): normalize codex agent messages in responses conversion (d2f7122)
- feat: add Aiberm sponser (63fd255)
- fix Aiberm sponser logo (578ac8f)
- feat: add Aiberm sponsorship information to README_JA.md (4cd8ee7)
- feat: add link to Aiberm in sponsorship section of README files (934fb79)
- fix(gemini): hide trailing text thought signatures from responses timeline (510c9c8)
- fix(codex): restore dotted collaboration tool names in multi-agent v2 (82f4f37)
- fix(antigravity): default to short connections and harden connection pool lifecycle (fixes router-for-me#5494) (d539790)
- Merge pull request router-for-me#5596 from sususu98/fix/issue-5494-antigravity-idle-conns (f19d6da)
- fix(codex): simplify complex tool schema unions and detect empty incomplete responses (bf20b99)
- feat(claude): support structured output via system prompt instructions (4f03809)
- fix(wsrelay): preserve queued frames during terminal message delivery (7871a5a)
- fix(codex): preserve service tier and cache write tokens in openai responses (8696585)
- fix(codex): explicitly default function tool strict to false (d01516c)
- fix(codex): recover omitted tool namespaces in openai responses (03a054e)
- fix(codex): sanitize invalid tool name characters for upstream compatibility (bee20b9)
- fix(codex): recognize retryable server errors for bootstrap failover (ba7e558)
- fix(docs): remove Infistar.ai sponsorship details from README files (d198db5)
- fix(claude): default function parameters for tools without input schema (6e1f9ec)
- fix(antigravity): normalize gemini responseJsonSchema to responseSchema (dc21a42)
- fix(claude): align beta assembly and Haiku helper transport with the measured 2.1.258 (280b96a)
- fix(claude): attach helper request IDs according to the upstream base (35a4723)
- feat(kimi): support openai responses api (d4146bd)
- fix(antigravity): include resolved pool settings in transport cache key (68dd99d)
- fix(claude): enforce sequential content blocks for interleaved streaming tool calls (ef99119)
- fix(auth): cap refresh loop timer wait duration (48e5e9e)
- fix(claude): map codex reasoning tokens to thinking tokens (e365ab0)
- feat(session): enhance harness hierarchy recognition and deduplicate selector extraction (3905891)
- feat(usage): normalize reported session hierarchy to canonical UUIDv8 (6b187e7)
- fix(plugin-store): only check releases for installed update sources (1c9d719)
- fix(auth): strip monotonic clock reading from quota cooldown deadlines (1d5f7b2)
- fix(plugin-store): coalesce and throttle cached release checks (54b17ce)
- fix(plugin-store): honor shared GitHub API rate-limit cooldowns (8c0ad8c)
- feat(auth): export helper functions for headless antigravity oauth (20e3f73)
- perf(antigravity): batch functionResponse name repairs (d8f2dce)
- fix(plugin-store): add network scope handling for shared GitHub API cooldowns (3639d92)
- fix(api): skip access logging for health probes (e026cbf)
- fix(session): harden canonical UUIDv8 normalization for empty prefixes and context roots (1119ef1)
- fix(logging): silence only successful health probes (a163c5e)
- Merge pull request router-for-me#5625 from router-for-me/fix/issue-5608-plugin-store-rate-limit (f39702a)
- fix(gemini): normalize responses tool call outputs and resolve alternate call ids (d0bb908)
- Merge pull request router-for-me#5626 from nichaoshou/fix/healthz-access-log (454452d)
- feat(plugin): preserve raw json in management responses on schema version 6 (c6327a8)
- fix(gemini): reorder trailing text before function responses in user turns (4fde97f)
- fix(codex): strip schema dialect keywords from tool parameters (7fac6b1)
- feat(plugin): add host session affinity lookup callback (0796d6d)
- fix(claude): emit trailing usage chunk and aggregate stream usage (a59b176)
- feat(codebuddy-cn): add CodeBuddy CN (Tencent) provider (73e82b1)
- feat(provider): CodebuddyCN (d817587)
- docs(codebuddy-cn): fix example base-url (executor appends /chat/completions) (30239f7)
- feat(codebuddy-cn): add OAuth authentication (b9f780e)
- feat(codebuddy-cn): reproduce official TLS fingerprint (350d532)
- feat(deepseek-web): add browser-session provider (76ab133)
- fix(deepseek-web): distinguish dead userToken from transient refresh failures (827c0a9)
- fix(codebuddy-cn): keep reasoning_effort to enable thinking (9c82608)
- feat(codebuddy-cn): --local-model disable download frontend (fc278de)
- feat(front): open file route (a53528d)
- chore: docker hub (20e6b66)
- chore: build docker images at releases (3c943ee)
- feat: custom model.json (206962b)
- feat: redefine the concept of prefix of model id. the prefix means alias and force-prefix means force-alias, so it shouldn't affect the logic of register and looking up model. (2778ac2)
- feat(provider): add TRAE SOLO CN desktop (TraeWork) provider support (3578900)
- feat: register TRAE SOLO CN static models from client cache (9a0d136)
- feat: add TRAE SOLO CN daily checkin script (7de928d)
- test & feat: check-in scripts of codebuddy-cn and traework-cn (c8fb9ea)
- fix(trae-checkin): classify 9074 as retryable server-side queueing (b949eeb)
- feat(front): download management panel asset as @management.html (11f8bee)
- fix(trae-checkin): emulate runtime device identity and TTNet headers (9b25939)
- fix(trae): make SSE and pi tool calls compatible (ae75e30)
- fix(trae-checkin): handle current-device checkin state and code 9095 (e8d35fc)
- fix(trae-checkin): reuse OAuth credential device identity by default (2a02e6f)
- fix(trae-checkin): use official checked_in semantics and verify rewards (445985e)
- fix(trae-checkin): preflight OAuth server session state (7d6c7e8)
- fix(trae-checkin): require registered AHA DID for new claims (bbf321c)
- feat(trae): reuse configured AHA device identity for OAuth login (f8468b2)
- fix(trae): report current desktop client build to unlock newer models (0db6757)
- feat(codex): support model-level quota cooling (b064b83)
- fix(translator): strip unsupported unicode property escape patterns from tool schemas (e56abd5)
- fix(schema): inspect patternProperties keys and avoid Unicode escape fast-path bypass (37ce368)
- Merge pull request router-for-me#5677 from sususu98/fix/codex-tool-schema-pattern (db01159)
- feat(management): add endpoint to refresh auth files (60e5b8b)
- feat(auth): propagate canonical session id for custom header expansion (3bf787f)
- fix(auth): classify terminal upstream auth failures as non-retryable errors (aedc9e6)
- feat(codex): add support for gpt-image-2.5 models (d1a024e)
- fix(claude): preserve 1h cache ttl and beta header for subagent requests (6a73f39)
- fix(openai): preserve prewarm input and allow named tool outputs in responses websocket (bd03aab)
- fix(openai): preserve nested error details and sequence numbers in responses stream (2591308)
- fix(codex): treat model capacity errors as bootstrap overload failures (3ae9093)
- fix(auth): enable model cooldown and rotation for model not found errors (dde250f)
- Merge branch 'main' into feature/dev (cf0fe2b)
- update models.json (ead4f96)
- fix(translator): ignore null and empty finish reasons in openai to gemini response (4dce5f3)
- fix(stream): handle split CRLF across chunk boundaries in SSE validation (638ed7e)
- docs(readme): remove RunAPI sponsor (09a29bd)
- fix(openai): process reasoning deltas before content in responses stream (c8ecb4f)
- fix(antigravity): keep active block open on empty text parts in claude stream (fd3e662)
- fix(auth): treat cloudflare 520-526 origin errors as transient upstream failures (9fad505)
- fix(gemini): preserve function call pairing for interrupted calls and replay failures (b8e6ec0)
- fix(auth): bound force refresh all concurrency using worker pool (6dce786)
- fix(translator): ignore fco output item IDs when extracting responses call ID (5a07045)
- feat(usage): propagate upstream base_url across usage records and plugin auth (c8f723e)
- chore(codex): update codex user-agent...