v7.2.133
Added 1
- Add max_completion_tokens to model definitions and responses
Changed 6
- Skip inactive request interceptors
- Reduce websocket transcript merge allocations
- Batch assemble response arrays and merge multi-choice parts
- Batch assemble translation arrays before writing JSON
- Switch response translators to batched raw-array insertion via SetRawArrayItems
- Keep raw Claude tool IDs for deduplication in request translation
Fixed 13
- Preserve duplicate websocket input semantics
- Match websocket item metadata case-insensitively
- Preserve additionalProperties:false for Antigravity response schemas
- Avoid cooldown for request-scoped 401 request-faults
- Keep tool_result blocks first when injecting currentDate
- Add Anthropic unified rate-limit parsing helpers
- Ensure Responses usage includes token detail fields
- Make session-affinity updates safe for rebound sessions
- Merge conditional schema branches during JSON schema cleanup
- Propagate environment context and sanitize antigravity generation config in interaction adapters
- Deduplicate duplicate tool outputs in OpenAI-to-Claude request conversion
- Centralize tool-call ID generation and harden signature sanitization
- Simplify OpenAI chat response content and choices serialization
From CLIProxyAPI
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(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:falsefor 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