shaw
c899c8cf37
fix(codex): 管理员配置的 UA 只贡献指纹,版本段一律用生效版本重建
面板「OpenAI Codex UA」此前只在客户端 UA 是浏览器型时才生效,本分支把它提升为
所有 OAuth 出站的规范身份来源,作用域扩大了一个数量级。而它的旧 placeholder 原文
就是 codex_cli_rs/0.144.1 (...):照抄填写过的存量部署会被永久钉在 0.144.1 上——
该值不低于上游门槛 0.144.0,version 头也随之变成 0.144.1,绕过版本自动同步,
稳定落在上游优先降载的那一侧,且面板、日志、审计都不提示。账号级自定义 UA
(credentials.user_agent)有完全相同的陷阱。
改为:管理员配置的 UA 只贡献客户端名与 OS / 架构 / 终端指纹(这是该输入框唯一
不可替代的价值),版本段一律用当前生效版本重建。存量的陈旧配置无需迁移即自愈,
UA 与 version 头从此由构造保证同源,原先「覆写 UA 陈旧时二者不一致」的次优解消失。
- 新增 openai.SetCodexUserAgentVersion:重建首段版本声明,OS / 架构 / 终端指纹
原样保留;尾部官方客户端标识组 (name; version) 与首段同源,一并更新,避免拼出
首段声明新版本、尾部仍是旧版本的自相矛盾身份;非官方括号组(如 OS 组)不动。
- resolveCodexOutboundIdentity 收敛为单一funnel:生效版本只从规范身份取,
候选 UA 的版本段不再参与判定。
- GetOpenAICodexCanonicalUserAgent 重建面板 UA 的版本段;原「面板值等于兜底常量
视同未填」的特例随之成为恒等变换,删除。
- 补齐 4 处静默丢弃账号级自定义 UA 的出站路径(WS 握手、账号测试 x2、用量探针):
它们先写 customUA 再调不带 override 的收口,赋值随即被覆盖,既是行为不一致
也是死代码;账号测试尤其要紧——注释写着「与真实转发一致」而实际不一致。
- 补测试:SetCodexUserAgentVersion / CodexUserAgentVersion 包内用例、陈旧面板 UA
与账号 UA 的版本重建回归、WS 握手尊重账号级 UA。
2026-08-03 21:50:49 +08:00
..
2026-07-01 11:32:22 +08:00
2026-07-27 15:20:03 +00:00
2026-07-31 19:36:47 +08:00
2026-07-26 19:20:11 +08:00
2026-07-23 09:20:18 +08:00
2026-02-28 15:01:20 +08:00
2026-05-20 09:28:46 +08:00
2026-05-20 09:28:46 +08:00
2026-02-05 20:17:53 +08:00
2026-07-14 01:29:30 +08:00
2026-07-09 11:15:52 +08:00
2026-07-20 00:08:36 +08:00
2026-07-18 00:11:18 +08:00
2026-03-28 00:55:55 +08:00
2026-08-03 21:50:49 +08:00
2026-05-14 11:46:24 +08:00
2026-07-13 11:35:46 +08:00
2026-03-02 16:04:20 +08:00
2026-03-02 16:04:20 +08:00
2026-03-16 20:22:10 +08:00
2026-07-15 00:23:27 +08:00
2026-01-04 19:28:20 +08:00
2026-07-02 16:11:07 +08:00
2026-07-16 09:51:41 +08:00
2026-07-26 00:53:13 +08:00
2026-04-14 12:19:44 +08:00
2026-07-31 16:11:45 +08:00