chore(release): v3.21.0

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Zyy
2026-10-07 02:49:11 +08:00
co-authored by Codex
parent 693025afa4
commit 128ced4093
3 changed files with 23 additions and 27 deletions
@@ -4,8 +4,8 @@
"version": 3,
"replacement_version": 4,
"introduced_in": "3.20.0",
"last_counted_in": "3.20.0",
"remaining_releases": 7,
"last_counted_in": "3.21.0",
"remaining_releases": 6,
"migration": "将执行设置和来源中的 disable_fast 改为 fast_mode,使用 default、enabled、disabled 三态,并将 middleware 声明升级到 v4"
},
{
@@ -13,8 +13,8 @@
"version": 1,
"replacement_version": 2,
"introduced_in": "3.20.0",
"last_counted_in": "3.20.0",
"remaining_releases": 7,
"last_counted_in": "3.21.0",
"remaining_releases": 6,
"migration": "使用新版 SDK 读取 fast_mode 三态,并将 upstream_adapter 声明升级到 v2"
}
]
+18 -22
View File
@@ -1,28 +1,24 @@
# v3.20.0
# v3.21.0
## 功能改进
## 新增
- 新增 Codex Live 语音通话代理,支持 OAuth 账号的通话创建、sideband WebSocket 与挂断;创建时沿用 Client Key 的账号范围和模型权限,后续控制固定使用创建通话的账号
- 统一同一对话的账号绑定:根线程、后代线程及可关联的 Search、Images、Live 创建请求共享当前账号;根线程保留既有重试与换号策略,后代线程只排队等待并跟随根线程迁移,不自行换号。官方 Images 通过已观测的 Responses `turn_id` 关联会话,未知轮次不推测归属;插件显式选号沿用原有行为
- 分组 Fast 策略新增「默认/开启/关闭」三种模式,作用于 OpenAI Responses;多分组冲突时关闭优先,其次开启,默认跟随客户端
- 管理端与 Key 用量页新增性能列,展示首字等待和输出吞吐;统一 Fast 档位的黄色标识
- 调度新增单请求换号次数限制,最多换号 3 次;OAuth 刷新与额度观测错峰执行,客户端身份支持终端类型和自动版本滞后配置
- 插件版本或能力不匹配时持续显示兼容性提醒,保留启用配置并允许尝试启动;系统升级与回滚不再因兼容性提醒批量停用插件
- 新增可选的 Linux/glibc 小内存优化配置,通过 `GLIBC_TUNABLES` 调整空闲内存回收,默认关闭
- OpenAI 账号亲和支持宽松和严格两种模式:默认宽松,允许子代理按模型权限、可用性和容量独立分流;严格模式保持同一会话共用账号
- 设置中可调整账号绑定保留时长和单请求最大换号次数,默认分别为 24 小时和 3 次,保存后对新请求生效
- 管理员使用管理页面时自动续期登录会话,并发请求共用会话恢复结果,临时网络或服务故障不再直接清除登录状态
- Codex Desktop 客户端画像支持填写系统版本,并在预览中展示实际出站值
## 问题修复
## 修复与改进
- 修复同一会话并发首次请求可能分配到不同账号,以及旧请求完成后覆盖新账号绑定的问题;后代线程等待根线程首次认领,账号忙碌或不可用时沿用有界排队
- 移除模型请求默认 600 秒总执行时限,避免长任务被固定时限中断;显式请求截止时间与上游传输空闲超时仍生效,并修复取消等待者释放不及时造成的资源积累
- OpenAI 重试正确遵循 `Retry-After` 的秒数、HTTP 日期与零延迟,不再被本地退避上限截断;`flex_unavailable` 保留原始拒绝,不自动重试或冷却账号
- Live 通话固定创建时的客户端身份画像,后续连接和挂断使用当前凭据及出站代理,避免配置变更混用画像
- 修复长代理出口 IP 溢出;图表时间标签不再附加时区偏移,保持展示简洁
- 错误排查保留本地原因链、上游错误正文和附属清理失败,避免重试与错误包装丢失底层原因;诊断导出保留受控的失败分类
- 日志与请求观测使用有界非阻塞写入,并为失败记录预留容量,减少日志拥堵对请求的影响;文件日志写入缺口通过健康状态报告
- 统一首 token 耗时与请求总耗时的计时基准,减少请求副本驻留并优化 XZ 缓冲分配
- 修复账号订阅名称过长时的布局溢出
- 收敛后端设置、观测及共享业务模型的重复声明和校验,明确管理模型、请求策略与存储转换的职责
## 升级说明
## 升级事项
- 官方 `v3.19.0` 可通过管理端在线更新,安装后重启生效,原有 Compose 和配置文件继续使用;启动时自动执行 `0022_refresh_margin_and_group_fast_mode.sql`,已发布迁移保持不变,升级前请备份数据库
- 已在源码部署中执行过原 `0022_narrow_refresh_margin.sql` 或 `0023_group_fast_mode.sql` 的实例,与本次合并后的迁移历史不兼容,不适用上述直接升级路径
- OAuth 刷新提前量默认由 3,600 秒调整为 300 秒,现有值等于旧默认 3,600 秒时一并迁移,其他自定义值保持不变
- 分组管理 API 的 `disableFast` 替换为 `fastMode`,取值为 `default`、`enabled`、`disabled`;已有禁用设置迁移为 `disabled`,其他分组迁移为 `default`,自定义管理客户端需同步字段
- 使用新版 `compose.yaml` 时,须在现有 `config.yaml` 的 `services` 下合并示例中的 `app-runtime.environment.GLIBC_TUNABLES: ''` 配置,即使不开启小内存优化也需保留此桥接段;保留原有凭据配置,修改启动环境后重建应用容器
- 插件 `middleware v3` 与 `upstream_adapter v1` 进入弃用窗口,当前仍可使用;插件作者可分别迁移至 `middleware v4` 与 `upstream_adapter v2`
- 从正式版 v3.20.0 升级时自动应用 `0023_error_details_and_account_affinity.sql`,保留已有错误文本和运行设置,并补齐新增设置默认值
- 默认账号亲和改为宽松;需要继续让子代理跟随根会话账号的实例,应在设置中选择严格模式
- 管理员原有 `admin.session_ttl_minutes` 配置继续作为不活动期限;新增 `admin.session_absolute_ttl_minutes`,省略时为 30 天。配置模板的不活动期限为 7 天,已有配置不会被自动改写;旧会话重新登录后应用续期策略,密钥身份仍使用固定有效期
- 自行调用管理 API 的客户端需将运维错误字段 `rawUpstreamError` 改为 `errorDetails`;整体保存运行设置时需包含 `openaiAccountAffinity`、`openaiSessionAffinityTtlHours` 和 `maxAccountRotations`。诊断快照的 `schemaVersion` 升为 2,管理端导出诊断包升为 3
- 已在源码部署中执行原 `0023_error_details.sql`、`0024_account_affinity.sql` 或 `0025_session_affinity_ttl.sql` 的数据库,与合并后的迁移历史不兼容,不适用上述直接升级路径;不要修改迁移校验和绕过检查
+1 -1
View File
@@ -1 +1 @@
version: "3.20.0"
version: "3.21.0"