mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-07 13:48:43 +08:00
面板「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。