CodeX plugin这是一个用于 VS Code 的 CodeX 插件,修复部分 Windows 安装中编辑已发送消息失败的问题,并提供 CodeX 服务商管理界面。 CodeX 在创建本地默认会话时,可能会选择 legacy 历史模式。插件会在当前 App Server 支持分页历史时,将这个选择修复为 paginated。持久会话以及不支持分页历史的服务端继续使用 legacy 模式。插件还会让历史请求显式使用所有 provider,确保迁移到 OpenAI 的本地会话在切换到自定义服务商后仍然出现在历史列表中。CodeX app-server 将 插件通过 VS Code 扩展 API 找到已安装的 openai.chatgpt 扩展,只修改 CodeX Webview 入口引用的文件,并把原始文件备份到插件存储目录。修复操作可以重复执行,CodeX 更新后也会再次检查。 安装在每个使用 CodeX 的 VS Code 扩展主机中安装对应的 VSIX 文件:
Windows、Linux、macOS、Remote SSH、容器和 WSL 都需要在安装了 CodeX 的同一个扩展主机中安装本插件。服务商文件和 ccman 进程使用该扩展主机自己的用户环境。例如,远程 Linux 主机需要单独安装 ccman,并使用远程主机上的 ~/.ccman/codex.json。 安装后重新加载一次 VS Code 窗口。插件会在启动时运行,并在新的 CodeX Webview 打开前修复当前 CodeX 文件。 如果以前安装过 默认目标扩展 ID 是 openai.chatgpt。如果内部版本使用其他 ID,可以在 VS Code 设置中修改 codexHistoryFix.targetExtensionId。将 codexHistoryFix.autoPatch 设为 false 可以关闭启动时自动修复,命令面板中的手动修复命令仍可用。 侧栏界面点击活动栏中的 CodeX plugin 图标,可以打开历史修复状态和 CodeX 服务商页面。状态页面显示是否修复成功、本次修复数量以及之前已生效的修复数量,也可以通过“修复历史对话”按钮恢复空闲旧会话的分页历史。 CodeX 服务商页面读取本地 ccman 配置,可以列出、添加、编辑、删除和切换服务商。添加和编辑表单只把 API Key 交给本机安装的 ccman,由 ccman 写入本地文件,不会把 API Key 发送给远程服务。当前使用的服务商会始终排在列表第一位。 添加服务商和编辑服务商使用同一个弹窗。顶部的加号用于添加服务商,服务商卡片里的编辑按钮用于修改服务商信息。切换或删除会直接执行,页面会在操作完成后刷新列表。 在插件启动时,插件会向已安装的 CodeX 扩展加入一个很小的主机桥接。切换服务商时,ccman 会更新 ~/.codex/config.toml 和 ~/.codex/auth.json,随后让 CodeX 重建长期运行的 codex app-server 进程。桥接在线程创建、恢复和分叉请求中把 服务商页面依赖扩展主机中可用的 ccman。安装命令如下:
远程主机请在远程终端执行。如果 Linux 或 macOS 页面提示找不到 ccman,请确认 VS Code Server 继承了 npm 全局 bin 目录,并且在该环境中执行 command -v ccman 可以找到 ccman。 命令面板还提供 CodeX:切换服务商 和 CodeX:刷新服务进程(无需重载 VS Code)。 从 Explorer 引用文件在 CodeX 输入框中,可以直接把 VS Code 左侧 Explorer 文件树里的文件或目录拖进输入框。插件会读取 VS Code Explorer 提供的 旧会话迁移命令面板提供 CodeX:迁移旧会话到分页历史。该命令调用 CodeX 官方的 migrate-rollouts --apply,会保留会话 ID,跳过正在写入的会话,并报告已迁移、已经是分页模式、跳过和失败的数量。迁移只处理本地 rollout 文件,不会改写持久会话或远程会话。 CodeX plugin 状态页还提供“迁移所有对话到当前 provider”。该操作会把本地会话索引和 rollout 元数据统一改为 OpenAI provider,保留会话 ID 和消息内容;迁移前会确认,并将变更记录备份到扩展全局存储。操作会重启 CodeX,正在生成的请求会中断,仍处于写入状态的会话会跳过。此功能需要扩展主机中有 Python 3( 1.6.6 修复了 Windows 1.6.7 修正了历史请求的 provider 参数: 1.6.8 修复了切换服务商后继续旧对话仍使用旧 API 地址的问题。升级后重新加载 VS Code,插件会把旧的 1.6.9 支持从 VS Code Explorer 直接拖放文件或目录到 CodeX 输入框,并生成蓝色、可点击的文件引用节点。 开发本项目使用原生 Node.js,可以在不安装 TypeScript 工具链的服务器上打包。运行语法检查:
使用 VS Code 扩展管理器打包:
如果未来 CodeX 文件中的会话类结构发生变化,插件会在 CodeX plugin 输出通道报告版本不支持,并停止修改无关代码。 许可证MIT |