Skip to content

fix(codex): 修复桌面登录态下的图像生成路由 - #108

Open
MattLYT wants to merge 1 commit into
BigStrongSun:mainfrom
MattLYT:codex/fix-native-image-routing
Open

MattLYT wants to merge 1 commit into
BigStrongSun:mainfrom
MattLYT:codex/fix-native-image-routing

Conversation

@MattLYT

@MattLYT MattLYT commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

概述

修复 Codex Desktop 内置图像生成在 MultiRouter 中无法使用官方当前登录态的问题。

官方供应商选择 desktop_current_login 后,路由会物化为带有 codexNativeAuthPassthrough 的请求级供应商,而不会标记为托管 codex_oauth。原图片通道判定遗漏了这一身份;当目录只包含文本模型时,gpt-image-2 无法找到官方图片通道,生成请求报模型路由错误,编辑请求还可能回到本机代理并触发递归保护。

另外,生成请求原先经过文本 JSON 转发,可能将图片模型改成供应商配置的默认文本模型。

本次改动:

  • 复用已有的官方身份和原生认证判定,识别官方 Desktop 登录态;继续排除 xAI、Copilot 和非官方原生认证标记。
  • 仅对本地 Codex 客户端已选中的官方图片通道,复用原始字节转发,保留图片模型、请求内容和认证头。
  • 显式第三方图片路由、外部 API 客户端和普通文本路由保持原有行为;不改写模型目录、路由配置或数据库,也不新增图片模型菜单项。
  • 在 README 补充 Windows EXE 构建注意事项:保留相对 frontendDist,先生成对应版本的前端资源,并实际启动检查界面。

关联 Issue

暂无关联 Issue,来源于 Codex Desktop 内置图片工具的实际故障。

截图

不适用,本次没有界面设计改动。

验证

  • 新增官方 Desktop 登录态回归在修复前失败:只有文本目录时,图片通道解析返回空结果;修复后通过。
  • 覆盖常规文本模型探测和自定义别名身份兜底,并确认普通文本及通用原始端点仍严格按目录匹配、供应商数据库不变。
  • 本地 HTTP 模拟上游确认:官方路由只有文本目录、同时配置文本默认模型时,图片生成请求仍原样发送 gpt-image-2,JSON 字节、提示词、路径、查询参数和合成 Bearer 认证均保留,响应成功。
  • cargo test --manifest-path src-tauri/Cargo.toml --lib -j 1 proxy::handlers:: -- --test-threads=1:104 项通过。
  • cargo test --manifest-path src-tauri/Cargo.toml --lib -j 1 proxy::forwarder::tests::raw_ -- --test-threads=1:14 项通过,包含原生认证、固定 OAuth、账号池及第三方路由边界。
  • Rust 格式检查通过。前端源码、测试与配置相对最新基线无差异,已在现有依赖的主工作副本执行类型检查和格式检查,均通过。
  • 后续真实登录态联调中,图像生成与参考图编辑各返回 HTTP 200 和非空图片;无需把图片模型加入文本目录或模型菜单。
  • 2026-10-08 修正本机 EXE 构建时的临时前端路径覆写后,实际启动窗口并通过截图确认界面正常。源码的默认构建配置及受管构建脚本本身无需修改。

隔离回归使用内存数据库及合成请求。本次整理只增加 README 文档,路由源码及测试与上述已验证版本一致;没有重新执行图像调用,也未在修正前端资源后再次进行图像端到端验证。未运行完整 Rust 测试套件或本机 Clippy,未制作安装包;本机部署产物、配置、数据库、备份和临时部署脚本不包含在此 PR 中。

检查清单

  • pnpm typecheck 通过。
  • pnpm format:check 通过。
  • cargo clippy:本机未运行;原源码提交的 PR CI 后端检查已通过,整理后的 HEAD 由 CI 再次验证。
  • 已核对国际化范围:没有应用内用户可见文本改动,无需更新国际化文件。

@MattLYT
MattLYT marked this pull request as ready for review September 30, 2026 10:34
识别官方原生认证的请求级供应商,避免文本目录遗漏图片模型后丢失官方通道。官方本地图片生成复用原始字节转发,防止默认文本模型覆盖图片请求;保留第三方路由、外部 API 和文本严格匹配行为。补充 Windows EXE 构建的前端资源路径与启动验收注意事项。

验证:新增回归先失败再通过;104 项处理器测试及 14 项原始转发测试通过;本地 HTTP 验证请求字节、图片模型及合成认证头;Rust 格式、前端类型和格式检查通过。后续真实登录态下生成和参考图编辑均返回 200 与非空图片,前端资源修正后的 EXE 已启动并确认窗口正常。

本次整理仅新增文档,路由源码及测试与已验证版本一致;未重复图像调用或运行完整 Rust 套件及本机 Clippy,未制作安装包。
@MattLYT
MattLYT force-pushed the codex/fix-native-image-routing branch from 50b35b8 to bb4acf3 Compare October 11, 2026 15:24
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Oct 11, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend documentation Improvements or additions to documentation proxy

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant