feat(provider): support Codex subscriptions with ChatGPT sign-in (#2513)

* feat(provider): support Codex subscriptions with ChatGPT sign-in

* style: format Codex live integration test

* fix(provider): preserve Codex identity in temporary model tests

* fix(web): portal provider selector without dialog overflow

* fix(web): allow native scrolling in provider dropdown

* fix(provider): surface safe Codex quota and upstream errors

* fix(web): provide reliable Codex copy feedback in dialogs

* feat(provider): confirm cascade deletion from edit dialog

* fix(persistence): discard connections after failed commit

* fix(web): polish provider loading and confirmation motion

---------

Co-authored-by: dadachann <185672915+dadachann@users.noreply.github.com>
This commit is contained in:
Hyu
2026-09-06 23:31:02 +08:00
committed by GitHub
parent ec63978ecf
commit 0f216a0d4d
52 changed files with 5490 additions and 360 deletions
+33
View File
@@ -172,6 +172,37 @@ const zhHans = {
help: '查看帮助文档',
},
models: {
codex: {
account: 'ChatGPT 订阅',
description:
'使用 ChatGPT 账号登录。订阅权限与 OpenAI API 计费相互独立,可用模型和使用额度取决于你的订阅方案。',
disconnected: '未连接',
loading: '正在检查连接…',
starting: '正在开始登录…',
pending: '等待授权',
connected: '已连接',
expired: '登录已过期,请重试以获取新验证码。',
error: '无法登录,请检查网络连接后重试。',
canceling: '正在取消登录…',
saveAndSignIn: '保存并登录',
done: '完成',
instructions:
'在 OpenAI 页面输入此验证码,登录完成前请保持此对话框打开。',
copyCode: '复制验证码',
copied: '已复制',
copyManually: '请选中并手动复制验证码。',
continueAtOpenAI: '前往 OpenAI 继续',
expiresAt: '验证码将于 {{time}} 过期。',
retrying: '连接中断,正在自动重试…',
cancelSignIn: '取消登录',
tryAgain: '重试',
signIn: '登录',
reconnect: '重新连接',
disconnect: '断开连接',
disconnectConfirm:
'断开此供应商的连接?重新登录前,其模型将无法使用。此操作不会取消你的 ChatGPT 订阅。',
confirmDisconnect: '确认断开',
},
title: '模型配置',
description: '配置和管理可在流水线中使用的模型',
createModel: '创建对话模型',
@@ -302,6 +333,8 @@ const zhHans = {
providerSaveError: '保存供应商失败:',
providerDeleted: '供应商已删除',
providerDeleteError: '删除供应商失败:',
deleteProviderCascadeConfirmation:
'确定删除此供应商及其包含的所有模型吗?此操作不可逆,无法撤销。',
deleteProviderConfirmation: '你确定要删除这个供应商吗?',
loadError: '加载数据失败',
chat: '对话',