Skip to content

feat(providers): 将本机配置保存为可切换供应商 - #2513

Open
nk33-dev wants to merge 1 commit into
BigPizzaV3:mainfrom
nk33-dev:codex/local-config-provider
Open

nk33-dev wants to merge 1 commit into
BigPizzaV3:mainfrom
nk33-dev:codex/local-config-provider

Conversation

@nk33-dev

@nk33-dev nk33-dev commented Oct 13, 2026 •

Copy link
Copy Markdown

问题

用户已有的 Codex 本机配置没有独立供应商快照。尝试其他供应商后,需要手动保存和找回原来的 config.toml 与登录状态;官方登录的专属模型配置也容易在回填时被当成工具写入值移除。

改动

  • 管理器首次读取设置时,把当前 CODEX_HOME 配置保存为普通、可编辑和可切换的“系统默认”供应商。
  • 记录一次性导入状态,后续编辑、重命名或删除后不重复补回;保留已有供应商选择、总开关和旧配置。
  • 使用当前上游的身份采纳与回填校验;托管代理来源复用已有供应商的真实上游,避免代理自环。
  • 官方登录快照保留自身模型配置,前端通过现有文件编辑路径处理。
  • 导入只写供应商存档,不改 live config.toml、auth.json;实际应用沿用既有供应商切换流程。

验证

基于上游 45f1c151,Windows 隔离 worktree:

  • cargo test -p codex-plus-core --test local_config_provider --test relay_switch --test relay_config_safety --locked --offline:分别 8、18、23 项通过。
  • npm test:549 passed,1 项既有 skipped。
  • cargo check --workspace --locked --offline、npm run check、npm run vite:build、git diff --check HEAD 通过。
  • 临时目录回归覆盖 API/官方配置、缺少文件、损坏 TOML、旧凭据、已有选择、编辑和删除后的幂等、托管代理来源、切换后恢复本机 API 和官方配置。

未运行完整工作区测试和 clippy,也未进行桌面原生启动、真实登录账号及 macOS/Linux 验证。上游已有全仓格式差异,此 PR 保留相关文件的现有格式。没有读取或修改真实用户的凭据与会话数据。

@BigPizzaV3

Copy link
Copy Markdown
Owner

当前 PR 没有任何可用的 CI check。请补跑 Windows artifacts 和 macOS DMG CI 后再继续审核,重点确认首次导入、删除/重命名、无效 config 和 auth 信息脱敏路径。

@nk33-dev

Copy link
Copy Markdown
Author

已按要求对当前 head efa2498f 在 fork 中手动运行同一份 PR build artifacts workflow:

相关回归覆盖首次导入、编辑或删除后不重复导入、无效 config 不写入完成标记、已有默认项/旧凭据兼容、切换离开再切回时恢复 config 与 auth 快照。上游自动 pull_request run 仍处于 fork 审批等待状态,上述链接是当前 head 的手动 dispatch 结果。

@nk33-dev
nk33-dev force-pushed the codex/local-config-provider branch from efa2498 to 419c603 Compare October 14, 2026 01:36
@nk33-dev

nk33-dev commented Oct 14, 2026 •

Copy link
Copy Markdown
Author

已将当前 PR 迁移到 Codex++ 1.8.0 最新 main f6092f29,当前 head 为 419c603e,GitHub 已重新计算为可合并,无文件冲突。

首次导入、无效配置、切换恢复和旧配置兼容回归通过。

上游自动 workflow 仍需维护者批准;以上是同一 workflow 对当前 head 的手动 dispatch 结果。

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants