
codex-proxy v2.1.20 与 10-21 的 beta 是同一个提交,说明里七条只有一条属于这一版;另附 AI Studio 工具混用仍回 400、xAI 刷新端点换址与 sub2api 的 overload 修复进度。
src/translation 与包元数据,没有别的。4response.incomplete 报「没说完」,原因写在 response.incomplete_details.reason 里,官方取值是 max_output_tokens 与 content_filter。5message_delta 把截断报成正常的 end_turn。6max_output_tokens 落成 max_tokens,content_filter 落成 refusal,两个都不认识才回落到原来的 tool_use / end_turn。流式与非流式两条路都改了,用量按终局事件记。
src/translation/incomplete-stop-reason.ts 全文:两个上游原因只对应两个 Anthropic 取值,其余一律返回 null,把判断交回给调用方原有的优先级。5
codex-to-anthropic.ts 第 377–397 行:注释本身写着修复前的行为——这个事件掉出 switch、用量丢失、截断被当成正常 end_turn。6max_tokens(以前是 end_turn),Claude Code 会据此继续或重试;用量不再为 0。package.json 在 tag 上还写着 2.1.19。7package.json。8max_tokens 仍然不会转发给 Codex。PR 自述里写明这项是故意不做的,且有既有测试钉住,所以靠调小它控成本在这条路上无效。9google_search、code_execution、url_context)与 functionDeclarations,上游直接回 400。10tool_config.include_server_side_tool_invocations 才能把内置工具与函数调用一起用。/v1/chat/completions 与 /v1/responses 两条都中;只给其中一类就正常;走 Antigravity 的不受影响,它自己的翻译器会把 googleSearch 剥掉。internal/translator/**,仓库的路径守卫只允许这类改动走 issue,01:51 他自己把 PR 关了,把完整报告、补丁与测试转写进 #6892。11toolConfig.includeServerSideToolInvocations,Antigravity 的 Responses 翻译里还把这个字段剥掉——那边复用同一个转换函数,但上游不认这个参数。
internal/translator/gemini/openai/chat-completions/gemini_openai_request.go 第 467–471 行:条件是两种工具同时出现,只出现一类时不加这个字段。13auth.x.ai/oauth/token 已经下线,现在返回的是一个 Cloudflare 的 403 页面。15https://auth.x.ai/oauth2/token。16token_endpoint 原样传下去,而刷新函数只有在这个值为空时才去读发现文档。17
internal/runtime/executor/xai_executor_auth.go 第 28–30 行:先读凭据里的 token_endpoint,再原样交给刷新,中间没有兜底。18token_endpoint 改成新地址,或者删掉、置空,让它下次刷新自己去发现。19codex-tui 改成 codex_cli_rs,旧 TUI 配置同步改身份与 User-Agent,避免自报身份前后矛盾。github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
auth.x.ai
github.com
github.com
github.com
github.com
github.com
github.com
status.claude.com
status.openai.com
status.cloud.google.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.