chore(release): v3.20.0

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Zyy
2026-10-06 11:04:29 +08:00
co-authored by Codex
parent 7741503b03
commit 7940735866
3 changed files with 24 additions and 15 deletions
@@ -3,8 +3,8 @@
"capability": "middleware",
"version": 3,
"replacement_version": 4,
"introduced_in": null,
"last_counted_in": null,
"introduced_in": "3.20.0",
"last_counted_in": "3.20.0",
"remaining_releases": 7,
"migration": "将执行设置和来源中的 disable_fast 改为 fast_mode,使用 default、enabled、disabled 三态,并将 middleware 声明升级到 v4"
},
@@ -12,8 +12,8 @@
"capability": "upstream_adapter",
"version": 1,
"replacement_version": 2,
"introduced_in": null,
"last_counted_in": null,
"introduced_in": "3.20.0",
"last_counted_in": "3.20.0",
"remaining_releases": 7,
"migration": "使用新版 SDK 读取 fast_mode 三态,并将 upstream_adapter 声明升级到 v2"
}
+19 -10
View File
@@ -1,19 +1,28 @@
# v3.19.0
# v3.20.0
## 功能改进
- 新增统一部署时区:管理端与 Key 用量页的时间展示、自然日筛选、额度窗口、账号预热、备份计划和日志轮转均遵循 `host.timezone`,默认 `Asia/Shanghai`
- 在设置页「并发策略」中新增「自动审批预留并发」,为 Codex Guardian 请求保留账号名额;开启后,自动审批请求在账号队列中优先等待,设置保存后对新请求生效,默认关闭
- 合并并发控制与排队设置为「并发策略」,并将「调度策略」移到设置页顶部
- 在账号额度重置弹窗中展示 Codex 点数余额,区分无限、零余额和上游未提供余额,并保留小数精度;点数与主动重置卡分别展示
- 新增 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` 调整空闲内存回收,默认关闭
## 问题修复
- 账号预热通过运行设置中的持久化执行游标去重,避免重启或时钟回拨后重复执行已消费的时段;夏令时缺失时刻跳过,重复时刻只执行较早一次
- 修复关闭弹窗时内容提前清空或切换导致的闪动,关闭动画期间保持原有内容
- 修复同一会话并发首次请求可能分配到不同账号,以及旧请求完成后覆盖新账号绑定的问题;后代线程等待根线程首次认领,账号忙碌或不可用时沿用有界排队
- 移除模型请求默认 600 秒总执行时限,避免长任务被固定时限中断;显式请求截止时间与上游传输空闲超时仍生效,并修复取消等待者释放不及时造成的资源积累
- OpenAI 重试正确遵循 `Retry-After` 的秒数、HTTP 日期与零延迟,不再被本地退避上限截断;`flex_unavailable` 保留原始拒绝,不自动重试或冷却账号
- Live 通话固定创建时的客户端身份画像,后续连接和挂断使用当前凭据及出站代理,避免配置变更混用画像
- 修复长代理出口 IP 溢出;图表时间标签不再附加时区偏移,保持展示简洁
## 升级说明
- 从 `v3.18.3` 升级时自动执行新增的 `0021_runtime_scheduling.sql`,在现有运行设置表中增加预热游标和自动审批预留并发字段;已发布迁移保持不变,升级前请备份数据库
- 可在 `deploy/config.yaml` 的 `host.timezone` 设置 IANA 时区,修改后重启生效;切换时区保留已开启额度窗口的边界与用量,备份计划从当前时刻重新计算后续任务
- 备份计划统一使用部署时区,管理 API 不再使用独立的 `scheduleTimezone` 字段;自定义管理 API 客户端更新运行设置时须包含 `openaiGuardianReservedConcurrency`,填写 `0` 可保持默认关闭状态
- 官方 `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`
+1 -1
View File
@@ -1 +1 @@
version: "3.19.0"
version: "3.20.0"