Skip to content

Releases: E50MAX/codex-provider-switcher

Secure Codex Provider Switcher v2.3.11

Choose a tag to compare

@E50MAX E50MAX released this 26 Aug 04:01
Immutable release. Only release title and notes can be modified.

修复内容

  • 兼容 Codex 26.5820.60940 新版 webview:thread/resume 参数先经 completeRequest 生成局部变量,并与并行 hydration 放在同一个 let 声明中。
  • 修复“thread/resume 调用边界不完整”误报,同时继续验证参数变量来源、基础对象、threadId、modelProvider、调用边界及调用前重新赋值。
  • 保留 2.3.10 的 OpenAI API Key 登录支持、Remote/WSL 隔离、配置竞态保护及 TOML 安全解析改进。

验证

  • 93/93 自动化测试通过
  • npm audit:0 vulnerabilities
  • 源码安全审计通过
  • 使用官方 Windows Codex 26.5820.60940 VSIX 的三处真实 webview 资源完成结构、补丁和幂等验证

VSIX SHA-256:8573894C2E8F2A4A0956EBC70D2809CF66988F94467AFD965FC4F33577DB22C9

Secure Codex Provider Switcher v2.3.10

Choose a tag to compare

@E50MAX E50MAX released this 26 Aug 03:58
Immutable release. Only release title and notes can be modified.

修复内容

  • 兼容 Codex 26.5820.60940 新版 webview 的 completed thread/resume 参数变量与同一 let 声明中的并行 hydration,修复“thread/resume 调用边界不完整”误报。
  • OpenAI Provider 旧会话同时支持 ChatGPT 订阅登录和 OpenAI API Key 登录,并继续对退出登录或未知认证类型 fail-closed。
  • 切换或更新当前自定义 API 时要求确认重载,串行化并发命令,并拒绝覆盖外部修改过的 config.toml。
  • VS Code Remote 与 Codex WSL 模式下停止 Windows 本机文件和 DPAPI 操作,避免修改错误的运行环境。
  • 改进 TOML 顶层值、行内注释及未托管 Provider 的识别;删除当前 API Key 后立即重载并显示明确状态。

验证

  • 93/93 自动化测试通过
  • npm audit:0 vulnerabilities
  • 源码安全审计通过
  • 使用官方 Windows Codex 26.5820.60940 VSIX 的三处真实 webview 资源完成结构、补丁和幂等验证

VSIX SHA-256:B429677A66F91086827A0F5C09C8CF1A4A105573AEFE7A4A1ADE73C097DD177D

Secure Codex Provider Switcher v2.3.9

Choose a tag to compare

@E50MAX E50MAX released this 24 Aug 03:58
Immutable release. Only release title and notes can be modified.

修复内容

  • 区分真正的 App Server writer conflict 与 Provider Switcher 自身的安全校验失败。
  • 配置、模型目录、登录态和运行时选择错误不再误报为“在另一个应用中打开”。
  • 保持输入框 fail-closed,并通过通知展示可操作的具体错误原因。
  • 自动把已验证的 v5 Provider 接管补丁升级到 v6,三处 webview 修改采用事务写入和失败回滚。

验证

  • 75/75 自动化测试通过
  • npm audit:0 vulnerabilities
  • 源码安全审计通过

VSIX SHA-256:04B744E06910E1B9761EF39CD5846232650BBCE3516F623AE63225E6FEA9C39A

Secure Codex Provider Switcher v2.3.8

Choose a tag to compare

@E50MAX E50MAX released this 22 Aug 03:20
Immutable release. Only release title and notes can be modified.
  • Preserve the most recently used supported reasoning effort when switching between ChatGPT accounts and custom APIs.
  • Fall back to the target connection's saved effort, then the selected model default, when the recent effort is unavailable.
  • Add regression coverage for stale target-specific high values and account entitlement messaging.

