[Bug]: Codex 26.715.10079.0 owl runtime 移除了 --remote-debugging-port 支持,CDP 注入完全失效
Platform / 平台
Windows
OS version / 系统版本
Windows 11
CPU / 架构
Windows x64
Codex Desktop version / source / Codex 桌面版版本或来源
Codex 桌面应用版本 | 26.715.10079.0
Dream Skin version / 皮肤工具版本
1.3.3
Problem category / 问题类型
Skin not applied / 启动后无皮肤
Self-check / 自检
- Ran Verify / doctor (or Windows verify script) / 已运行 Verify 或 doctor
- Tried Restore, then re-apply / 已尝试完全恢复后再应用
- Official Codex still opens without the skin tools / 不用皮肤工具时官方 Codex 仍可正常打开
- Searched existing issues / 已搜索现有 Issue
Steps to reproduce / 复现步骤
问题描述
Codex 从 26.715.9757.0 自动更新到 26.715.10079.0 后,Dream Skin 彻底失效。
现象:
- 点击 Dream Skin 快捷方式能启动 Codex 窗口
- 但系统托盘显示 Dream Skin 状态为"未运行"
- 端口 9335 从未被监听
injector.log显示注入器从未启动injector-error.log显示original CDP browser identity closed; watcher is stopping instead of reconnecting
根因分析
1. 旧版本 vs 新版本的行为变化
旧版本 (26.715.9757.0):
IApplicationActivationManager::ActivateApplication 传入的 --remote-debugging-port=9335 能正确传递给 ChatGPT.exe 的 Chromium/Electron 进程,端口正常打开,CDP 注入成功。
新版本 (26.715.10079.0):
同样的 COM 调用,参数被 owl runtime 转换成了 Codex 自定义协议 URL:
"C:\Program Files\WindowsApps\OpenAI.Codex_26.715.10079.0_x64__2p2nqsd0c76g0\app\ChatGPT.exe"
codex://threads/new?path=--remote-debugging-port%3D9335可以看到 --remote-debugging-port=9335 被 URL 编码后(%3D)塞进了 codex:// 协议处理器的 path 参数里,而不再作为 Chromium 命令行 flag 传递给底层进程。因此 owl runtime 永远不会开启 CDP 调试端口。
2. 已尝试的所有绕过方案(全部失败)
| 方法 | 命令/操作 | 结果 |
|---|---|---|
| COM 激活传参 | IApplicationActivationManager + --remote-debugging-port=9335 |
参数被 URL 编码到 codex:// 协议,忽略 |
| CLI 直接传参 | codex app -- --remote-debugging-port=9335 |
--remote-debugging-port 被当作工作区路径,而非 flag |
| CLI feature flag | codex app --enable devtools |
Error: Unknown feature flag: devtools |
| CLI feature flag | codex app --enable debug |
Error: Unknown feature flag: debug |
| 环境变量 | ELECTRON_REMOTE_DEBUGGING_PORT=9335 codex app |
owl runtime 不读取此环境变量 |
| Pipe 调试 | codex app -- --remote-debugging-pipe |
同样被当作工作区路径 |
| 修改偏好文件 | 尝试修改 owl runtime 的 Preferences 文件 | AppData\Roaming\Codex\web\Codex\ 目录在进程外不可访问(沙箱隔离) |
| 重新安装 Codex | 通过 Windows Store 重装 | Store 只提供最新版 26.715.10079.0,无法降级 |
3. owl runtime 的 feature flags
从运行中进程的命令行可以提取到 owl runtime 的 feature 列表:
启用的 features:
OwlAuth, OwlAutofillAndPasswords, OwlDownloads, OwlPermissions,
OwlPrinting, OwlWebViewEnhancements禁用的 features:
DropInputEventsWhilePaintHolding, OwlExtensions, OwlHistory, OwlOpenAIGoLinks其中没有与 CDP、DevTools、或远程调试相关的 feature flag。这意味着 CDP 支持可能在编译时就被完全移除了,而不是通过 feature flag 动态控制。
Expected behavior / 期望结果
主题应用成功
Actual behavior / 实际结果
显示主题根本未运行,codex界面无变化
Modified official Codex install? / 是否改过官方 Codex 安装?
No — official app only / 否,仅官方安装
Logs / Verify / doctor output(recommended)/ 日志与校验输出(强烈建议)
日志输出
%LOCALAPPDATA%\CodexDreamSkin\injector.log
[dream-skin] injected target D3BE468D5DC3D400F61A49EEEA540501
[dream-skin] active theme custom
[dream-skin] paused
[dream-skin] active theme preset-gothic-void-crusade
[dream-skin] paused说明:第 1-2 行为旧版本上成功注入的自定义主题记录。第 3-5 行为问题发生后尝试切换主题的记录——每次都是
paused,之后再也没有成功注入。
%LOCALAPPDATA%\CodexDreamSkin\injector-error.log
[dream-skin] original CDP browser identity closed; watcher is stopping instead of reconnecting说明:Codex 自动更新后进程重启,CDP 浏览器身份标识发生变化,watcher 检测到身份不匹配后主动停止(这是
injector.mjs的安全机制——防止注入到错误的浏览器实例)。但此后由于新版 Codex 不再开启 CDP 端口,watcher 再也无法重新连接,持续处于"未运行"状态。
%LOCALAPPDATA%\CodexDreamSkin\state.json
(文件不存在 —— 故障排查过程中已被删除,但问题与此无关)Codex 主进程命令行(运行中进程的实际参数)
"C:\Program Files\WindowsApps\OpenAI.Codex_26.715.10079.0_x64__2p2nqsd0c76g0\app\ChatGPT.exe"
codex://threads/new?path=--remote-debugging-port%3D9335关键证据:
--remote-debugging-port=9335被 URL 编码后作为codex://协议的 query 参数传递,而非 Chromium 命令行 flag。
Codex CLI doctor 输出(节选)
Codex Doctor v0.145.0-alpha.30 · windows-x86_64
✓ runtime version 0.145.0-alpha.30
✓ system Windows 10.0.26200 (Windows 11 CoreCountrySpecific) [64-bit]
✓ config model: deepseek-v4-pro · custom
○ app-server not running (ephemeral mode)端口验证
netstat -ano | grep 9335
→ (无任何输出 —— 端口从未被监听)verify.log(旧版本上最后一次成功验证的快照)
{
"mode": "verify",
"port": 9335,
"targets": [{
"targetId": "D3BE468D5DC3D400F61A49EEEA540501",
"result": {
"installed": true,
"version": "1.3.3",
"expectedVersion": "1.3.3",
"themeId": "preset-gothic-void-crusade",
"revision": "597663c260909c6e6b5a",
"styleMode": "adopted",
"stylePresent": true,
"pass": true
}
}]
}说明:旧版本上 Dream Skin 1.3.3 运行正常,CSS 注入成功(
stylePresent: true),验证通过(pass: true)。
Screenshots / video / 截图或录屏
No response
Extra context / 其他信息
菜单栏 / 系统托盘
已安装 tray-dream-skin.ps1,在桌面和开始菜单均有快捷方式(Codex Dream Skin - Tray.lnk)。旧版本上托盘正常工作,更新后托盘显示主题状态为"未运行"。
暂停状态
是,主题曾两次被暂停。injector.log 完整时间线:
| 行 | 事件 | 说明 |
|---|---|---|
| 1 | injected target D3BE... |
旧版本上"德鲁纳"自定义主题成功注入 |
| 2 | active theme custom |
使用自定义主题(德鲁纳) |
| 3 | paused |
第一次暂停 |
| 4 | active theme preset-gothic-void-crusade |
切回默认 Gothic Void Crusade 预设 |
| 5 | paused |
第二次暂停(此时 Codex 已自动更新) |
暂停后尝试恢复时,injector 因 CDP 浏览器身份变更停止(见 injector-error.log),之后再也无法重连。
CDP 端口占用
端口 9335 当前没有任何进程监听,也未被其他程序占用。不是端口冲突问题,而是新版 Codex 根本没有开启 CDP 服务。
补充信息
- Dream Skin 安装路径:
C:\codex\CodexDreamSkin - 主题文件完整且配置正确(
%LOCALAPPDATA%\CodexDreamSkin\active-theme\theme.json),排除了主题配置问题 - 在旧版本上 Dream Skin 曾正常工作(
injector.log第 1 行有成功注入记录) - Codex 的
config.toml中无可用于启用调试的配置项
Confirmation / 确认
- I did not paste API keys or secrets / 我未粘贴 API Key 或其它密钥
- I understand this is an unofficial theme tool (loopback CDP only) / 我理解这是非官方换肤工具(仅本机 CDP)
Source: Fei-Away/Codex-Dream-Skin