Skip to content

新增成员账号体系并收敛单人管理员模式导航#225

Merged
qxcnm merged 10 commits into
qxcnm:mainfrom
KilimiaoSix:feature-account-manager
May 15, 2026
Merged

新增成员账号体系并收敛单人管理员模式导航#225
qxcnm merged 10 commits into
qxcnm:mainfrom
KilimiaoSix:feature-account-manager

Conversation

@KilimiaoSix
Copy link
Copy Markdown
Contributor

@KilimiaoSix KilimiaoSix commented May 14, 2026

背景

这个 PR 将 feature-account-manager 分支提交到 upstream/main。本次变更范围较大,核心目标是补齐 CodexManager 的成员账号体系、额度与模型组管理、成员视角能力,并根据 OpenSpec 变更 hide-account-system-navigation-in-single-admin-mode 收敛单人管理员模式导航:none / password 模式作为单人管理员模式,不再暴露成员账号体系入口;accounts 模式保持成员账号体系和成员行为。

由于本次变动涉及前端导航、Web 登录模式、成员账号、API Key 归属、模型组、额度分发、仪表盘、请求日志和数据库迁移,建议维护者先发布测试版或预发布版本,让真实部署用户验证升级、登录模式切换、账号池与平台 Key 工作流,再进入稳定版发布。

主要变更

  • 新增 CodexManager 成员账号体系:管理员/成员角色、当前会话、用户列表、钱包/额度分发、成员自助视角。
  • 新增账号管理页面 /account-manager,支持成员账号管理、余额查看与充值等账号体系操作。
  • 新增模型组页面 /model-groups,支持将平台模型与成员可见模型组关联。
  • 调整顶层导航契约,前端 Shell 统一按 role + mode 判断可见路由:
    • none / password 单人管理员模式隐藏 /account-manager/model-groups
    • none / password 仍保留 OpenAI 上游账号池 /accounts、聚合 API、平台模型、平台密钥、日志、设置、插件和赞助入口。
    • accounts 管理员继续显示成员账号与模型组入口。
    • accounts 成员保持成员自助导航。
  • 调整 /apikeys 平台密钥页:
    • 单人管理员模式继续可用平台 Key 管理。
    • 单人管理员模式隐藏成员归属列和 API Key 编辑弹窗中的归属成员选择器。
    • accounts 模式下保留成员归属列、归属选择器和 owner 保存逻辑。
  • 新增管理员/成员仪表盘与用量分析能力。
  • 扩展模型管理、模型来源映射、聚合 API supplier models、请求日志路由明细等能力。
  • 增加账号状态原因展示:对 refresh token 失效、用量接口 401/403、额度耗尽、工作区停用等原因给出可读提示,并保留原始 reason code 供排障。
  • 补充 OpenSpec 变更文档:hide-account-system-navigation-in-single-admin-mode

数据与后端

  • 新增/扩展数据库迁移,覆盖成员账号体系、模型来源映射、聚合 API supplier models、请求日志路由详情、模型组等表结构。
  • 新增/扩展 service RPC、Tauri 命令和 Web RPC 映射,覆盖 account manager、model groups、dashboard、quota、API Key owner 等接口。
  • Web auth mode 现在区分 nonepasswordaccounts,并由 session 驱动前端导航与成员行为。

验证

已在本地执行:

  • pnpm run test:runtime
    • 56 tests,56 passed,0 failed
  • node --test tests/top-level-routes.test.mjs
    • 4 tests,4 passed,0 failed
  • pnpm run build:desktop
    • Next.js production build 成功,15/15 static pages generated
  • pnpm exec playwright test tests/accounts-status-reason.spec.ts
    • 1 test passed

同时用真实/临时运行实例验证过单人管理员模式导航收敛:

  • none 模式:隐藏成员账号与模型组入口,保留 OpenAI 账号池和平台密钥。
  • password 模式:登录后同样隐藏成员账号体系入口,退出/重新登录流程正常。
  • accounts 管理员:成员账号与模型组入口可见且可进入。
  • accounts 成员:保持成员导航,不显示管理员账号体系入口。
  • /apikeys 单人模式:平台 Key 可列表/创建/编辑,不显示成员归属列和归属选择器,保存不要求 owner。
  • /apikeys accounts 模式:成员归属列和归属选择器按账号体系规则显示。

发布建议

本 PR 是一组较大的产品能力和数据模型变更。建议 upstream 维护者先发布测试版本,重点验证:

  • 旧数据库升级迁移。
  • nonepasswordaccounts 三种 Web auth mode 的升级兼容性。
  • 现有 OpenAI 账号池与新增成员账号体系之间的导航语义。
  • 平台 Key owner、模型组、额度分发在真实多用户场景下的行为。
  • Tauri 桌面端与 codexmanager-web / codexmanager-service 部署方式的一致性。

@KilimiaoSix KilimiaoSix changed the title Add account manager mode and single-admin navigation cleanup 新增成员账号体系并收敛单人管理员模式导航 May 14, 2026
@KilimiaoSix
Copy link
Copy Markdown
Contributor Author

关联 issue:#201

这条 PR 可以视为 #201 的阶段性实现,不建议自动关闭 issue,因为 #201 里还有卡密充值、项目维度、套餐/月度额度、风控提醒等更平台化的后续能力。

当前 PR 对 #201 的实现进度大致如下:

  • 已实现成员账号体系基础:管理员/成员角色、Web auth mode、当前会话、成员账号管理、成员自助视角。
  • 已实现平台 Key 归属基础:API Key 可以绑定成员 owner,成员模式下只暴露成员相关 Key/用量视角,管理员模式保留全局管理能力。
  • 已实现额度分发 MVP:成员钱包、管理员充值/调整、请求前余额检查、请求后按 usage 扣费、扣费明细与命中规则记录。
  • 已实现计费倍率 MVP:支持按模型、服务等级、用户、API Key、时间窗和优先级配置计费规则。
  • 已实现模型组/成员可见模型能力:新增 /model-groups,用于控制成员可用模型范围。
  • 已实现管理员/成员仪表盘与用量视图,补充请求日志与路由明细能力。
  • 已按 OpenSpec 补充 single-admin 模式导航收敛:none / password 作为单人管理员模式时隐藏成员账号体系入口,accounts 模式保持成员账号体系入口。

仍未覆盖或需要后续继续拆分的范围:

  • 卡密充值、卡密批次、兑换记录和卡密 hash 存储尚未实现。
  • 项目维度 owner、项目空间、团队空间暂未实现,本 PR 主要落在用户维度。
  • 更严格的流式请求额度预冻结、失败退款、并发/限流策略还需要继续加强。
  • 套餐、月度额度、余额过期、报表导出、异常消耗提醒等 Phase 4 能力仍未覆盖。

因此这条 PR 更适合作为 #201 的 Phase 1 + 部分 Phase 2 落地版本,后续可以继续围绕卡密、项目维度和更严格结算策略拆分 PR。

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