Skip to content

feat(providers): 支持命名 API Key 管理与切换 - #2514

Open
nk33-dev wants to merge 2 commits into
BigPizzaV3:mainfrom
nk33-dev:codex/named-api-keys
Open

nk33-dev wants to merge 2 commits into
BigPizzaV3:mainfrom
nk33-dev:codex/named-api-keys

Conversation

@nk33-dev

Copy link
Copy Markdown

问题

同一供应商的主账号、备用账号或不同权限 Key 需要分别建立供应商,重复维护相同 URL、模型与请求设置。

改动

  • 普通 API 供应商支持多个命名 Key,保存 ID、名称和当前选择,旧单 Key 配置迁移为“默认”项。
  • 供应商详情可添加、编辑、选择和删除 Key;添加备用项不自动切换,列表保留至少一项。密码输入、键盘操作、当前选择状态和窄窗口布局沿用现有控件。
  • 当前 Key 通过原有配置生成进入 auth.json 和 provider token;保存正在使用的供应商沿用现有保存/重启确认流程。
  • 模型请求使用同一当前 Key;显式采纳另一 live 身份时,Key 列表随导入身份重建,不借用原供应商凭据。
  • 注入页设置桥接删除整个 apiKeys 数组,不向用户脚本下发备用密钥。

聚合供应商继续由成员定义。此 PR 不引入运行时免重启认证、自动轮换、Key 用量统计或新的磁盘加密格式;凭据沿用上游现有存储方式。

验证

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

  • cargo test -p codex-plus-core --test named_api_keys --test relay_switch --test relay_config_safety --lib --locked --offline:Core lib 707 passed / 3 项既有 ignored;新增 Key 测试 3 passed;切换 18 passed;配置安全 23 passed。
  • npm test:553 passed,1 项既有 skipped。
  • cargo check --workspace --locked --offline、npm run check、npm run vite:build、git diff --check HEAD 通过。
  • 回归覆盖旧 Key 迁移、去重与无效选择回退、当前项同步、空 Key 不借用其他凭据、设置保存读取与工具分片、备用 Key 桥接剥除、既有供应商切换及身份隔离。

未运行完整工作区测试和 clippy,也未进行真实供应商请求、桌面原生 UI 验收或 macOS/Linux 验证。上游已有全仓格式差异,此 PR 保留相关文件的现有格式。所有测试凭据均为临时夹具。

@BigPizzaV3

Copy link
Copy Markdown
Owner

当前 PR 没有任何可用的 CI check。请补跑 Windows artifacts 和 macOS DMG CI 后再继续审核,重点确认命名 API Key 持久化、active key 切换、删除/重命名及 bridge 脱敏路径。

@nk33-dev

Copy link
Copy Markdown
Author

已补齐 RelayProfile 新字段在 launcher 测试夹具中的初始化,当前 head 为 c3199bda。该提交本地验证:

  • launcher:98 passed
  • named API keys:3 passed
  • bridge 脱敏:settings_bridge_never_returns_named_key_lists passed

当前 head 的完整构建结果:

全量前端与 workspace tests 同时覆盖命名 Key 迁移/持久化、active key 切换、列表删除/重命名共用的更新路径,以及 bridge 不返回命名 Key 列表。上游自动 pull_request run 仍处于 fork 审批等待状态,上述链接是当前 head 的手动 dispatch 结果。

@nk33-dev
nk33-dev force-pushed the codex/named-api-keys branch from c3199bd to 300ab01 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 为 300ab01d,GitHub 已重新计算为可合并,无文件冲突。

命名 Key 持久化、切换、launcher 与 bridge 脱敏回归通过。

上游自动 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