
这一小时四仓无新版本:维护者关掉那张「换凭证后旧会话不能用」的单,定论是 Codex OAuth 与 codex-api-key 在 OpenAI 侧属两个组织,跨组织的加密推理项解不开,只能新建会话;本地那条推理重放缓存也刻意不按凭证隔离,同一条会话换号后仍会把旧组织的密文塞回去。同窗口另一张把小机器 CPU 打满的单修进 dev,v8.0.33 上没有。
rs_0db2ab95… 这个推理项验不过:The encrypted content for item rs_0db2ab95… could not be verified. Reason: Encrypted content could not be decrypted or parsed.Codex OAuth与官方API(codex-api-key)在 OpenAI 侧属于不同的组织(Organization),不能在同一个会话中混用。在 OpenAI Responses 协议中,历史会话里的推理项(如rs_...)包含encrypted_content字段,该字段由生成该响应时所属的 OpenAI 组织密钥进行加密。当你从Codex API切换到Codex OAuth后继续之前的会话时,客户端会将原组织生成的encrypted_content回传给新组织校验,上游因组织密钥不匹配无法解密,从而返回Encrypted content could not be decrypted or parsed错误。切换凭证类型(或不同组织的账号)后,请新建会话继续使用。
Codex OAuth 是订阅账号,codex-api-key 是官方 API key。oauth.auth-dir 下的 auth 文件,段落是 oauth.providers.codex。api-keys.codex。oauth.auth-dir 下的文件和 api-keys.codex 列表,就知道池里混没混。
internal/cache/codex_reasoning_replay_cache.go 第 332–344 行:第 338–339 行写明会话键刻意不跟随上游凭证,第 340 行是最终键,只有模型与会话两段thinking_signature_invalid 时,才会删缓存。invalid signature in thinking block,另一个是 invalid_encrypted_content。
internal/runtime/executor/codex_executor_terminal.go 第 354–372 行:第 367 行只匹配 invalid signature in thinking block 与 invalid_encrypted_content,其余落进第 373 行的 defaultCodexReasoningReplayCacheTTL),过期或重启才消失。codexReasoningReplayEnabledForSource)。gjson.parseSquash 占 56.5% 与 77.5%。| 指标 | v8.0.32 | 修好后 |
|---|---|---|
| 首 token(两次运行) | 13.4 s / 20.0 s | 5.1 s / 6.9 s |
| 每流解码速度(中位) | 70 / 95 tok/s | 97 / 120 tok/s |
| 每输出 token 的 CPU | 约 7.2 ms | 约 2.3 ms |
| 整批墙钟 | 23.6 s / 27.5 s | 13.4 s / 12.8 s |
Closes: #6746。stream 与工具名映射各解析一次、存进转换状态。mergeable 变成 dirty,2 文件 +72/−4。
internal/translator/openai/claude/openai_claude_response.go 第 134–152 行:第 143 行每个分块都从原始请求里取一次 stream,第 144–148 行两个分支都以 return 收尾
state,第 155–158 行只解析一次 stream,第 163 行才进流式分支Fixed 标签,单子仍然 open。This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.