Changelog
- 29dba03 Comment out system message check in Qwen executor
- 2df3544 Fix executor compat helpers
- 65e9e89 Fix missing
response.completed.usagefor 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
- c744179 Merge PR router-for-me#479
- b468ca7 Merge branch 'dev' of github.com:router-for-me/CLIProxyAPI into dev
- 3e78a8d Merge branch 'main' into dev
- 5ae3858 Merge branch 'main' into plus
- 088c1d0 Merge branch 'main' into plus
- 6a43d72 Merge branch 'main' into plus
- 7223fee Merge branch 'pr-488'
- a337ecf Merge branch 'router-for-me:main' into feat(vertex)/add-prefix-field
- cd64829 Merge branch 'router-for-me:main' into main
- e7a66ae Merge branch 'router-for-me:main' into main
- 140faef Merge branch 'router-for-me:main' into main
- e9dc576 Merge branch 'router-for-me:main' into main
- 75da02a Merge branch 'router-for-me:main' into main
- 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
- 1587ff5 Merge pull request router-for-me#2389 from router-for-me/claude
- c422d16 Merge pull request router-for-me#2398 from 7RPH/fix/responses-sse-framing
- 6570692 Merge pull request router-for-me#2400 from router-for-me/revert-2374-codex-cache-clean
- 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
- 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
- f2c0f3d Merge pull request router-for-me#476 from hungthai1401/fix/ghc-gpt54mini
- 9720b03 Merge pull request router-for-me#477 from ben-vargas/plus-main
- 516d22c Merge pull request router-for-me#484 from Ve-ria/main
- 98509f6 Merge pull request router-for-me#485 from kunish/fix/copilot-premium-request-inflation
- 3882494 Merge pull request router-for-me#486 from router-for-me/plus
- 4607356 Merge pull request router-for-me#491 from Ve-ria/main
- 9a9ed99 Merge pull request router-for-me#494 from router-for-me/plus
- 6bb9bf3 Merge pull request router-for-me#495 from Ve-ria/main
- f43d25d Merge pull request router-for-me#496 from kunish/fix/copilot-premium-request-inflation
- a279192 Merge pull request router-for-me#498 from router-for-me/plus
- 03a1bac Merge upstream v6.9.9 (PR router-for-me#483)
- f63cf6f Normalize Claude temperature for thinking
- 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
- 13aa5b3 Revert "fix(codex): restore prompt cache continuity for Codex requests"
- 73cda6e Update CodeBuddy DeepSeek model description
- 341b4be Update internal/runtime/executor/codebuddy_executor.go
- e08f68e chore(auth): drop reconcile test file from pr
- f5aa68e chore: add workflow to prevent AGENTS.md modifications in pull requests
- 70efd4e chore: add workflow to retarget main PRs to dev automatically
- f3ab8f4 chore: update antigravity UA version to 1.21.9
- 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
- ada8e29 feat(api): enhance proxy resolution for API key-based auth
- 09e4800 feat(auth): add support for managing custom headers in auth files
- 6d8de0a feat(auth): implement weighted provider rotation for improved scheduling fairness
- 9a5f142 feat(codebuddy): add glm-5v-turbo model and update context lengths
- 4ba1053 feat(docs): add Poixe AI sponsorship details to README files
- 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
- 3774b56 feat(misc): add background updater for Antigravity version caching
- a824e7c feat(models): add GPT-5.3, GPT-5.4, and GPT-5.4-mini with enhanced "thinking" levels
- c1a8adf feat(registry): add GitHub Copilot gemini-3.1-pro-preview model
- bd09c0b feat(registry): add gpt-5.4-mini model to GitHub Copilot registry
- adb580b feat(security): add configuration to toggle Gemini CLI endpoint access
- 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
- 163d683 feat: support socks5h scheme for proxy settings
- 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
- a0bf33e fix(antigravity): preserve fallback and honor config gate
- 25feceb fix(antigravity): reorder model parts to prevent tool_use↔tool_result pairing breakage
- 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
- 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
- 145e0e0 fix(claude): add default max_tokens for models
- 07d6689 fix(claude): add interleaved-thinking beta header, AMP gzip error decoding, normalizeClaudeBudget max_tokens
- 5f58248 fix(claude): clamp max_tokens to model limit in normalizeClaudeBudget
- f033d3a fix(claude): enhance ensureModelMaxTokens to use registered max_completion_tokens and fallback to default
- d11936f fix(codex): add default instructions for /responses/compact
- 105a215 fix(codex): centralize session management with global store and add tests for executor session lifecycle
- 330e12d fix(codex): conditionally set
Session_idheader for Mac OS user agents and clean up redundant logic - 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
- b849bf7 fix(copilot): address code review — SSE reasoning, multi-choice, agent detection
- 578c312 fix(copilot): lower static Claude context limits and expose them to Claude Code
- 59af2c5 fix(copilot): reduce premium request inflation and enable thinking
- 87bf0b7 fix(copilot): use dynamic API limits to prevent prompt token overflow
- 91e7591 fix(executor): add transient 429 resource exhausted handling with retry logic
- c8b7e2b fix(executor): ensure empty stream completions use output_item.done as fallback
- 754b126 fix(executor): remove commented-out code in QwenExecutor
- bea13f9 fix(executor): support non-stream requests for CodeBuddy
- d54f816 fix(executor): update Qwen user agent and enhance header configuration
- e34b2b4 fix(gemini): clean tool schemas and eager_input_streaming
- 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
- 08e078f fix(openai): route copilot Gemini preview models to chat endpoint
- 1b44364 fix(qwen): update CLI simulation to v0.13.2
- 06405f2 fix(security): enforce stricter localhost validation for GeminiCLIAPIHandler
- d390b95 fix(tests): update test cases
- fcc59d6 fix(translator): add unit tests to validate output_item.done fallback logic for Gemini and Claude
- 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
- 66eb122 fix: clear stale thinking signature when no block is open
- 76b53d6 fix: finalize pending thinking block before next summary part
- 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
- d1fd2c4 fix: repair websocket custom tool calls
- 8f0e66b fix: repair websocket custom tool calls
- b6c6379 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
- bb44671 fix: 修复反代检测对抗的 3 个问题
- 4045378 fix: 增强 Claude 反代检测对抗能力
- f611dd6 refactor(auth): dedupe route-aware model support checks
- 4f8acec refactor(logging): centralize websocket handshake recording
- 51a4379 refactor(openai): remove websocket body log truncation limit
- d2c7e4e refactor(runtime): move executor utilities to
helpspackage 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
- 0805989 更新CodeBuddy CN的模型列表