Luis Pater
7170eeea5f
Merge pull request #2454 from buddingnewinsights/add-proxypal-to-readme
...
docs: add ProxyPal to "Who is with us?" section
2026-04-02 21:18:22 +08:00
Luis Pater
e3eb048c7a
Merge pull request #2489 from Soein/upstream-pr
...
fix: 增强 Claude 反代检测对抗能力
2026-04-02 21:16:58 +08:00
Luis Pater
a59e92435b
Merge pull request #2490 from router-for-me/logs
...
Refactor websocket logging and error handling
2026-04-02 20:47:31 +08:00
pzy
bb44671845
fix: 修复反代检测对抗的 3 个问题
...
- computeFingerprint 使用 rune 索引替代字节索引,修复多字节字符指纹不匹配
- utls Chrome TLS 指纹仅对 Anthropic 官方域名生效,自定义 base_url 走标准 transport
- IPv6 地址使用 net.JoinHostPort 正确拼接端口
2026-04-02 19:12:55 +08:00
Luis Pater
09e480036a
feat(auth): add support for managing custom headers in auth files
...
Closes #2457
2026-04-02 19:11:09 +08:00
pzy
249f969110
fix: Claude API 请求使用 utls Chrome TLS 指纹
...
Claude executor 的 API 请求之前使用 Go 标准库 crypto/tls,JA3 指纹
与真实 Claude Code(Bun/BoringSSL)不匹配,可被 Cloudflare 识别。
- 新增 helps/utls_client.go,封装 utls Chrome 指纹 + HTTP/2 + 代理支持
- Claude executor 的 4 处 NewProxyAwareHTTPClient 替换为 NewUtlsHTTPClient
- 其他 executor(Gemini/Codex/iFlow 等)不受影响,仍用标准 TLS
- 非 HTTPS 请求自动回退到标准 transport
2026-04-02 19:09:56 +08:00
hkfires
4f8acec2d8
refactor(logging): centralize websocket handshake recording
2026-04-02 18:39:32 +08:00
hkfires
34339f61ee
Refactor websocket logging and error handling
...
- Introduced new logging functions for websocket requests, handshakes, errors, and responses in `logging_helpers.go`.
- Updated `CodexWebsocketsExecutor` to utilize the new logging functions for improved clarity and consistency in websocket operations.
- Modified the handling of websocket upgrade rejections to log relevant metadata.
- Changed the request body key to a timeline body key in `openai_responses_websocket.go` to better reflect its purpose.
- Enhanced tests to verify the correct logging of websocket events and responses, including disconnect events and error handling scenarios.
2026-04-02 17:30:51 +08:00
pzy
4045378cb4
fix: 增强 Claude 反代检测对抗能力
...
基于 Claude Code v2.1.88 源码分析,修复多个可被 Anthropic 检测的差距:
- 实现消息指纹算法(SHA256 盐值 + 字符索引),替代随机 buildHash
- billing header cc_version 从设备 profile 动态取版本号,不再硬编码
- billing header cc_entrypoint 从客户端 UA 解析,支持 cli/vscode/local-agent
- billing header 新增 cc_workload 支持(通过 X-CPA-Claude-Workload 头传入)
- 新增 X-Claude-Code-Session-Id 头(每 apiKey 缓存 UUID,TTL=1h)
- 新增 x-client-request-id 头(仅 api.anthropic.com,每请求 UUID)
- 补全 4 个缺失的 beta flags(structured-outputs/fast-mode/redact-thinking/token-efficient-tools)
- OAuth scope 对齐 Claude Code 2.1.88(移除 org:create_api_key,添加 sessions/mcp/file_upload)
- Anthropic-Dangerous-Direct-Browser-Access 仅在 API key 模式发送
- 响应头网关指纹清洗(剥离 litellm/helicone/portkey/cloudflare/kong/braintrust 前缀头)
2026-04-02 15:55:22 +08:00
Luis Pater
4f99bc54f1
test: update codex header expectations
2026-04-02 11:19:37 +08:00
Luis Pater
913f4a9c5f
test: fix executor tests after helpers refactor
2026-04-02 11:12:30 +08:00
Luis Pater
25d1c18a3f
fix: scope experimental cch signing to billing header
2026-04-02 11:03:11 +08:00
Luis Pater
d09dd4d0b2
Merge commit '15c2f274ea690c9a7c9db22f9f454af869db5375' into dev
2026-04-02 10:59:54 +08:00
Luis Pater
474fb042da
Merge pull request #2476 from router-for-me/cherry-pick/pr-2438-to-dev
...
Cherry-pick PR #2438 onto dev
2026-04-02 10:36:50 +08:00
Michael
8435c3d7be
feat(tui): show time in usage details
2026-04-02 10:35:13 +08:00
Luis Pater
e783d0a62e
Merge pull request #2441 from MonsterQiu/issue-2421-alias-before-suspension
...
fix(auth): resolve oauth aliases before suspension checks
2026-04-02 10:27:39 +08:00
Luis Pater
b05f575e9b
Merge pull request #2444 from 0oAstro/fix/codex-nonstream-finish-reason-tool-calls
...
fix(codex): set finish_reason to "tool_calls" in non-streaming response when tool calls are present
2026-04-02 10:01:25 +08:00
edlsh
15c2f274ea
fix: preserve cloak config defaults when mode omitted
2026-04-01 13:20:11 -04:00
edlsh
37249339ac
feat: add opt-in experimental Claude cch signing
2026-04-01 13:03:17 -04:00
Luis Pater
c422d16beb
Merge pull request #2398 from 7RPH/fix/responses-sse-framing
...
fix: preserve SSE event boundaries for Responses streams
2026-04-02 00:46:51 +08:00
Luis Pater
66cd50f603
Merge pull request #2468 from router-for-me/ip
...
fix(openai): improve client IP retrieval in websocket handler
2026-04-02 00:03:35 +08:00
hkfires
caa529c282
fix(openai): improve client IP retrieval in websocket handler
2026-04-01 20:16:01 +08:00
hkfires
51a4379bf4
refactor(openai): remove websocket body log truncation limit
2026-04-01 18:11:43 +08:00
Luis Pater
acf98ed10e
fix(openai): add session reference counter and cache lifecycle management for websocket tools
2026-04-01 17:28:50 +08:00
Luis Pater
d1c07a091e
fix(openai): add websocket tool call repair with caching and tests to improve transcript consistency
2026-04-01 17:16:49 +08:00
Luis Pater
105a21548f
fix(codex): centralize session management with global store and add tests for executor session lifecycle
2026-04-01 13:17:10 +08:00
Luis Pater
1734aa1664
fix(codex): prioritize websocket-enabled credentials across priority tiers in scheduler logic
2026-04-01 12:51:12 +08:00
Luis Pater
ca11b236a7
refactor(runtime, openai): simplify header management and remove redundant websocket logging logic
2026-04-01 11:57:31 +08:00
huynhgiabuu
6fdff8227d
docs: add ProxyPal to 'Who is with us?' section
...
Add ProxyPal (https://github.com/buddingnewinsights/proxypal ) to the
community projects list in all three README files (EN, CN, JA).
Placed after CCS, restoring its original position.
ProxyPal is a cross-platform desktop app (macOS, Windows, Linux) that
wraps CLIProxyAPI with a native GUI, supporting multiple AI providers,
usage analytics, request monitoring, and auto-configuration for popular
coding tools.
Closes #2420
2026-04-01 10:23:22 +07:00
Luis Pater
330e12d3c2
fix(codex): conditionally set Session_id header for Mac OS user agents and clean up redundant logic
2026-04-01 11:11:45 +08:00
Luis Pater
b468ca79c3
Merge branch 'dev' of github.com:router-for-me/CLIProxyAPI into dev
2026-04-01 03:09:03 +08:00
Luis Pater
d2c7e4e96a
refactor(runtime): move executor utilities to helps package and update references
2026-04-01 03:08:20 +08:00
Luis Pater
1c7003ff68
Merge pull request #2452 from Lucaszmv/fix-qwen-cli-v0.13.2
...
fix(qwen): update CLI simulation to v0.13.2 and adjust header casing
2026-04-01 02:44:27 +08:00
Lucaszmv
1b44364e78
fix(qwen): update CLI simulation to v0.13.2
2026-03-31 15:19:07 -03:00
0oAstro
ec77f4a4f5
fix(codex): set finish_reason to tool_calls in non-streaming response when tool calls are present
2026-03-31 14:12:15 +05:30
MonsterQiu
f611dd6e96
refactor(auth): dedupe route-aware model support checks
2026-03-31 15:42:25 +08:00
MonsterQiu
07b7c1a1e0
fix(auth): resolve oauth aliases before suspension checks
2026-03-31 14:27:14 +08:00
Luis Pater
51fd58d74f
fix(codex): use normalizeCodexInstructions to set default instructions
2026-03-31 12:16:57 +08:00
Luis Pater
faae9c2f7c
Merge pull request #2422 from MonsterQiu/fix/codex-compact-instructions
...
fix(codex): add default instructions for /responses/compact
2026-03-31 12:14:20 +08:00
Luis Pater
bc3a6e4646
Merge pull request #2434 from MonsterQiu/fix/codex-responses-null-instructions
...
fix(codex): normalize null instructions for /responses requests
2026-03-31 12:01:21 +08:00
Luis Pater
b09b03e35e
Merge pull request #2424 from possible055/fix/websocket-transcript-replacement
...
fix(openai): handle transcript replacement after websocket v2 compaction
2026-03-31 11:00:33 +08:00
Luis Pater
16231947e7
Merge pull request #2426 from xixiwenxuanhe/feature/antigravity-credits
...
feat(antigravity): add AI credits quota fallback
2026-03-31 10:51:40 +08:00
MonsterQiu
39b9a38fbc
fix(codex): normalize null instructions across responses paths
2026-03-31 10:32:39 +08:00
MonsterQiu
bd855abec9
fix(codex): normalize null instructions for responses requests
2026-03-31 10:29:02 +08:00
Luis Pater
7c3c2e9f64
Merge pull request #2417 from CharTyr/fix/amp-streaming-thinking-regression
...
fix(amp): 修复流式响应中 thinking block 被错误抑制导致的 TUI 空白回复
2026-03-31 10:12:13 +08:00
Luis Pater
c10f8ae2e2
Fixed : #2420
...
docs(readme): remove ProxyPal section from all README translations
2026-03-31 07:23:02 +08:00
xixiwenxuanhe
a0bf33eca6
fix(antigravity): preserve fallback and honor config gate
2026-03-31 00:14:05 +08:00
xixiwenxuanhe
88dd9c715d
feat(antigravity): add AI credits quota fallback
2026-03-30 23:58:12 +08:00
apparition
a3e21df814
fix(openai): avoid developer transcript resets
...
- Narrow websocket transcript replacement detection to assistant outputs and function calls
- Preserve existing merge behavior for follow-up developer messages without previous_response_id
- Add a regression test covering mid-session developer message updates
2026-03-30 23:33:16 +08:00
MonsterQiu
d3b94c9241
fix(codex): normalize null instructions for compact requests
2026-03-30 22:58:05 +08:00