VSIX SHA-256: 316641D4457CF1650194C649C4B316B5955C2A00F333D023E4EFBEDA7B63B9DB

Secure Codex Provider Switcher v2.3.7

Choose a tag to compare

@E50MAX E50MAX released this 21 Aug 04:06
Immutable release. Only release title and notes can be modified.
  • Fix custom API reconfiguration on Windows when an encrypted API key already exists.\n- Use a valid temporary backup path for atomic DPAPI secret replacement and clean it up afterward.\n- Add regression coverage for rotating and decrypting an existing API key without leftover temporary files.\n\nVSIX SHA-256: 57046C7BD9A5435B0EC0ACA27F397C830C36F9FF148669986387EAC278682E15

Secure Codex Provider Switcher v2.3.6

Choose a tag to compare

@E50MAX E50MAX released this 18 Aug 02:32
Immutable release. Only release title and notes can be modified.

Changes

  • Restore the Provider saved in the active Codex configuration instead of implying an API default.
  • Preserve the last compatible reasoning effort; otherwise use the model default instead of forcing Max.
  • Includes v2.3.5 compatibility fixes for split Codex history bundles and the newer thread-resume bundle syntax.

Verification

  • 69 automated tests passed.
  • Dependency audit found 0 vulnerabilities.
  • Source security audit passed.

VSIX SHA-256: e1e752f8ac5a989c9dce4205e2ac93ee708de0f8d6994e4fe1b3e3967d5c3f98

v2.3.4 — 旧会话安全接管与完整状态校验

Choose a tag to compare

@E50MAX E50MAX released this 11 Aug 06:40
Immutable release. Only release title and notes can be modified.

Marketplace 从 2.2.2 直接升级到 2.3.4;本版本包含 2.3.0–2.3.4 的全部旧会话接管、写锁交接与完整运行时校验修复。

重点修复

  • 账户与自定义 API 共用本机历史时,旧会话保留原 thread ID、标题和内容,不再复制为空白对话。
  • 恢复前通过 config/readmodel/listthread/resume 核对 Provider、模型、推理等级及服务档;账户模式额外通过不刷新 token 的 account/read 确认当前已登录 ChatGPT。
  • 仍受支持的会话专属模型与推理选择会保留;换账户或 API 后不兼容的选择会回退到当前兼容配置或模型默认值。
  • 窗口重载造成的真实 writer-lock 交接会有限重试;thread/unsubscribe 的约 30 分钟宽限期不再被误认为立即卸载。活动会话或任何运行时不匹配都会安全阻止发送。

历史、图片与上下文压缩

  • 历史共享仅限当前 Windows 用户的同一 CODEX_HOME,不会同步 ChatGPT 云端;本地历史不按 ChatGPT 账号隔离。
  • 插件不改写消息、内嵌图片、localImageimageViewcontextCompaction 项。本地路径图片仍要求原文件存在。
  • 隔离 App Server 测试验证:包含 3 次上下文压缩的真实 rollout 可在切换模型与推理等级后恢复;合成的内嵌图片与本地图片引用也能随原 thread 恢复。
  • 压缩后的下一轮使用 Codex 保留的摘要与活动上下文,并非重新发送压缩前的每个 token 和每张旧图片。

安全与验证

VSIX SHA-256:963c705bf3d3b6733cf8e30435b729c8c269e8336408f9526570bc8ad6cf7e06

v2.2.2 — Provider 路由与安全修复

Choose a tag to compare

@E50MAX E50MAX released this 11 Aug 01:52
Immutable release. Only release title and notes can be modified.

请使用 v2.2.2。 v2.2.1 在云端 CI 完成前被创建;仓库启用了 Immutable Releases,之后不能移动标签或替换资产。v2.2.2 从通过分支与标签两轮 CI 的最终提交构建,并取代 v2.2.1。

