Skip to content

Releases

v1.2.7 - Fix 26.1021 injection reload loop

Choose a tag to compare

@A1mAssist A1mAssist released this 24 Oct 04:45

修复 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-initial bundle 验证:Connect Info 桥接、AppServer 桥接、标题路由、streamingEnabled:!0 各 1;旧 dictation 门 0;!n.disabledForWorkspace 0;Dictation 父门 requiresFirstPartyInference:!1 1。

已知限制:新版 app-primary 的 composer 注册锚点未命中,流式预览清理可能不完整;不影响麦克风显示和基本转写,若出现重复落字再单独适配。EXE 文件版本为 1.2.7.0。

升级方式不变:替换 CodexDictation.exe,然后重启 CodexDictation/Codex。新版本需要重启 helper 后才会生效。

CodexContextPanel v1.0.0 - Context panel only

Choose a tag to compare

@A1mAssist A1mAssist released this 24 Oct 17:02

首个独立的 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,通过构建、自检、页面就绪和配置桥测试。

使用方式:

  1. 退出当前 CodexDictation。
  2. 运行 CodexContextPanel.exe;如果 Codex 正在运行,按提示关闭并重新启动以注入面板。
  3. 不要同时运行 CodexDictation.exe 和 CodexContextPanel.exe。

本版本不会替换主程序的完整 Voice/Dictation 功能。Context 面板依赖 Codex 的右栏 DOM 锚点;客户端大版本更新后如锚点变化,需要重新适配。

v1.2.6 - Restore composer mic on custom provider

Choose a tag to compare

@A1mAssist A1mAssist released this 23 Oct 18:58

修复自定义 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

Choose a tag to compare

@A1mAssist A1mAssist released this 23 Oct 15:11

修复 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

Choose a tag to compare

@A1mAssist A1mAssist released this 23 Oct 04:48

性能修复:降低常驻内存

  • 把启动和晚加载阶段的 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

Choose a tag to compare

@A1mAssist A1mAssist released this 23 Oct 02:24

修正版:移除上下文面板里的「占用 Top 3」区块。

保留:

  • 完整上下文窗口拆分、压缩缓冲和注入指令明细;
  • 自动压缩阈值线、剩余 token 和基于最近已完成回合的轮数估算;
  • Provider 原始输入、缓存命中率和输出统计;
  • 会话切换跟随和 Settings > Voice 里的上下文面板开关。

安装方式不变:下载并替换 CodexDictation.exe,然后重启 CodexDictation/Codex。EXE 文件版本为 1.2.3.0。

v1.2.2

Choose a tag to compare

@A1mAssist A1mAssist released this 22 Oct 18:27

本次发布把 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 设置卡片在字典控件缺失时的布局,字段和保存按钮恢复原生样式。

安装

  1. 下载下面的 CodexDictation.exe。
  2. 替换旧的 CodexDictation.exe(建议先重命名旧文件作为备份)。
  3. 重启 CodexDictation;已有 Codex 会话需要在重启后重新进入。

已使用 ChatGPT Desktop (Codex) 26.1016.8120.0 验证。EXE 文件版本为 1.2.2.0。

v1.1.9

Choose a tag to compare

@A1mAssist A1mAssist released this 19 Oct 12:38

修正“模型响应流重连”设置的作用范围说明。

Codex 会在会话创建时固定 Provider 的 stream_max_retries。保存后:

  • 新对话直接使用新值;
  • 已有对话需重启 Codex 并重新进入会话后才会使用新值。

设置本身已经正确写入 ~/.codex/config.toml;本次不改变标题生成逻辑。EXE 文件版本同步为 1.1.9。

CodexDictationUnlock v1.1.8

Choose a tag to compare

@A1mAssist A1mAssist released this 18 Oct 15:11

适配 Codex Desktop 26.1013 的标题生成调用变化:hostId 现在通过变量传入,不再直接调用 getHostId()。修复切换 Provider 后“当前对话模型”标题模式未接管的问题。已在当前版本的实际 app-initial bundle 上验证标题调用准确替换 1 处并通过语法检查。

CodexDictationUnlock v1.1.7

Choose a tag to compare

@A1mAssist A1mAssist released this 16 Oct 15:46

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.