Skip to content

v7.1.32-patch

Choose a tag to compare

@github-actions github-actions released this 31 May 06:31
· 1497 commits to main since this release

Changelog

  • 81db7fd Add CLIProxyAPI Usage Dashboard to statistics docs
  • faad8e3 Add CPA Usage Keeper to README ecosystem list
  • 7f68fa2 Add Codex Switch tool to README
  • 736018a Add GPT-5.5 Codex model support
  • ff6c2d0 Add PostForceRefreshTokens
  • 0de0ad0 Add reasoning effort to usage events
  • 6b4bc0a Align Codex default identity and docs
  • c19ae1d Align Codex websocket protocol semantics
  • 1583cb4 Cap Gemini max output tokens
  • 29dba03 Comment out system message check in Qwen executor
  • 32a0d69 Fix Antigravity Gemini thought signatures
  • 08b0fe6 Fix Codex websocket retry metadata
  • 5d5f117 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
  • 8262a03 Merge PR router-for-me#2568: fix Claude refresh backoff
  • b468ca7 Merge branch 'dev' of github.com:router-for-me/CLIProxyAPI into dev
  • 3a54fb7 Merge branch 'dev', commit 'refs/pull/3621/head' 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
  • a09a16e Merge branch 'router-for-me:main' into my-fix
  • a44e5eb Merge branch 'v7' into dev
  • 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
  • 82ebe24 Merge pull request router-for-me#2266 from DragonFSKY/fix/ws-compact-tool-output-mismatch
  • 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
  • a1eba11 Merge pull request router-for-me#2416 from kslamph/fix/gemini-cli-projectid
  • 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
  • bdc4240 Merge pull request router-for-me#2896 from edlsh/fix/oauth-tool-rename-per-request-map
  • e05abec Merge pull request router-for-me#2898 from octo-patch/fix/issue-2866-remove-obsolete-1m-beta-header
  • 2460205 Merge pull request router-for-me#2926 from slicenferqin/fix-tool-use-name-loss-and-duplicates
  • 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
  • a1f0ed9 Merge pull request router-for-me#3071 from sususu98/fix/antigravity-credits-log
  • 34027da Merge pull request router-for-me#3088 from sususu98/codex-claude-reasoning-signature
  • f95ab4c Merge pull request router-for-me#3089 from XYenon/feat/session-affinity
  • 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
  • b3b92f3 Merge pull request router-for-me#3125 from sususu98/fix/gemini-cli-usage-metadata-variants
  • 2c1539e Merge pull request router-for-me#3133 from sususu98/optimize/claude-codex-translator
  • 8b286e8 Merge pull request router-for-me#3163 from C4AL/docs/add-codexclipplus-ecosystem
  • 85124f0 Merge pull request router-for-me#3194 from daishuge/codex/add-daishuge-cpa-port-20260502
  • 593995a Merge pull request router-for-me#3197 from VjayC/dev
  • 054d0de Merge pull request router-for-me#3201 from murasame612/docs/add-cliproxy-pool-watch
  • 756b600 Merge pull request router-for-me#3204 from zhanglunet/add-usage-dashboard-link
  • 28b4b19 Merge pull request router-for-me#3208 from kdcokenny/codex-websocket-protocol-parity
  • 09ac8a1 Merge pull request router-for-me#3221 from mochenya/main
  • 785b00c Merge pull request router-for-me#3237 from seakee/docs/add-cpa-manager-usage-statistics
  • a034cf8 Merge pull request router-for-me#3247 from edlsh/fix/amp-thread-actors-route
  • 42e9605 Merge pull request router-for-me#3254 from sususu98/fix/antigravity-project-id-onboard
  • 3cbd587 Merge pull request router-for-me#3283 from wuchulonly/fix/responses-ws-tool-output-context
  • 68fddaa Merge pull request router-for-me#3292 from lihan3238/fix-3272
  • 041ccf0 Merge pull request router-for-me#3303 from lihan3238/fix-3267
  • 8b9ecff Merge pull request router-for-me#3382 from sususu98/dev
  • f4c6c41 Merge pull request router-for-me#3430 from router-for-me/home
  • 4ad6ffe Merge pull request router-for-me#3438 from madwiki/fix/strip-claude-code-attribution
  • 4b13f9c Merge pull request router-for-me#3439 from ben-vargas/fix-grok-tool-params
  • 64d233f Merge pull request router-for-me#3448 from LongDinhh/feat/home-env-vars
  • 2710f56 Merge pull request router-for-me#3450 from sususu98/fix/http-connect-proxy-dialer
  • cc0cb05 Merge pull request router-for-me#3468 from sususu98/fix/claude-codex-call-id-length
  • 6448235 Merge pull request router-for-me#3469 from sususu98/fix/gemini-max-output-token-cap
  • b67eb6f Merge pull request router-for-me#3470 from sususu98/fix/antigravity-gemini-thought-signatures
  • 48a1c88 Merge pull request router-for-me#3476 from sususu98/fix/codex-context-length-stream-errors-dev
  • 21fad9d Merge pull request router-for-me#3477 from router-for-me/cluster
  • b9589e8 Merge pull request router-for-me#3482 from 9ycrooked/patch-1
  • f1ee883 Merge pull request router-for-me#3484 from yavon007/main
  • cecd393 Merge pull request router-for-me#3498 from router-for-me/test
  • b5959c3 Merge pull request router-for-me#3554 from sususu98/fix/gemini-cli-request-schema-cleanup
  • c65275f Merge pull request router-for-me#3591 from sususu98/feat/signature-check-extraction
  • f28258d Merge pull request router-for-me#3595 from Progress-infinitely/fix/anthropic-tool-name-reverse-map
  • 4ade13a Merge pull request router-for-me#3605 from router-for-me/log
  • 96b6f7e Merge pull request router-for-me#3612 from router-for-me/log
  • 034d2b6 Merge pull request router-for-me#3615 from sususu98/codex/signature-intercept-on-pr
  • 55901f0 Merge pull request router-for-me#3620 from iBenzene/fix/responses-input-id-dedupe
  • 162897e Merge remote-tracking branch 'origin/pr/3205' into dev
  • 1fca942 Merge remote-tracking branch 'origin/pr/3239'
  • 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
  • b9e6165 Restore Codex prompt cache key synthesis
  • 5ef7693 Update README.md
  • 7972130 Update README_CN.md
  • d2386a3 Update README_JA.md
  • e08f68e chore(auth): drop reconcile test file from pr
  • 38dad2a chore(docker): upgrade base image to alpine 3.23
  • 359ec30 chore(docs): remove LingtrueAPI sponsorship section from README files
  • ed1458a chore(docs): update sponsor details in README
  • 7b89583 chore(models): remove GPT-5.5 model entry from registry JSON
  • d9c01a6 chore(models): remove deprecated GPT-5.x models from codex-free catalog
  • a4c1e32 chore(models): remove outdated GPT-5 and related model entries from registry JSON
  • f2908b7 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
  • 18bb9c3 chore: remove usage tracking and logging functionality
  • e37f3be chore: update .goreleaser.yml to include custom archive naming with arch override logic
  • f3ab8f4 chore: update antigravity UA version to 1.21.9
  • e50caba chore: upgrade CLIProxyAPI dependency to v7 across the project
  • 38f0ae5 docs(antigravity): document signature validation spec alignment
  • 50d19e2 docs(readme): add APIKEY.FUN sponsorship details to README files
  • 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
  • 088ab33 feat(api): add Codex client models support for OpenAI API
  • feebe6c feat(api): add OpenAI compatibility for image models
  • 437aa87 feat(api): add dynamic handler for Gemini models with home integration
  • e7a1859 feat(api): add request body decoding with Content-Encoding support
  • 1716a84 feat(api): add support for HEAD requests to /healthz endpoint
  • 605adaa feat(api): add support for local management password validation and spoofed IP rejection
  • 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
  • 82c9e0d feat(api, watcher): add zstd decoding for request logs and payload diff support
  • 53d1fd6 feat(api, xai): add xAI Grok video model support with API integration
  • 2ff9e33 feat(api, xai): integrate xAI Grok image models and extend API endpoints for image support
  • e4c9570 feat(auth): add OAuth2 support for xAI with PKCE and token persistence
  • 67fb4eb feat(auth): add shouldReturnLastErrorOnPickFailure helper and improve error handling in home mode
  • 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
  • 229d03a feat(auth): add support for disabling auth via metadata
  • 09e4800 feat(auth): add support for managing custom headers in auth files
  • c69ff49 feat(auth): add support for persisting disabled flag in token storage
  • 167edfe feat(auth): add support for websockets in auth file parsing and patching
  • dc1cc7f feat(auth): add websocket session reuse for home auths with caching support
  • a7e92e2 feat(auth): disallow free-tier Codex auth during selection process
  • 41f4ee7 feat(auth): enhance auth index generation with improved file path handling
  • 8300ee8 feat(auth): enhance home auth session reuse with scoped caching and ref counting
  • a583463 feat(auth): implement auto-refresh loop for managing auth token schedule
  • 6bfcb0c feat(auth): improve unauthorized error handling for refresh and auto-refresh
  • efa200e feat(cli): add fetch_codex_models command for dynamic Codex model fetching
  • bcbb949 feat(client): add cluster node failover and improve reconnection handling
  • bb5ac40 feat(client): add timeout handling for Redis operations and subscription failover
  • 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
  • 5e5b1bc feat(config): add detailed logging for home config changes
  • 0f0fcd2 feat(config): add per-auth disable_cooling override support
  • 3857305 feat(config): add support for disabling OpenAI compatibility providers
  • 7efc162 feat(docker): add cluster-specific docker-compose configuration for CLIProxyAPI
  • 4ba1053 feat(docs): add Poixe AI sponsorship details to README files
  • 8f4a4ea feat(docs): add VisionCoder sponsorship details and optimize external links
  • 94c1b25 feat(executor): add TTFT tracking and reporting for enhanced performance metrics
  • 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
  • fb08b92 feat(executor): add upstream disconnect handling for Codex WebSocket sessions
  • 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
  • c66fa37 feat(home): add cluster nodes payload parsing and Redis channel handling
  • 644d5ea feat(home): add support for disabling cluster discovery in Redis configuration
  • 66c3dae feat(home): implement count for home auth dispatch requests and enable usage statistics
  • 48104ab feat(home): implement home control plane integration with Redis and TLS support
  • e399edd feat(images): add support for configurable GPT Image 2 base model and improved SSE handling
  • 25137b1 feat(logging): add AI API path support for image routes
  • c4ee063 feat(logging): add HomeAppLogForwarder for application log forwarding
  • 412d344 feat(logging): add RequestID support in home request logging
  • 11f0f90 feat(logging): add SetTranslatedReasoningEffort to track reasoning levels in usage reporting
  • a0bb1f3 feat(logging): add file-backed sources for request logging
  • 1abf862 feat(logging): add home request-log forwarding support
  • d2c5f27 feat(logging): add request_id handling in HomeAppLogForwarder and tests
  • 2bcc762 feat(logging): improve file-backed source cleanup and directory recreation logic
  • 61b39d4 feat(management): add usage record retrieval endpoint
  • 1721994 feat(management): expose additional OAuth and configuration helpers
  • 3774b56 feat(misc): add background updater for Antigravity version caching
  • 5dcca69 feat(models): add Claude Opus 4.7 model entry to registry JSON
  • df0176a feat(models): add Claude Opus 4.8 model to registry
  • 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
  • 2ea8f77 feat(models): add GPT-5.5 to the registry with support for advanced tasks
  • ea25949 feat(models): add Gemini 3.5 Flash models to registry
  • 0ec07e5 feat(models): add Gemini 3.5 Flash to registry with enhanced thinking capabilities
  • aaec919 feat(models): add Grok Build 0.1 to registry
  • 4fc2c61 feat(models): add Kimi K2.6 model entry to registry JSON
  • e935196 feat(models): add hardcoded GPT-Image-2 model support in Codex
  • de03949 feat(models): expand supported reasoning levels for Codex
  • fdffe49 feat(models): register Gemini 3.5 Flash with dynamic thinking levels
  • a726e37 feat(redis): enhance Redis protocol handling with subscription and queue operations
  • 1d529c3 feat(redis): implement Pub/Sub support for usage tracking
  • 9d01c80 feat(redis): implement Pub/Sub support for usage tracking
  • 2007a89 feat(runtime): enhance payload rule resolution with dynamic path support
  • 26d13af feat(runtime): enhance payload rule resolution with dynamic path support
  • ad98c95 feat(runtime): track upstream response headers in logging and usage reporting
  • 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
  • ed0ac68 feat(server): add HOME_ADDR and HOME_PASSWORD env var fallback for home flags
  • 77ba15f feat(server): add mTLS certificate bootstrap via JWT for Home connections
  • c67096b feat(server): add support for loading configuration from a remote home control plane
  • bbe30f5 feat(server): enhance Home certificate handling with CA fingerprint verification
  • 7c24d54 feat(session-affinity): add session-sticky routing for multi-account load balancing
  • 86cb9c1 feat(signature): upgrade provider signature checks
  • bac006e feat(thinking): add xAI provider support with reasoning.effort implementation
  • 86c856f feat(translator): add partial and full image generation support in Codex-GPT and Codex-Gemini flows
  • 4b68103 feat(translator): add reasoning signature handling and tests for Claude-OpenAI conversions
  • 85c0150 feat(translator): add token usage tracking and improve usage handling
  • 8435c3d feat(tui): show time in usage details
  • 71c185f feat(usage): add service tier tracking and defaults in usage reporting
  • bd8c05a feat(usage): add support for detailed token breakdown in usage tracking
  • ba5d8ca feat(usage): add support for requested model alias handling
  • 65e760a feat(usage): include cache tokens in total token calculation and add tests
  • fdeef48 feat(vertex): Add Prefix field to VertexCredentialStorage for per-file model namespacing
  • 14cb2b9 feat(vertex): add --vertex-import-prefix flag for model namespacing
  • de280d9 feat(websockets): refine incremental repair logic for tool call responses
  • ddd1053 feat(xai): normalize xAI input reasoning items and enhance test cases
  • 74cb53d feat(xai): support namespace tools and enhance tool normalization logic
  • 8b3670b feat(xai): support namespace tools and enhance tool normalization logic
  • 7ee37ee feat: add /healthz endpoint and test coverage for health check
  • b0dc9df feat: add API key usage endpoint with provider and key grouping
  • 56df368 feat: add configurable retention period for Redis usage queue
  • 05ecfb6 feat: add local Docker build script and update compose configuration
  • 3724933 feat: add opt-in experimental Claude cch signing
  • 6187919 feat: add support for recent request tracking in auth records
  • b8bba05 feat: add tracking for auth request success and failure counts
  • f56a19e feat: add tri-state support for disable-image-generation configuration
  • 243c582 feat: add unit tests for OpenAI responses request conversion
  • 2753d9f feat: add validation for Claude streaming responses
  • 6ba7c81 feat: apply image_generation filtering before payload rules
  • 8d5e470 feat: dynamically fetch antigravity UA version from releases API
  • 8c2f1a8 feat: enhance API key usage grouping with base URL inclusion
  • af65908 feat: enhance tool mapping with namespace and web search support
  • 672fdd1 feat: filter and drop empty assistant messages in Kimi executor
  • aee7a5f feat: intercept incompatible signature replay
  • 4601841 feat: remove tool_choice for image_generation when disabled
  • 3ac39dc feat: support Codex/PI session headers for session affinity
  • e3e60f9 feat: support disabling image generation globally
  • 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
  • ad86830 fix codex context length stream errors
  • c883114 fix responses websocket tool output context
  • b15453c fix(amp): address PR review - stream thinking suppression, SSE detection, test init
  • 279cbbb fix(amp): don't suppress thinking blocks in streaming mode
  • 95318ad fix(amp): preserve lowercase glob tool name
  • 0117174 fix(amp): proxy thread actors route
  • 01a7cc4 fix(amp): restore response tool casing from request
  • 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
  • 809feb1 fix(antigravity): mask project_id in logs
  • 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
  • c5596e0 fix(api): clear sniff deadline before entering Redis handler
  • 28dfcae fix(api): prevent idle TCP connections from blocking the accept loop
  • 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
  • 430e679 fix(auth): strip "generate" from payload during WebSocket HTTP fallback
  • f09ed25 fix(auth): tighten registry model reconciliation
  • 3c62a9a fix(auth): update import paths to v7 for registry and executor
  • 5e81b65 fix(auth, executor): normalize Qwen base URL, adjust RefreshLead duration, and add tests
  • e5502a7 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
  • fc1ddf3 fix(claude): centralize oauth tool-name transform flow
  • 5f58248 fix(claude): clamp max_tokens to model limit in normalizeClaudeBudget
  • f780c28 fix(claude): map question/skill to TitleCase instead of removing them
  • e707cf7 fix(claude): only reverse-remap OAuth tool names that were forward-renamed
  • 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
  • 6431cec fix(claude-auth): dedupe OAuth refresh and honor 429 backoff
  • 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
  • 89d80bf fix(executor): adjust ApplyThinking order and add payload override test
  • f4eb161 fix(executor): drop obsolete context-1m-2025-08-07 beta header (fixes router-for-me#2866)
  • e4a93c0 fix(executor): enhance parsing of OpenAI stream data lines
  • 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
  • 99dfbae fix(executor): ignore null OpenAI stream usage chunks
  • 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
  • 29e32aa fix(executor): route Claude refresh through retry-aware auth
  • bf6fa40 fix(executor): strip Vertex OpenAI response tool call IDs for consistency
  • d54f816 fix(executor): update Qwen user agent and enhance header configuration
  • e34b2b4 fix(gemini): clean tool schemas and eager_input_streaming
  • fccfb16 fix(gemini-cli): use backend project ID from onboarding response
  • 30a8824 fix(gitstore): adjust garbage collection to run after push operation
  • 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
  • 3a9fb37 fix(home): implement home dispatch headers and enhance Gemini model handling
  • 7a1a340 fix(home): use net.JoinHostPort for consistent host:port formatting
  • 7d9980e fix(logging): log errors during file-backed source cleanup
  • 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
  • e9dafc7 fix(openai): dedupe response websocket input item IDs
  • c1d7599 fix(openai): handle transcript replacement after websocket compaction
  • caa529c fix(openai): improve client IP retrieval in websocket handler
  • 80eb037 fix(openai): preserve multiline repaired SSE data
  • d36e70e fix(openai): preserve unindexed response output items
  • fd45dec fix(openai): repair empty responses stream output
  • 1c2153a fix(openai-claude): stabilize streaming tool_use blocks
  • ec79951 fix(proxy): support HTTP CONNECT dialer
  • 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
  • 2cbb8c7 fix(translator): correct JSON path for item summary in response event
  • c1caa45 fix(translator): handle empty tool function names in OpenAI Claude responses
  • a1487b0 fix(translator): handle non-string types in tools result processing
  • 33f4904 fix(translator): handle system role as developer in Claude request conversion
  • 17be644 fix(translator): improve tool response handling for non-string content
  • 1c632d1 fix(translator): skip empty text parts in Claude request conversion
  • 776a9c0 fix(translator/gemini): support developer role in OpenAI Responses requests
  • 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
  • 8e6ef3f fix(websocket): ensure state consistency on auth errors in streaming
  • 4ca00f7 fix(websocket): gate compact replay by downstream support
  • d2d0e6f fix(websocket): narrow compact replay detection
  • a0fe273 fix(websocket): skip stale state merge after client-side compact
  • 2607888 fix(xai): default missing function tool parameters
  • 249f969 fix: Claude API 请求使用 utls Chrome TLS 指纹
  • c03883c fix: address responses SSE review feedback
  • 1c0c426 fix: align claude codex translation
  • 4071fde fix: apply default auth-dir when config value is empty
  • 9e0ab4d fix: build cache_control JSON manually to avoid sjson map marshaling
  • 8783caf fix: buildTextBlock cache_control sjson path issue
  • 70a8cf0 fix: clean gemini cli request schemas
  • 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
  • 4a85b6b fix: log gemini cli schema cleanup errors
  • 73b22ec fix: omit empty signature field from thinking blocks
  • 4982512 fix: parse gemini cli usage metadata variants
  • ecf1c25 fix: preserve Antigravity cancellation errors
  • 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
  • bf0e5c2 fix: prevent goroutine leaks in streaming executors via context-aware channel sends
  • 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
  • 33130f1 fix: require antigravity project id
  • 0d107dd fix: respect declared claude web search tool names
  • 5fc2bd3 fix: retain codex thinking signature until item done
  • c31ae2f fix: retain previously captured thinking signature on new summary part
  • bfdc0b3 fix: scope antigravity credits fallback gate
  • 25d1c18 fix: scope experimental cch signing to billing header
  • 8bc2eff fix: shorten claude codex tool call ids
  • f73d55d fix: simplify responses SSE suffix handling
  • d606faa fix: strip Claude Code attribution from non-Anthropic translations
  • 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 反代检测对抗能力
  • 17a1f53 fix:openai 2 kimi error Continuous function_call 连续的function_call 转换 tool_calls
  • be841b8 log(registry): replace panic with warning on embedded model parse failure
  • 6fc2356 logging: mark antigravity credits requests
  • 7ad1900 perf(antigravity): async credits hint refresh for warm tokens
  • 03ea4e5 perf(claude): pre-allocate reverseMap capacity
  • b6781d6 perf(codex): avoid repeated output patch writes
  • 96754f5 refactor(api): move Codex client model handling to registry package
  • 66c5d60 refactor(api): remove newTestServerWithOptions and spoofed IP rejection test
  • f611dd6 refactor(auth): dedupe route-aware model support checks
  • 6c0a1ef refactor(auth): simplify auth directory scanning and improve JSON processing logic
  • 15ac7fb refactor(auth): simplify home auth session management and remove ref counting
  • 0dcb8bd refactor(cliproxy): remove ClaudeCodeSessionAffinity support and simplify session affinity logic
  • 828df80 refactor(executor): remove immediate retry with token refresh on 429 for Qwen and update tests accordingly
  • 91387ca refactor(gemini-cli): simplify redundant if/else in project ID assignment
  • 4f8acec refactor(logging): centralize websocket handshake recording
  • 4035abc refactor(logging): replace gin-specific context handling with generic context-based request metadata utilities
  • 920b6ef refactor(logging): strip unrelated deferred body changes, keep credits-only logging
  • da6c599 refactor(management): rename GetUsage to GetUsageQueue and update routes/tests
  • 51a4379 refactor(openai): remove websocket body log truncation limit
  • d2c7e4e refactor(runtime): move executor utilities to helps package and update references
  • 9ef99aa refactor(runtime): rename FormProtocol to FromProtocol across payload handling logic
  • ca11b23 refactor(runtime, openai): simplify header management and remove redundant websocket logging logic
  • cd0cea3 refactor(server): consolidate home_flag logic into main.go for better maintainability and simplicity
  • 4cbe172 refactor: extract DefaultAuthDir constant per review feedback
  • b3d6d5d refactor: extract signature validation
  • 5f03965 refactor: move home env vars after godotenv and use lookupEnv helper
  • 67f2251 style(docs): improve sponsor section clarity in README files
  • ff7dbb5 test(amp): update tests to expect thinking blocks to pass through during streaming
  • f5e9f01 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
  • fc0615b test(oauth): ensure missing auth directories are created and callback payloads are validated
  • ad3f4f2 📝 docs(readme): add CPA-Manager usage statistics recommendation