重点修复

  • 修复“已选 API,但继续旧账户会话仍受 ChatGPT 额度影响”的路由歧义。
  • 切换并重载后自动打开一个使用新默认 Provider 的空白 Codex 对话。
  • 状态栏改为 Codex 新对话: API/账户;共享历史仅合并本地列表,不迁移旧会话的 modelProvider
  • 保存自定义 API 后可立即真正切换。

安全与隐私

  • 阻止旧扩展 ID 抢占同名命令后继续写配置。
  • 加固 TOML 托管区块、活动 Provider 校验、DPAPI 密钥绑定/原子替换与 reparse-point 检查。
  • 拒绝明文敏感认证头、重复头和原型污染型属性名。
  • 把写入、结构校验和回滚抽为同一生产模块;测试覆盖单文件回滚、批量回滚及外部改动冲突保护。
  • 文档中的本机对话标题截图已替换为脱敏版本。
  • GitHub Actions 使用 Node 24-native v7 系列,并固定不可变 commit SHA、只读 contents 权限。

验证

  • 30 项自动测试全部通过。
  • npm audit:0 个已知漏洞;依赖无待更新项。
  • Secretlint、Git 历史凭据扫描、源码审计和 VSIX 白名单检查均无发现。
  • 新建的临时 App Server thread 实测 Provider 为 lab_relay,未启动 turn。
  • mainv2.2.2 标签两轮 GitHub Windows CI 均通过。

VSIX SHA-256:a06ee134a710ece9aa3c0f855913849acd0f4d58c573b9bac4fcf1a6b43778ba

v2.2.1 — 安全的新对话路由修复

Choose a tag to compare

@E50MAX E50MAX released this 11 Aug 01:32
Immutable release. Only release title and notes can be modified.

重点修复

  • 修复“已选 API,但继续旧账户会话仍受 ChatGPT 额度影响”的路由歧义。
  • 切换并重载后自动打开一个使用新默认 Provider 的空白 Codex 对话。
  • 状态栏改为 Codex 新对话: API/账户;共享历史仅合并本地列表,不再暗示旧会话 Provider 已迁移。
  • 保存自定义 API 后可立即真正切换。

安全与隐私

  • 阻止旧扩展 ID 抢占同名命令后继续写配置。
  • 加固 TOML 托管区块、DPAPI 密钥绑定/原子替换、活动 Provider 校验和官方资源回滚。
  • 拒绝明文敏感认证头、重复头和原型污染型属性名。
  • 文档中的本机对话标题截图已替换为脱敏版本。

验证

  • 29 项自动测试全部通过。
  • npm audit:0 个已知漏洞;依赖无待更新项。
  • Secretlint、Git 历史凭据扫描、源码审计和 VSIX 白名单检查均无发现。
  • 新建的临时 App Server thread 实测 Provider 为 lab_relay,未启动 turn。

VSIX SHA-256:6d0ee9d09dd30f176f8613915687b6d1b390a3b49bf5444d3c6799f89543eef3

v2.2.0 - Shared account/API local history

Choose a tag to compare

@E50MAX E50MAX released this 09 Aug 07:37
Immutable release. Only release title and notes can be modified.

Adds one shared local Codex history list for ChatGPT-account and custom-API conversations.

Highlights:

  • Requests all model providers from validated thread/list call sites in both the extension host and webview.
  • Requires explicit consent and does not read, copy, migrate, or rewrite conversation records.
  • Revalidates the official Codex extension after upstream updates and refuses unknown structures.
  • Uses verified multi-file writes with rollback and no non-atomic overwrite fallback.
  • Adds a manual repair command, settings, privacy/security documentation, and activation/rollback integration tests.

Important: when a conversation is resumed under a different provider, Codex may send its existing context to the currently selected provider. Check the status bar before continuing sensitive conversations.

Validation: 22 tests passed, source audit passed, 0 npm vulnerabilities, 282 dependency signatures verified.

SHA-256: B64A876430B0F31A1EDF22B5B17DC66F753FD26E8C27D80D35E917081B8B9BF4