Repository navigation
Releases
v1.2.7 - Fix 26.1021 injection reload loop
修复 Codex 26.1021.3705.0 更新时注入卡住 / 页面不加载
- 客户端更新期间 helper 仍连着旧 CDP 端口,bundle 暂时不匹配时会反复
Page.reload,把页面卡在加载阶段。现在补丁失败会记录日志并停止重试同一个 target,不再循环重载。 - 失败或中断时继续所有被
Fetch暂停的 bundle 请求,避免 renderer 一直等app-initial而白屏。 - 适配
26.1021.3705.0的dictation.chatgpt能力门片段,保留 v1.2.6 的requiresFirstPartyInference父门解锁。 - 真实 10.3 MB
app-initialbundle 验证:Connect Info 桥接、AppServer 桥接、标题路由、streamingEnabled:!0各 1;旧 dictation 门 0;!n.disabledForWorkspace0;Dictation 父门requiresFirstPartyInference:!11。
已知限制:新版 app-primary 的 composer 注册锚点未命中,流式预览清理可能不完整;不影响麦克风显示和基本转写,若出现重复落字再单独适配。EXE 文件版本为 1.2.7.0。
升级方式不变:替换 CodexDictation.exe,然后重启 CodexDictation/Codex。新版本需要重启 helper 后才会生效。
CodexContextPanel v1.0.0 - Context panel only
首个独立的 Context Panel 版本:只提供上下文面板,不包含任何 Voice 功能。
- 在 Codex 右栏原生摘要旁显示完整上下文窗口、Provider 实际占用、压缩后历史、缓存命中率和自动压缩阈值。
- 首次独立版本为
v1.0.0,EXE 文件版本为1.0.0.0。 - 不包含 Voice 设置卡片、ASR 服务、听写 WebSocket、Dictation 能力解锁或会话标题接管。
- 不会修改 Codex 的 Dictation 能力和标题调用;Context 面板始终开启。
- 独立日志目录:
%APPDATA%\CodexContextPanel\helper.log。 - 已适配 Codex
26.1021.3705.0,通过构建、自检、页面就绪和配置桥测试。
使用方式:
- 退出当前
CodexDictation。 - 运行
CodexContextPanel.exe;如果 Codex 正在运行,按提示关闭并重新启动以注入面板。 - 不要同时运行
CodexDictation.exe和CodexContextPanel.exe。
本版本不会替换主程序的完整 Voice/Dictation 功能。Context 面板依赖 Codex 的右栏 DOM 锚点;客户端大版本更新后如锚点变化,需要重新适配。
v1.2.6 - Restore composer mic on custom provider
修复自定义 provider 下输入框麦克风消失
- Codex
26.1016.8622.0的输入框听写按钮实际读dictation.chatgpt,不是dictation.composer;v1.2.5 只解锁了后者,所以设置页可能正常、麦克风仍然不显示。 - 新版
dictation父能力启用了requiresFirstPartyInference。API Key + 自定义 provider(model_provider = "custom")会被判定为不可用;v1.2.6 只关闭 Dictation 这一项的父门,不动其他能力。 - 保留 v1.2.5 的
dictation/global-dictation解锁、Connect Info 桥接和流式标记。 - 顺带适配新版标题生成调用的
maxTitleChars参数,避免标题路由因函数签名变化失效。
验证:真实 14.6 MB app-initial bundle 补丁后,isCapable:!a&& / isCapable:!t&& 均为 0,!n.disabledForWorkspace 为 0,Dictation 父门 requiresFirstPartyInference:!0 为 0、!1 为 1,streamingEnabled:!0 与 Connect Info 桥接各 1;self-test、watcher reload、config bridge 测试通过。EXE 文件版本为 1.2.6.0。
升级方式不变:替换 CodexDictation.exe,然后重启 CodexDictation/Codex。新版本需要重启 helper 后才会生效。
v1.2.5 - Fix dictation on 26.1016.8622
修复 Codex 26.1016.8622.0 上的听写能力解锁
- 新版客户端把 Dictation 能力集中到
uJt表,dictation/global-dictation的返回值从isLoading:a,isCapable:!a改成了固定isCapable:!0。 - 旧补丁写入
isCapable:!a,而 API Key 账号拿不到 Statsig rollout,a永远为 true,导致设置页显示 “Dictation unavailable”,输入框麦克风也消失。 - v1.2.5 直接替换为新版能力门表达式,保留 Connect Info 桥接和流式标记。
- 沿用 v1.2.4 的一次性子进程 bundle 补丁和工作站 GC,常驻内存不回退。
验证:用真实 14.6 MB app-initial bundle 跑补丁,isCapable:!a&& / isCapable:!t&& 均为 0,streamingEnabled:!0 与 Connect Info 桥接各 1;self-test、watcher reload、config bridge 测试通过。EXE 文件版本为 1.2.5.0。
升级方式不变:替换 CodexDictation.exe,然后重启 CodexDictation/Codex。新版本需要重启 helper 后才会生效。
v1.2.4 - Lower idle memory
性能修复:降低常驻内存
- 把启动和晚加载阶段的 bundle 正则替换移到一次性子进程。正则替换产生的
ArrayPool<char/byte>大缓冲随子进程退出,不再留在常驻 helper 中。 - 常驻 helper 改用工作站 GC,避免多核机器上多个 Server GC 堆在空闲时保留大量已提交的 LOH 空间。
- 注入、听写、上下文面板和 ASR 转发逻辑不变。
验证:14.6 MB 的 app-initial bundle 子进程补丁耗时约 1.36 s;self-test、CDP readiness、watcher reload 和 config bridge 测试通过。
升级方式不变:替换 CodexDictation.exe,然后重启 CodexDictation/Codex。新版本需要重启 helper 后才会生效。EXE 文件版本为 1.2.4.0。
v1.2.3
v1.2.2
本次发布把 v1.2.0、v1.2.1 的上下文面板工作合并进来,并加入本轮新增的统计项。
上下文面板
- 新增「占用 Top 3」:按
call_id聚合当前有效窗口里的工具输出,显示工具、文件/参数摘要和折算 token;压缩前的调用不计入。 - 新增自动压缩信息:读取
model_auto_compact_token_limit,低于窗口 90% 时使用配置值,否则使用 Codex 的 90% 上限;进度条显示阈值线、剩余 token 和基于最近已完成回合的轮数估算。 - 新增缓存命中率:
cached_input_tokens / input_tokens,方便判断中转 API 的实际缓存收益。 model_post_turn_compact_threshold_percent配置存在时,单独显示 End-of-turn。- 面板继续支持实时窗口拆分、压缩缓冲、注入指令明细、会话切换跟随和
Settings > Voice开关。
设置界面
- 上下文面板开关复用 Codex 原生 switch 样式。
- 修复 Voice 设置卡片在字典控件缺失时的布局,字段和保存按钮恢复原生样式。
安装
- 下载下面的
CodexDictation.exe。 - 替换旧的
CodexDictation.exe(建议先重命名旧文件作为备份)。 - 重启 CodexDictation;已有 Codex 会话需要在重启后重新进入。
已使用 ChatGPT Desktop (Codex) 26.1016.8120.0 验证。EXE 文件版本为 1.2.2.0。
v1.1.9
CodexDictationUnlock v1.1.8
适配 Codex Desktop 26.1013 的标题生成调用变化:hostId 现在通过变量传入,不再直接调用 getHostId()。修复切换 Provider 后“当前对话模型”标题模式未接管的问题。已在当前版本的实际 app-initial bundle 上验证标题调用准确替换 1 处并通过语法检查。
CodexDictationUnlock v1.1.7
Fix the intermittent "ChatGPT failed to start." dialog (ERR_FAILED / ERR_ABORTED loading app://-/index.html).
Root cause: the client's window-manager awaits loadURL("app://-/index.html") while bootstrap is still running. The bundle patch issued Page.reload before that navigation settled, aborting it with ERR_ABORTED (-3). Bootstrap then logged Desktop bootstrap failed to start the main app phase=bootstrap-import-main and showed the failure dialog.
Evidence: the helper log lines up with Codex's own desktop logs and Windows Application events in the same second for all six reports since 2026-10-10. One failing instance (pid 5104) logged only up to stdio_transport_spawned, then stopped, with no crash dump.
Fix: WaitForPageLoadedAsync polls document.readyState and waits for the client's first page load to finish before the patch reload. It is budgeted (20s for the startup patch, 2s for the avatar-overlay patch) and logs and continues rather than blocking injection.
Also validated against ChatGPT Desktop (Codex) client 26.1013.3656.0 and updated the README compatibility line.
Regression test tests/page-ready.mjs covers both branches: an already-loaded document passes immediately, a still-loading one waits out the budget.