
Codex→Claude 翻译层把 commentary 前导当成正文,同一段话被念两遍,v8.0.39 与 dev 都没修;另附 sub2api 漏记网页搜索与 advisor 轮次、codex2api 同步后丢 context_window 两张未合并的修复单。
phase 为 commentary 的前导,一个 phase 为 final_answer 的正式答案。response.output_item.added 时,switch 只有 function_call、reasoning、web_search_call 三个分支,没有 message。2
internal/translator/codex/claude/codex_claude_response.go 第 180–205 行:output_item.added 的 switch 到 web_search_call 就结束,第 206 行直接进了 output_item.done,中间没有读 phase 的地方。4"phase" 只有 3 处,全在插件与 homeplugins,跟翻译无关。encrypted_content 不挂到 commentary 上;没有 phase 的 message 原样走;流式与非流式都改。改动是 2 文件 +262/−20,含 5 个测试。output_item.done 里整段到达时,HasTextDelta 会留着上一项的 true,正式答案被跳过;commentary 那时已经成了 thinking,这一轮就没有任何可见文本。8HasTextDelta,也是 v8.0.39 本来就有的第二处缺陷:output_item.done 的 message 分支第一句就是 if params.HasTextDelta { return }。9phase,到今晚仍未关闭。10HasTextDelta 一并复位,否则会出现空回答。internal/translator/** 的改动走 issue,PR 留作参考补丁。7usage.server_tool_use.web_search_requests,记这次请求用了几次网页搜索。官方价每 1000 次 10 美元,每次算一次、不看返回几条,报错的搜索不计费。12usage.iterations[]。开着 advisor 或压缩时,有一部分 token 只出现在这里、不在顶层用量里;advisor_message 按 advisor 模型的价格结算。1314AnthropicUsage 结构体只有 input、output、缓存三类,外加几个 OpenAI 风格的兼容字段。15web_search_requests;iterations 只在测试代码里作循环变量出现。
backend/internal/pkg/apicompat/types.go 第 170–183 行:结构体到 PromptCacheMissTokens 就结束,没有给 server_tool_use 与 iterations 留位置。16advisor_message 与 compaction,message 项已经在顶层算过、不重复;advisor 模型查不到价格时按 executor 的价算,注释里写明这是下界,不从零记。17context_window 与推理默认值这些标量整项消失。18null 之后会被 delete(model, name) 删掉,布尔类置 false、列表置空。20 所以 context_window、max_output_tokens、default_reasoning_level 会整项不见。
proxy/model_capabilities.go 第 204–231 行:只要有一个候选缺字段,complete 就是 false,非布尔项直接打成 null,交给下游删掉。21ListModelCapabilities 的 SQL 要求账号当前代次与快照代次相等,令牌换过一次,旧快照就读不到。23
admin/handler.go 第 4767–4783 行:同步函数保存了 Daybreak 状态、把新模型学进注册表,全程没有 SaveModelCapabilities,缺的那一步就在这里。24sync-upstream、refresh-all 的 codex 频道;抓取前把令牌与代次一起锁下来,读完 body 再记观察时刻,代次轮换后不会把响应挂到新代次上。/models 就会触发。25| 处境 | 今晚做什么 | 依据 |
|---|---|---|
| v8.0.39 加 Claude 协议客户端打 Codex,用户说答案重复 | 先确认是两个 text 块;要立刻止血就本地打 #6894,并补上 HasTextDelta 复位 | CLIProxyAPI #6895 |
| sub2api 有 Anthropic 协议流量,开了网页搜索或 advisor | 先对上游用量;要现在就算对,试 #8306 分支 | sub2api #8306 |
| codex2api 有共享 key 的 Codex 账号池 | 用该 key 请求一次 /models 让快照落库,或等 #819 合 | codex2api #819 |
| 只想知道要不要升版本 | 三条都还没进发行版,升级不解决问题 | CLIProxyAPI v8.0.39 发行页 |
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
platform.claude.com
platform.claude.com
platform.claude.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
github.com
status.openai.com
status.claude.com
status.cloud.google.com
codex-reset.com
opentherank.com
community.openai.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.