# CLIProxyAPI changelog > Wrap Antigravity, ChatGPT Codex, Claude Code, Grok Build as an OpenAI/Gemini/Claude/Codex compatible API service, allowing you to enjoy the free Gemini 3.1 Pro, GPT 5.6 Series, Grok 4.5, Claude model through API - Vendor: router-for-me - Category: AI - Official site: https://github.com/router-for-me/CLIProxyAPI - Tracked by: What's New (https://whatsnew.fyi/product/cliproxyapi) - Harvested from: GitHub (router-for-me/CLIProxyAPI) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### v7.2.136 - Date: 2026-08-18 - Version: v7.2.136 - Original notes: https://github.com/router-for-me/CLIProxyAPI/releases/tag/v7.2.136 - Permalink: https://whatsnew.fyi/product/cliproxyapi/releases/v7.2.136 - **fixed** — Keep Fable-only rate limits model scoped for Claude - **fixed** — Drop consumed compaction triggers in WebSocket - **fixed** — Support mixed and structured function_call_output handling in OpenAI to Gemini responses translation - **fixed** — Accept both max_tokens and max_completion_tokens in OpenAI to Claude request conversion - **fixed** — Always send stop as an array when converting stop_sequences in OpenAI requests - **fixed** — Gate Claude CCH signing by upstream origin and validate fingerprint-profile - **added** — Add fingerprint-profile=claude-code-cli for API keys and delegated providers - **added** — Support $-based custom headers from downstream request headers in executor - **added** — Add video_url content part support to OpenAI request conversion in antigravity - **changed** — Deduplicate CLI identity application and tidy helpers for Claude ##### Linux release assets - `CLIProxyAPI__linux_.tar.gz` is the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline. - `CLIProxyAPI__linux__no-plugin.tar.gz` is the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins. ##### FreeBSD release assets - `CLIProxyAPI__freebsd_aarch64_no-plugin.tar.gz` is the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins. ##### Changelog - fix(claude): keep Fable-only rate limits model scoped (a8f9814a) - add bestproxy sponser (78154496) - fix(websocket): drop consumed compaction triggers (45c90e8d) - docs(readme): link Bestproxy free trial (628f535a) - fix(gemini): support mixed and structured `function_call_output` handling in OpenAI→Gemini responses translation (20f84e78) - fix(claude): accept both `max_tokens` and `max_completion_tokens` in OpenAI→Claude request conversion (3230e370) - Merge pull request #5043 from DragonFSKY/fix/consumed-compaction-trigger (d388a4be) - Merge pull request #5050 from router-for-me/sponsor/add-bestproxy (9826bd7d) - fix: update LMU registration links in README files (ee2c4947) - Merge pull request #5033 from DEAN-Cherry/fix/claude-fable-model-scoped-cooldown (f985a5cf) - feat(claude): add fingerprint-profile=claude-code-cli for API keys and delegated providers (#5047) (f1b0431c) - fix(claude): gate CCH signing by upstream origin and validate fingerprint-profile (aec70dfe) - refactor(claude): deduplicate CLI identity application and tidy helpers (f3e836ce) - feat(executor): support `$`-based custom headers from downstream request headers (e424bfad) - fix(claude): always send `stop` as an array when converting `stop_sequences` in OpenAI requests (4ac37ed3) - feat(antigravity): add `video_url` content part support to OpenAI request conversion (497673bf) ##### What's Changed * fix(websocket): drop consumed compaction triggers by @DragonFSKY in https://github.com/router-for-me/CLIProxyAPI/pull/5043 * Sponsor/add bestproxy by @LTbinglingfeng in https://github.com/router-for-me/CLIProxyAPI/pull/5050 * fix(claude): keep Fable-only rate limits model scoped by @DEAN-Cherry in https://github.com/router-for-me/CLIProxyAPI/pull/5033 * feat(claude): add fingerprint-profile=claude-code-cli for API keys and delegated providers by @sususu98 in https://github.com/router-for-me/CLIProxyAPI/pull/5047 ##### New Contributors * @DEAN-Cherry made their first contribution in https://github.com/router-for-me/CLIProxyAPI/pull/5033 **Full Changelog**: https://github.com/router-for-me/CLIProxyAPI/compare/v7.2.135...v7.2.136 ### v7.2.135 - Date: 2026-08-17 - Version: v7.2.135 - Original notes: https://github.com/router-for-me/CLIProxyAPI/releases/tag/v7.2.135 - Permalink: https://whatsnew.fyi/product/cliproxyapi/releases/v7.2.135 - **changed** — Refactor cooling management across configuration and handlers - **changed** — Update GPT-5.6 context limits in registry metadata ##### Linux release assets - `CLIProxyAPI__linux_.tar.gz` is the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline. - `CLIProxyAPI__linux__no-plugin.tar.gz` is the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins. ##### FreeBSD release assets - `CLIProxyAPI__freebsd_aarch64_no-plugin.tar.gz` is the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins. ##### Changelog - Refactor cooling management across configuration and handlers (5bffd151) - chore(models): update GPT-5.6 context limits in registry metadata (745fb38d) - Merge pull request #5026 from router-for-me/cooling (856ddd8d) ##### What's Changed * Refactor cooling management across configuration and handlers by @hkfires in https://github.com/router-for-me/CLIProxyAPI/pull/5026 **Full Changelog**: https://github.com/router-for-me/CLIProxyAPI/compare/v7.2.134...v7.2.135 ### v7.2.134 - Date: 2026-08-16 - Version: v7.2.134 - Original notes: https://github.com/router-for-me/CLIProxyAPI/releases/tag/v7.2.134 - Permalink: https://whatsnew.fyi/product/cliproxyapi/releases/v7.2.134 - **fixed** — Preserve upstream stream errors when no data payload is emitted for Claude, Gemini, and OpenAI - **added** — Map OpenAI service_tier to Claude speed in response requests - **fixed** — Preserve schema semantics in antigravity - **added** — Add request-scoped error action handling in conductor for auth - **fixed** — Share session affinity across model variant suffixes in auth - **fixed** — Stop old selectors when replacing manager selector and harden cache stop concurrency in auth ##### Linux release assets - `CLIProxyAPI__linux_.tar.gz` is the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline. - `CLIProxyAPI__linux__no-plugin.tar.gz` is the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins. ##### FreeBSD release assets - `CLIProxyAPI__freebsd_aarch64_no-plugin.tar.gz` is the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins. ##### Changelog - fix(claude,gemini,openai): preserve upstream stream errors when no data payload is emitted (92f03e68) - feat(claude): map OpenAI `service_tier` to Claude `speed` in responses requests (7eefab98) - test(antigravity): cover schema sanitizer semantics (e23395a9) - fix(antigravity): preserve schema semantics (7d55d0da) - Merge pull request #5008 from shengyy/fix/antigravity-schema-semantics (361fe957) - feat(auth): add request-scoped error action handling in conductor (aa10847e) - fix(auth): share session affinity across model variant suffixes (00c4377a) - docs(readme): remove obsolete ecosystem links for PPAP and Alex (75e2454e) - fix(auth): stop old selectors when replacing manager selector and harden cache stop concurrency (b8fbe70b) ##### What's Changed * fix(antigravity): preserve response and tool schema semantics by @shengyy in https://github.com/router-for-me/CLIProxyAPI/pull/5008 ##### New Contributors * @shengyy made their first contribution in https://github.com/router-for-me/CLIProxyAPI/pull/5008 **Full Changelog**: https://github.com/router-for-me/CLIProxyAPI/compare/v7.2.133...v7.2.134 ### v7.2.133 - Date: 2026-08-15 - Version: v7.2.133 - Original notes: https://github.com/router-for-me/CLIProxyAPI/releases/tag/v7.2.133 - Permalink: https://whatsnew.fyi/product/cliproxyapi/releases/v7.2.133 - **changed** — Skip inactive request interceptors - **changed** — Reduce websocket transcript merge allocations - **fixed** — Preserve duplicate websocket input semantics - **fixed** — Match websocket item metadata case-insensitively - **fixed** — Preserve additionalProperties:false for Antigravity response schemas - **fixed** — Avoid cooldown for request-scoped 401 request-faults - **fixed** — Keep tool_result blocks first when injecting currentDate - **fixed** — Add Anthropic unified rate-limit parsing helpers - **fixed** — Ensure Responses usage includes token detail fields - **added** — Add max_completion_tokens to model definitions and responses - **fixed** — Make session-affinity updates safe for rebound sessions - **fixed** — Merge conditional schema branches during JSON schema cleanup - **fixed** — Propagate environment context and sanitize antigravity generation config in interaction adapters - **fixed** — Deduplicate duplicate tool outputs in OpenAI-to-Claude request conversion - **fixed** — Centralize tool-call ID generation and harden signature sanitization - **changed** — Batch assemble response arrays and merge multi-choice parts - **fixed** — Simplify OpenAI chat response content and choices serialization - **changed** — Batch assemble translation arrays before writing JSON - **changed** — Switch response translators to batched raw-array insertion via SetRawArrayItems - **changed** — Keep raw Claude tool IDs for deduplication in request translation ##### Linux release assets - `CLIProxyAPI__linux_.tar.gz` is the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline. - `CLIProxyAPI__linux__no-plugin.tar.gz` is the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins. ##### FreeBSD release assets - `CLIProxyAPI__freebsd_aarch64_no-plugin.tar.gz` is the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins. ##### Changelog - perf(api): skip inactive request interceptors (970529b6) - perf(openai): reduce websocket transcript merge allocations (f9bd9def) - test(openai): harden websocket transcript allocation coverage (f8bcd1cc) - fix(openai): preserve duplicate websocket input semantics (49b2f891) - fix(openai): match websocket item metadata case-insensitively (baa11ed6) - fix(gemini): preserve `additionalProperties:false` for Antigravity response schemas (61c4fd87) - Merge pull request #4928 from ramapitecusment/codex/websocket-transcript-allocations-v2 (8b02fede) - Merge pull request #4360 from router-for-me/perf/skip-inactive-request-interceptors (810d4ddd) - fix(auth): avoid cooldown for request-scoped 401 request-faults (203f5b1a) - fix(claude): keep tool_result blocks first when injecting currentDate (297139cc) - fix(claude): add Anthropic unified rate-limit parsing helpers (ac82bedf) - fix(openai): ensure Responses usage includes token detail fields (e0b49562) - feat(models): add GPT-5.6 Sol Work Mode model registrations and Codex client config updates (dd214445) - feat(models): add max_completion_tokens to model definitions and responses (046b59ec) - fix(auth): make session-affinity updates safe for rebound sessions (9169ad56) - Merge pull request #4994 from router-for-me/models (48d02181) - fix(gemini): merge conditional schema branches during JSON schema cleanup (f53a2b6e) - fix(openai): propagate environment context and sanitize antigravity generation config in interaction adapters (10afcc8c) - chore(models): remove GPT-5.6 Sol Work Mode registrations from model registry config (c1ff55fc) - fix(claude): deduplicate duplicate tool outputs in OpenAI-to-Claude request conversion (1ecb7df2) - fix(claude,gemini,antigravity): centralize tool-call ID generation and harden signature sanitization (616d1b11) - perf(translator): batch assemble response arrays and merge multi-choice parts (124dab6c) - fix(gemini): simplify OpenAI chat response content and choices serialization (a5818380) - perf(translator): batch assemble translation arrays before writing JSON (0c58c3c8) - perf(translator): switch response translators to batched raw-array insertion via `SetRawArrayItems` (8b3b3049) - pref(claude): keep raw Claude tool IDs for deduplication in request translation (7efe0a7c) ##### What's Changed * perf(openai): reduce websocket transcript merge allocations by @ramapitecusment in https://github.com/router-for-me/CLIProxyAPI/pull/4928 * perf(api): skip inactive request interceptors by @G0d2i11a in https://github.com/router-for-me/CLIProxyAPI/pull/4360 * fix(claude): keep tool_result blocks first when injecting currentDate by @mardausdennis in https://github.com/router-for-me/CLIProxyAPI/pull/4971 * feat(models): add max_completion_tokens to model definitions and responses by @hkfires in https://github.com/router-for-me/CLIProxyAPI/pull/4994 ##### New Contributors * @ramapitecusment made their first contribution in https://github.com/router-for-me/CLIProxyAPI/pull/4928 * @G0d2i11a made their first contribution in https://github.com/router-for-me/CLIProxyAPI/pull/4360 * @mardausdennis made their first contribution in https://github.com/router-for-me/CLIProxyAPI/pull/4971 **Full Changelog**: https://github.com/router-for-me/CLIProxyAPI/compare/v7.2.132...v7.2.133 ### v7.2.132 - Date: 2026-08-14 - Version: v7.2.132 - Original notes: https://github.com/router-for-me/CLIProxyAPI/releases/tag/v7.2.132 - Permalink: https://whatsnew.fyi/product/cliproxyapi/releases/v7.2.132 - **added** — Add Gemini 3.7 Flash High model definition - **fixed** — Recover OAuth tool aliases for repeated prefixes and malformed IDs in Claude - **fixed** — Skip zero-token usage placeholders and always finalize stream reporters in Gemini - **fixed** — Use BIP-39 words for OAuth MCP tool aliases in Claude - **fixed** — Pass through caller MCP tools on alias server collision in Claude - **fixed** — Make Gemini tool call IDs deterministic and robustly match responses in translator - **fixed** — Preserve custom auth-file metadata during token refresh and relogin - **fixed** — Strip nested prompt_cache_breakpoint from Codex Responses payloads in translator - **fixed** — Map refusal and sensitive stop reasons to content_filter in Claude - **fixed** — Cache multi-agent spawn-agent model data and invalidate on updates in Codex - **fixed** — Mark truncated and filtered responses as incomplete and avoid finalizing partial tool calls in OpenAI ##### Linux release assets - `CLIProxyAPI__linux_.tar.gz` is the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline. - `CLIProxyAPI__linux__no-plugin.tar.gz` is the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins. ##### FreeBSD release assets - `CLIProxyAPI__freebsd_aarch64_no-plugin.tar.gz` is the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins. ##### Changelog - fix(docs): update FennoAI sponsorship details and links in README files (a40d0e6e) - fix(docs): update RunAPI registration links in README files (d757063c) - feat(registry): add Gemini 3.7 Flash High model definition (7ea9c670) - fix(claude): recover OAuth tool aliases for repeated prefixes and malformed IDs (f2d272da) - fix(gemini): skip zero-token usage placeholders and always finalize stream reporters (7cf92793) - fix(claude): use BIP-39 words for OAuth MCP tool aliases (f6f03e4d) - fix(claude): pass through caller MCP tools on alias server collision (bdde638c) - fix(translator): make Gemini tool call IDs deterministic and robustly match responses (8d670b98) - fix(auth): preserve custom auth-file metadata during token refresh and relogin (b90d8ee9) - fix(translator): strip nested `prompt_cache_breakpoint` from Codex Responses payloads (6edf9c48) - fix(claude): map refusal and sensitive stop reasons to `content_filter` (fab077a0) - fix(codex): cache multi-agent spawn-agent model data and invalidate on updates (98c98d66) - fix(openai): mark truncated/filtered responses as incomplete and avoid finalizing partial tool calls (78f0c407) ##### What's Changed * fix(claude): use BIP-39 words for OAuth MCP tool aliases and pass through caller tools by @sususu98 in https://github.com/router-for-me/CLIProxyAPI/pull/4965 **Full Changelog**: https://github.com/router-for-me/CLIProxyAPI/compare/v7.2.131...v7.2.132 ### v7.2.131 - Date: 2026-08-13 - Version: v7.2.131 - Original notes: https://github.com/router-for-me/CLIProxyAPI/releases/tag/v7.2.131 - Permalink: https://whatsnew.fyi/product/cliproxyapi/releases/v7.2.131 - **fixed** — Avoid JSON copies in websocket responses tool-call repair path for OpenAI - **fixed** — Drop Gemini hidden thought parts during request conversion in translator - **added** — Add per-credential request-retry override support in config - **added** — Add xAI Grok Imagine Image 2.0 image model support for OpenAI - **added** — Add model modality metadata to registry definitions ##### Linux release assets - `CLIProxyAPI__linux_.tar.gz` is the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline. - `CLIProxyAPI__linux__no-plugin.tar.gz` is the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins. ##### FreeBSD release assets - `CLIProxyAPI__freebsd_aarch64_no-plugin.tar.gz` is the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins. ##### Changelog - fix(openai): avoid JSON copies in websocket responses tool-call repair path (75d2c4a4) - fix(translator): drop Gemini hidden thought parts during request conversion (8b54db36) - feat(config): add per-credential request-retry override support (6f2cea94) - feat(openai): add xAI Grok Imagine Image 2.0 image model support (db35b91e) - feat(registry): add model modality metadata to registry definitions (323b7276) **Full Changelog**: https://github.com/router-for-me/CLIProxyAPI/compare/v7.2.130...v7.2.131 ### v7.2.130 - Date: 2026-08-12 - Version: v7.2.130 - Original notes: https://github.com/router-for-me/CLIProxyAPI/releases/tag/v7.2.130 - Permalink: https://whatsnew.fyi/product/cliproxyapi/releases/v7.2.130 - **fixed** — handle premature SSE stream termination with terminal error emission in OpenAI - **fixed** — preserve multi-agent-v2 namespace handling across incremental websocket turns in Codex - **added** — add request-scoped proxy override for APICall in management - **fixed** — select upstream request format from source format (Claude/OpenAI) in Kimi - **fixed** — refactor websocket responses request merge/repair path in OpenAI - **fixed** — strip unsupported prompt_cache_options from OpenAI Responses requests in Codex - **fixed** — recover OAuth tool names with duplicated server alias prefixes in Claude - **fixed** — clear multi-agent-v2 optimization state on namespace conflicts in Codex - **fixed** — normalize request session header to Session-Id and preload codex headers in Codex ##### Linux release assets - `CLIProxyAPI__linux_.tar.gz` is the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline. - `CLIProxyAPI__linux__no-plugin.tar.gz` is the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins. ##### FreeBSD release assets - `CLIProxyAPI__freebsd_aarch64_no-plugin.tar.gz` is the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins. ##### Changelog - fix(openai): handle premature SSE stream termination with terminal error emission (522b4de5) - fix(codex): preserve multi-agent-v2 namespace handling across incremental websocket turns (b08fe3b4) - feat(management): add request-scoped proxy override for APICall (17a479a8) - fix(kimi): select upstream request format from source format (Claude/OpenAI) (a2337beb) - fix(openai): refactor websocket responses request merge/repair path (c845ce15) - fix(codex): strip unsupported prompt_cache_options from OpenAI Responses requests (2ab25eae) - fix(claude): recover OAuth tool names with duplicated server alias prefixes (5b5f428a) - fix(codex): clear multi-agent-v2 optimization state on namespace conflicts (133047de) - fix(codex): normalize request session header to `Session-Id` and preload codex headers (f43aad76) **Full Changelog**: https://github.com/router-for-me/CLIProxyAPI/compare/v7.2.129...v7.2.130 ### v7.2.129 - Date: 2026-08-12 - Version: v7.2.129 - Original notes: https://github.com/router-for-me/CLIProxyAPI/releases/tag/v7.2.129 - Permalink: https://whatsnew.fyi/product/cliproxyapi/releases/v7.2.129 - **fixed** — Close per-request uTLS HTTP/2 connections with request context - **added** — Add schema-v3 stream chunk contract to omit payload request bodies - **changed** — Index reasoning replay requests - **changed** — Skip replay index rebuilds when no item can observe - **changed** — Batch pre-upstream JSON rewrites - **changed** — Translate each upstream request once - **fixed** — Preserve request plugin hook semantics - **changed** — Reuse native upstream connections - **fixed** — Harden per-credential transport pooling - **fixed** — Restore cloaked prompt-cache ownership and native shape - **fixed** — Recognize and pass through native Haiku helpers - **fixed** — Drop auto context_management without eligible thinking - **fixed** — Validate legacy-model system turns before sending - **fixed** — Make input ID sanitization collision-resistant and deterministic - **fixed** — Treat [reasoning unavailable] as unusable reasoning in message normalization - **fixed** — Fall back to current tool-call state when item IDs don't match - **fixed** — Preserve structured and stringified custom tool outputs during Responses conversion ##### Linux release assets - `CLIProxyAPI__linux_.tar.gz` is the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline. - `CLIProxyAPI__linux__no-plugin.tar.gz` is the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins. ##### FreeBSD release assets - `CLIProxyAPI__freebsd_aarch64_no-plugin.tar.gz` is the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins. ##### Changelog - fix(runtime): close per-request uTLS HTTP/2 connections with request context (5d9b6299) - feat(plugin): add schema-v3 stream chunk contract to omit payload request bodies (ba5ab795) - perf(antigravity): index reasoning replay requests (9eedbc27) - refactor(antigravity): document replay index lifecycle and align empty-contents semantics (0e4c0dab) - refactor(antigravity): route replay merge through the request index (984836ba) - perf(antigravity): skip replay index rebuilds no item can observe (bb7278a1) - test(antigravity): clear credits state in place to fix a cleanup data race (177c7619) - perf(antigravity): batch pre-upstream JSON rewrites (d5f68856) - perf(antigravity): translate each upstream request once (cf8c27fe) - fix(antigravity): preserve request plugin hook semantics (5fa66293) - perf(antigravity): reuse native upstream connections (c33a33e1) - fix(antigravity): harden per-credential transport pooling (516ec3a0) - fix(claude): restore cloaked prompt-cache ownership and native shape (f0034ca6) - fix(claude): recognize and pass through native Haiku helpers (a8bbbea2) - fix(claude): drop auto context_management without eligible thinking (8638f28d) - fix(claude): validate legacy-model system turns before sending (189776aa) - fix(codex): make input ID sanitization collision-resistant and deterministic (db143aeb) - fix(kimi): treat `[reasoning unavailable]` as unusable reasoning in message normalization (a59caebc) - fix(codex): fall back to current tool-call state when item IDs don’t match (e9c44ae2) - fix(openai): preserve structured and stringified custom tool outputs during Responses conversion (934da237) ##### What's Changed * perf(antigravity): index reasoning replay requests to remove O(items × payload) scans by @sususu98 in https://github.com/router-for-me/CLIProxyAPI/pull/4880 * perf(antigravity): batch pre-upstream JSON rewrites by @sususu98 in https://github.com/router-for-me/CLIProxyAPI/pull/4895 * perf(antigravity): reuse native upstream connections by @sususu98 in https://github.com/router-for-me/CLIProxyAPI/pull/4900 * fix(claude): align cloaked cache placement and native Haiku helper passthrough by @sususu98 in https://github.com/router-for-me/CLIProxyAPI/pull/4897 * fix(claude): validate legacy-model system turns before sending by @sususu98 in https://github.com/router-for-me/CLIProxyAPI/pull/4906 **Full Changelog**: https://github.com/router-for-me/CLIProxyAPI/compare/v7.2.128...v7.2.129 ### v7.2.128 - Date: 2026-08-10 - Version: v7.2.128 - Original notes: https://github.com/router-for-me/CLIProxyAPI/releases/tag/v7.2.128 - Permalink: https://whatsnew.fyi/product/cliproxyapi/releases/v7.2.128 - **fixed** — rotate keys after DeepSeek insufficient balance - **fixed** — rotate DeepSeek authentication failures - **fixed** — prioritize rate-limit status over error body - **added** — add realtime hangup forwarding and local client-secret support ##### Linux release assets - `CLIProxyAPI__linux_.tar.gz` is the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline. - `CLIProxyAPI__linux__no-plugin.tar.gz` is the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins. ##### FreeBSD release assets - `CLIProxyAPI__freebsd_aarch64_no-plugin.tar.gz` is the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins. ##### Changelog - fix(auth): rotate keys after DeepSeek insufficient balance (45ffd115) - fix(auth): rotate DeepSeek authentication failures (d0d77182) - fix(auth): prioritize rate-limit status over error body (9c8e4a07) - feat(codex): add realtime hangup forwarding and local client-secret support (bd34ceca) **Full Changelog**: https://github.com/router-for-me/CLIProxyAPI/compare/v7.2.127...v7.2.128 ### v7.2.127 - Date: 2026-08-09 - Version: v7.2.127 - Original notes: https://github.com/router-for-me/CLIProxyAPI/releases/tag/v7.2.127 - Permalink: https://whatsnew.fyi/product/cliproxyapi/releases/v7.2.127 - **fixed** — Recover malformed OAuth MCP aliases when reverse-remapping Claude tool names - **fixed** — Preserve assistant content when converting Responses tool-call turns ##### Linux release assets - `CLIProxyAPI__linux_.tar.gz` is the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline. - `CLIProxyAPI__linux__no-plugin.tar.gz` is the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins. ##### FreeBSD release assets - `CLIProxyAPI__freebsd_aarch64_no-plugin.tar.gz` is the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins. ##### Changelog - fix(claude): recover malformed OAuth MCP aliases when reverse-remapping Claude tool names (93c378b7) - fix(openai): preserve assistant content when converting Responses tool-call turns (ecc9aa72) **Full Changelog**: https://github.com/router-for-me/CLIProxyAPI/compare/v7.2.126...v7.2.127