Skip to content

v6.9.41-patch

Choose a tag to compare

@github-actions github-actions released this 29 Apr 05:37
· 1726 commits to main since this release

Changelog

  • faad8e3 Add CPA Usage Keeper to README ecosystem list
  • 736018a Add GPT-5.5 Codex model support
  • 5fb7e5b Add PostForceRefreshTokens
  • 29dba03 Comment out system message check in Qwen executor
  • af210b7 Fix EOF retry logic for network errors (#15)
  • 65e9e89 Fix missing response.completed.usage for late-usage OpenAI-compatible streams
  • c10f8ae Fixed: router-for-me#2420
  • 108895f Harden Responses SSE framing against partial chunk boundaries
  • da3a498 Keep Claude Code compatibility work low-risk and reviewable
  • 9b5ce8c Keep Claude builtin helpers aligned with the shared helper layout
  • ab9ebea Merge PR router-for-me#2474
  • b468ca7 Merge branch 'dev' of github.com:router-for-me/CLIProxyAPI into dev
  • 3e78a8d Merge branch 'main' into dev
  • a337ecf Merge branch 'router-for-me:main' into feat(vertex)/add-prefix-field
  • d09dd4d Merge commit '15c2f274ea690c9a7c9db22f9f454af869db5375' into dev
  • 0e4f189 Merge pull request router-for-me#1302 from dinhkarate/feat(vertex)/add-prefix-field
  • c1818f1 Merge pull request router-for-me#1940 from Blue-B/fix/claude-interleaved-thinking-amp-gzip-budget
  • ea43361 Merge pull request router-for-me#2121 from destinoantagonista-wq/main
  • 000fcb1 Merge pull request router-for-me#2298 from snoyiatk/feat/add-gitstore-branch
  • b851208 Merge pull request router-for-me#2332 from RaviTharuma/fix/claude-thinking-signature
  • c422d16 Merge pull request router-for-me#2398 from 7RPH/fix/responses-sse-framing
  • d267522 Merge pull request router-for-me#2403 from CharTyr/clean-pr
  • 486cd4c Merge pull request router-for-me#2409 from sususu98/fix/tool-use-pairing-break
  • 39dc455 Merge pull request router-for-me#2412 from sususu98/feat/signature-cache-toggle
  • 7c3c2e9 Merge pull request router-for-me#2417 from CharTyr/fix/amp-streaming-thinking-regression
  • faae9c2 Merge pull request router-for-me#2422 from MonsterQiu/fix/codex-compact-instructions
  • b09b03e Merge pull request router-for-me#2424 from possible055/fix/websocket-transcript-replacement
  • 1623194 Merge pull request router-for-me#2426 from xixiwenxuanhe/feature/antigravity-credits
  • bc3a6e4 Merge pull request router-for-me#2434 from MonsterQiu/fix/codex-responses-null-instructions
  • e783d0a Merge pull request router-for-me#2441 from MonsterQiu/issue-2421-alias-before-suspension
  • b05f575 Merge pull request router-for-me#2444 from 0oAstro/fix/codex-nonstream-finish-reason-tool-calls
  • 1c7003f Merge pull request router-for-me#2452 from Lucaszmv/fix-qwen-cli-v0.13.2
  • 7170eee Merge pull request router-for-me#2454 from buddingnewinsights/add-proxypal-to-readme
  • 66cd50f Merge pull request router-for-me#2468 from router-for-me/ip
  • 474fb04 Merge pull request router-for-me#2476 from router-for-me/cherry-pick/pr-2438-to-dev
  • e3eb048 Merge pull request router-for-me#2489 from Soein/upstream-pr
  • a59e924 Merge pull request router-for-me#2490 from router-for-me/logs
  • c3f8dc3 Merge pull request router-for-me#2491 from mpfo0106/feature/claude-code-safe-alignment-sentinels
  • fcba912 Merge pull request router-for-me#2492 from davidwushi1145/main
  • 42c062b Merge pull request router-for-me#2509 from adamhelfgott/fix-claude-thinking-temperature
  • f389667 Merge pull request router-for-me#2513 from lonr-6/codex/fix-ws-custom-tool-repair-v2
  • ae37ccf Merge pull request router-for-me#2520 from Arronlong/main
  • 9eabdd0 Merge pull request router-for-me#2522 from aikins01/fix/strip-tool-use-signature
  • 8430b28 Merge pull request router-for-me#2526 from rensumo/main
  • 9f5bdfa Merge pull request router-for-me#2531 from jamestut/openai-vertex-token-usage-fix
  • 2ee938a Merge pull request router-for-me#2535 from rensumo/main
  • d1f6224 Merge pull request router-for-me#2569 from LucasInsight/fix/record-zero-usage
  • 6a27bce Merge pull request router-for-me#2576 from zilianpn/fix/disable-cooling-auth-errors
  • cad45ff Merge pull request router-for-me#2578 from LemonZuo/feat_socks5h
  • 12b9671 Merge pull request router-for-me#2592 from router-for-me/tests
  • b2c0cdf Merge pull request router-for-me#2621 from wykk-12138/fix/oauth-extra-usage-detection
  • 2a97037 Merge pull request router-for-me#2670 from sususu98/feat/antigravity-prefer-prod-url
  • 9ded75d Merge pull request router-for-me#2702 from AllenReder/docs/add-quota-inspector
  • 26fd3ef Merge pull request router-for-me#2715 from sususu98/pr/antigravity-32mb-bypass-signatures
  • 1dc3018 Merge pull request router-for-me#2716 from sususu98/pr/antigravity-bypass-log-noise
  • 61e0447 Merge pull request router-for-me#2723 from sususu98/fix/drop-redacted-thinking-blocks
  • c4459c4 Merge pull request router-for-me#2724 from sususu98/fix/skip-schema-cleanup-empty-tools
  • 3dea1da Merge pull request router-for-me#2782 from sususu98/fix/strip-invalid-signature-thinking-blocks
  • f56cf42 Merge pull request router-for-me#2800 from sususu98/fix/antigravity-max-output-tokens-cap
  • d1508ca Merge pull request router-for-me#2816 from sususu98/feat/session-affinity
  • ba454db Merge pull request router-for-me#2817 from sususu98/fix/antigravity-strip-billing-header
  • 8ced7a5 Merge pull request router-for-me#2834 from muzhi1991/fix/openai-compat-host-header
  • c6baa64 Merge pull request router-for-me#2892 from router-for-me/fix-provider
  • e05abec Merge pull request router-for-me#2898 from octo-patch/fix/issue-2866-remove-obsolete-1m-beta-header
  • 3444820 Merge pull request router-for-me#2939 from stringer07/fix/codex-stream-output-backfill
  • 8eb56e5 Merge pull request router-for-me#2962 from MoYeRanqianzhi/feat/codex-image-generation-tool-injection
  • 12195a2 Merge pull request router-for-me#2971 from sususu98/feat/antigravity-credits-fallback
  • a325533 Merge pull request router-for-me#2972 from XYenon/feat/amp-thread-id
  • 1576d14 Merge pull request router-for-me#2989 from ben-vargas/gpt-5-5-support
  • 36cc762 Merge pull request router-for-me#3007 from sususu98/fix-antigravity-credits-stream-fallback
  • c5bea6f Merge pull request router-for-me#3020 from Matthias319/fix/codex-error-classification
  • be0fe6f Merge pull request router-for-me#3022 from Willxup/main
  • 736ae61 Merge pull request router-for-me#3051 from philipbankier/fix/gpt55-free-tier-test
  • 34027da Merge pull request router-for-me#3088 from sususu98/codex-claude-reasoning-signature
  • b34f3be Merge pull request router-for-me#3114 from Xbang0222/fix/antigravity-credits-ua
  • c4965be Merge pull request router-for-me#3117 from sususu98/fix/restore-antigravity-ua-handling
  • 96056d0 Merge remote-tracking branch 'upstream/main' into fix/oauth-extra-usage-detection
  • f63cf6f Normalize Claude temperature for thinking
  • c523101 Preserve Codex reasoning signatures for Claude
  • abc293c Prevent malformed Responses SSE frames from breaking stream clients
  • e166e56 Reconcile registry model states on auth changes
  • 34339f6 Refactor websocket logging and error handling
  • 095e143 Restore Codex prompt cache key synthesis
  • e08f68e chore(auth): drop reconcile test file from pr
  • 7b89583 chore(models): remove GPT-5.5 model entry from registry JSON
  • a4c1e32 chore(models): remove outdated GPT-5 and related model entries from registry JSON
  • 7afef97 chore: add fork upstream sync workflow and DockerHub settings
  • f5aa68e chore: add workflow to prevent AGENTS.md modifications in pull requests
  • 70efd4e chore: add workflow to retarget main PRs to dev automatically
  • 8fac296 chore: remove Qwen support from SDK and internal components
  • f5dc648 chore: remove iFlow-related modules and dependencies
  • f3ab8f4 chore: update antigravity UA version to 1.21.9
  • 38f0ae5 docs(antigravity): document signature validation spec alignment
  • 6f58518 docs(readme): remove redundant GITSTORE_GIT_BRANCH description in README files
  • 04ba8c8 feat(amp): sanitize signatures and handle stream suppression for Amp compatibility
  • 88dd9c7 feat(antigravity): add AI credits quota fallback
  • 14d46a0 feat(antigravity): conductor-level credits fallback for Claude models
  • cf24958 feat(antigravity): configurable signature cache with bypass-mode validation
  • d801393 feat(antigravity): prefer prod URL as first priority
  • 1716a84 feat(api): add support for HEAD requests to /healthz endpoint
  • 0a7c6b0 feat(api): enhance model assignment logic in image handlers
  • ada8e29 feat(api): enhance proxy resolution for API key-based auth
  • 28d7827 feat(api): implement protocol multiplexer and Redis queue for usage integration
  • 894baad feat(api): integrate auth index into key retrieval endpoints for Gemini, Claude, Codex, OpenAI, and Vertex
  • 5bfaf80 feat(auth): add configurable worker pool size for auto-refresh loop
  • d949921 feat(auth): add proxy URL override support to auth constructors and executors
  • e6866ff feat(auth): add refresh backoff for ineffective token updates
  • 09e4800 feat(auth): add support for managing custom headers in auth files
  • a7e92e2 feat(auth): disallow free-tier Codex auth during selection process
  • a583463 feat(auth): implement auto-refresh loop for managing auth token schedule
  • 31934ae feat(codex): enable image generation for all Codex upstream requests
  • 01e16a8 feat(codex): handle thinking-signature conversion for reasoning content
  • f1ba615 feat(codex): pass base model to enable conditional image_generation tool injection
  • 3857305 feat(config): add support for disabling OpenAI compatibility providers
  • 4ba1053 feat(docs): add Poixe AI sponsorship details to README files
  • 8f4a4ea feat(docs): add VisionCoder sponsorship details and optimize external links
  • c7b28ba feat(executor): add support for Codex image generation tool usage tracking
  • 22a1a24 feat(executor): add tests for preserving key order in cache control functions
  • c2d4137 feat(executor): enhance Qwen system message handling with strict injection and merging rules
  • d2419ed feat(executor): ensure default system message in QwenExecutor payload
  • 058793c feat(gitstore): honor configured branch and follow live remote default
  • 25137b1 feat(logging): add AI API path support for image routes
  • 3774b56 feat(misc): add background updater for Antigravity version caching
  • 5dcca69 feat(models): add Claude Opus 4.7 model entry to registry JSON
  • ea670ef feat(models): add Codex Auto Review model entry to registry JSON
  • a824e7c feat(models): add GPT-5.3, GPT-5.4, and GPT-5.4-mini with enhanced "thinking" levels
  • 7d5f6d9 feat(models): add GPT-5.5 model entry to registry JSON
  • 4fc2c61 feat(models): add Kimi K2.6 model entry to registry JSON
  • e935196 feat(models): add hardcoded GPT-Image-2 model support in Codex
  • adb580b feat(security): add configuration to toggle Gemini CLI endpoint access
  • 2c626ef feat(security): implement IP ban for repeated management key and Redis AUTH failures
  • 7c24d54 feat(session-affinity): add session-sticky routing for multi-account load balancing
  • 86c856f feat(translator): add partial and full image generation support in Codex-GPT and Codex-Gemini flows
  • 8435c3d feat(tui): show time in usage details
  • fdeef48 feat(vertex): Add Prefix field to VertexCredentialStorage for per-file model namespacing
  • 14cb2b9 feat(vertex): add --vertex-import-prefix flag for model namespacing
  • 7ee37ee feat: add /healthz endpoint and test coverage for health check
  • 3724933 feat: add opt-in experimental Claude cch signing
  • 8d5e470 feat: dynamically fetch antigravity UA version from releases API
  • 4d6457e feat: support extracting X-Amp-Thread-Id header as session id for session affinity
  • 163d683 feat: support socks5h scheme for proxy settings
  • 0e12351 fix antigravity client agent headers
  • 5f5d593 fix antigravity credits stream fallback
  • e78d45a fix antigravity user agent handling
  • b15453c fix(amp): address PR review - stream thinking suppression, SSE detection, test init
  • 279cbbb fix(amp): don't suppress thinking blocks in streaming mode
  • b0653ce fix(amp): strip signature from tool_use blocks before forwarding to Claude
  • 727221d fix(antigravity): allow 32MB bypass signatures
  • 8fecd62 fix(antigravity): cap maxOutputTokens using registry max_completion_tokens
  • 41ae2c8 fix(antigravity): discard thinking blocks with non-Claude-format signatures
  • 65158cc fix(antigravity): drop redacted thinking blocks with empty text
  • a0bf33e fix(antigravity): preserve fallback and honor config gate
  • 8ed290c fix(antigravity): reduce bypass mode log noise
  • 30e94b6 fix(antigravity): refine 429 handling and credits fallback
  • 4de5c29 fix(antigravity): remove credits fallback from CountTokens, fix gofmt
  • 25feceb fix(antigravity): reorder model parts to prevent tool_use↔tool_result pairing breakage
  • e75daa2 fix(antigravity): respect pinned auth in credits fallback, release deferred body on success
  • f5ed5c7 fix(antigravity): skip full schema cleanup for empty tool requests
  • d4a6a5a fix(antigravity): strip billing header from system instruction before upstream call
  • 278a898 fix(antigravity): strip thinking blocks with empty signatures instead of rejecting
  • 10b55b5 fix(antigravity): use E-prefixed fake signature in strict bypass test
  • a992dee fix(antigravity): use real antigravity UA when polling credits balance
  • ad8e396 fix(auth): add retry logic for 429 status with Retry-After and improve testing
  • f130846 fix(auth): break credits cold-start deadlock by keeping unknown-hint auths as fallback candidates
  • 941334d fix(auth): handle OAuth model alias in retry logic and refine Qwen quota handling
  • 0ea7680 fix(auth): honor disable-cooling and enrich no-auth errors
  • 730809d fix(auth): preserve and restore ready view cursors during index rebuilds
  • 07b7c1a fix(auth): resolve oauth aliases before suspension checks
  • 17363ed fix(auth): skip downtime for request-scoped 404 errors in model state management
  • f09ed25 fix(auth): tighten registry model reconciliation
  • 5e81b65 fix(auth, executor): normalize Qwen base URL, adjust RefreshLead duration, and add tests
  • d0e4b1d fix(ci): keep fork releases on patch tags
  • 07d6689 fix(claude): add interleaved-thinking beta header, AMP gzip error decoding, normalizeClaudeBudget max_tokens
  • 0f45d89 fix(claude): address PR review feedback for OAuth cloaking
  • 5f58248 fix(claude): clamp max_tokens to model limit in normalizeClaudeBudget
  • f780c28 fix(claude): map question/skill to TitleCase instead of removing them
  • ac36119 fix(claude): preserve OAuth tool renames when filtering tools
  • 7e8e222 fix(claude): reduce forwarded OAuth prompt to minimal tool reminder
  • e8d1b79 fix(claude): remap OAuth tool names to Claude Code style to avoid third-party fingerprint detection
  • f0c20e8 fix(claude): remove invalid cache_control scope from static system block
  • 7cdf8e9 fix(claude): sanitize forwarded third-party prompts for OAuth cloaking
  • d11936f fix(codex): add default instructions for /responses/compact
  • bb8408c fix(codex): backfill streaming response output
  • 105a215 fix(codex): centralize session management with global store and add tests for executor session lifecycle
  • 4056c25 fix(codex): classify known upstream failures
  • 330e12d fix(codex): conditionally set Session_id header for Mac OS user agents and clean up redundant logic
  • d85e13b fix(codex): include content field in reasoning item initialization
  • 39b9a38 fix(codex): normalize null instructions across responses paths
  • d3b94c9 fix(codex): normalize null instructions for compact requests
  • bd855ab fix(codex): normalize null instructions for responses requests
  • 1734aa1 fix(codex): prioritize websocket-enabled credentials across priority tiers in scheduler logic
  • ec77f4a fix(codex): set finish_reason to tool_calls in non-streaming response when tool calls are present
  • 51fd58d fix(codex): use normalizeCodexInstructions to set default instructions
  • 1267fdd fix(docker-build): improve argument handling and error messaging for usage option
  • 91e7591 fix(executor): add transient 429 resource exhausted handling with retry logic
  • f4eb161 fix(executor): drop obsolete context-1m-2025-08-07 beta header (fixes router-for-me#2866)
  • c8b7e2b fix(executor): ensure empty stream completions use output_item.done as fallback
  • 69b950d fix(executor): fix OAuth extra usage detection by Anthropic API
  • 0ab1f54 fix(executor): handle 429 Retry-After header and default retry logic for quota exhaustion
  • 5ab9afa fix(executor): handle OAuth tool name remapping with rename detection and add tests
  • 65ce863 fix(executor): implement immediate retry with token refresh on 429 for Qwen and add associated tests
  • 613fe67 fix(executor): inject full Claude Code system prompt blocks with proper cache scopes
  • 754b126 fix(executor): remove commented-out code in QwenExecutor
  • d54f816 fix(executor): update Qwen user agent and enhance header configuration
  • e34b2b4 fix(gemini): clean tool schemas and eager_input_streaming
  • 1dba2d0 fix(handlers): add base URL validation and improve API key deletion tests
  • 7b03f04 fix(handlers): include execution session metadata and skip idempotency key when absent
  • fd71960 fix(handlers): remove handling of unsupported n parameter in OpenAI image handlers
  • a188159 fix(handlers): remove references to unsupported n parameter in OpenAI image handlers
  • f32c8c9 fix(handlers): update listener to bind on all interfaces instead of localhost
  • c26936e fix(management): stabilize auth-index mapping
  • acf98ed fix(openai): add session reference counter and cache lifecycle management for websocket tools
  • d1c07a0 fix(openai): add websocket tool call repair with caching and tests to improve transcript consistency
  • a3e21df fix(openai): avoid developer transcript resets
  • c1d7599 fix(openai): handle transcript replacement after websocket compaction
  • caa529c fix(openai): improve client IP retrieval in websocket handler
  • 1b44364 fix(qwen): update CLI simulation to v0.13.2
  • 06405f2 fix(security): enforce stricter localhost validation for GeminiCLIAPIHandler
  • 32ef158 fix(test): remove free tier from GPT-5.5 inclusion test
  • a64141a fix(tests): remove obsolete config_auth_index_test file
  • da43f63 fix(tests): update Gemini family test case numbers for consistency
  • d9a3b3e fix(tests): update model lookup references and enhance Claude executor tests
  • d390b95 fix(tests): update test cases
  • fcc59d6 fix(translator): add unit tests to validate output_item.done fallback logic for Gemini and Claude
  • 04a336f fix(usage_helpers): skip zero-token usage in additional model records
  • eba561b fix(util): also keep Host in header map for synthetic requests
  • 8f9e662 fix(util): forward custom Host header to upstream
  • 36efcc6 fix(vertex): include prefix in auth filename and validate at import
  • 249f969 fix: Claude API 请求使用 utls Chrome TLS 指纹
  • c03883c fix: address responses SSE review feedback
  • 9e0ab4d fix: build cache_control JSON manually to avoid sjson map marshaling
  • 8783caf fix: buildTextBlock cache_control sjson path issue
  • 66eb122 fix: clear stale thinking signature when no block is open
  • 76b53d6 fix: finalize pending thinking block before next summary part
  • 8e49c79 fix: forward HTTP headers to executor Options so session affinity can read X-Amp-Thread-Id
  • 73b22ec fix: omit empty signature field from thinking blocks
  • a34dfed fix: preserve Claude thinking signatures in Codex translator
  • 134a9ea fix: preserve SSE event boundaries for Responses streams
  • 15c2f27 fix: preserve cloak config defaults when mode omitted
  • 8b9dbe1 fix: record zero usage
  • e2e3c7d fix: remove invalid org scope and match Claude Code block layout
  • d1fd2c4 fix: repair websocket custom tool calls
  • b6c6379 fix: repair websocket custom tool calls
  • 8f0e66b fix: repair websocket custom tool calls
  • 5fc2bd3 fix: retain codex thinking signature until item done
  • c31ae2f fix: retain previously captured thinking signature on new summary part
  • 25d1c18 fix: scope experimental cch signing to billing header
  • f73d55d fix: simplify responses SSE suffix handling
  • 0fcc02f fix: tighten responses SSE review follow-up
  • f6f4640 fix: use sjson to build system blocks, avoid raw newlines in JSON
  • bb44671 fix: 修复反代检测对抗的 3 个问题
  • 4045378 fix: 增强 Claude 反代检测对抗能力
  • 7ad1900 perf(antigravity): async credits hint refresh for warm tokens
  • b6781d6 perf(codex): avoid repeated output patch writes
  • f611dd6 refactor(auth): dedupe route-aware model support checks
  • 6c0a1ef refactor(auth): simplify auth directory scanning and improve JSON processing logic
  • 828df80 refactor(executor): remove immediate retry with token refresh on 429 for Qwen and update tests accordingly
  • 4f8acec refactor(logging): centralize websocket handshake recording
  • 920b6ef refactor(logging): strip unrelated deferred body changes, keep credits-only logging
  • 51a4379 refactor(openai): remove websocket body log truncation limit
  • d2c7e4e refactor(runtime): move executor utilities to helps package and update references
  • ca11b23 refactor(runtime, openai): simplify header management and remove redundant websocket logging logic
  • f5e9f01 test(amp): update tests to expect thinking blocks to pass through during streaming
  • ff7dbb5 test(amp): update tests to expect thinking blocks to pass through during streaming
  • 9fb6a49 test(api): add validation for unsupported models in OpenAI image handlers