Releases: zyycn/codex-proxy-rs
Release list
v3.13.0
新增功能
- CCSwitch 导入会同时配置当前客户端密钥的日/周额度查询,展示总额、已用和剩余金额并默认每 30 分钟刷新;新增只读的
GET /v1/usage接口,查询不会调用上游、占用推理并发或产生使用记录 - 密钥使用统计页新增「关于」入口,客户端密钥持有者可查看当前版本号和提交号
- 管理端使用统计和 Dashboard 最近请求会在账号邮箱下显示账号的当前备注;同邮箱账号仍按内部账号 ID 区分,已删除账号的历史记录不会误关联备注
问题修复
- 在线更新改为后台任务,长时间下载不再受 HTTP 请求生命周期影响;页面刷新或响应丢失后可恢复查看运行状态,更新完成待重启时会阻止重复执行。没有可用更新时继续显示当前版本的发布说明和链接
- OpenAI 账号容量冷却只统计明确的过载拒绝,普通
5xx、未识别上游错误和invalid_prompt不再误触发冻结;流式invalid_prompt按请求错误处理 - 账号额度预测保留当前周期已记录的用量,只估算剩余容量;额度重置后重新建立采样,避免把前一周期用量混入新周期。重新启用已停用账号时保留已有额度、凭据错误和冷却状态
- 修复第三方客户端或跨客户端继续会话时,OpenAI OAuth 上游拒绝 reasoning 历史的问题:HTTP 与 WebSocket 会移除不受支持的
status,并在已有加密历史时去除冗余明文内容,其他输入保持不变
体验优化
- 长上下文计费详情改为主题一致的黄色提示图标,并补充悬停说明和无障碍标签
- 密钥额度文案统一使用「周」,CCSwitch 中不限额密钥明确显示「不限额」
升级说明
- 从 v3.12.1 升级不新增数据库迁移,也无需调整配置
📥 安装
Docker 部署:
# 从 GitHub 容器镜像仓库拉取
docker pull ghcr.io/zyycn/codex-proxy-rs:3.13.0请从本版本附件下载 compose.yaml 和 config.example.yaml。Compose 默认固定到本版本镜像;升级前请对比模板与已有配置。
手动下载:
请从下方附件中下载适合当前平台的归档包。
发布归档提供 GitHub 构建产物证明。Docker 镜像附带软件物料清单(SBOM)、构建来源证明和 cosign 无密钥签名。
📚 文档
What's Changed
- fix(update): run updates in background and retain release notes by @zyycn in #188
- fix(openai): normalize rejected reasoning replay fields by @zyycn in #201
- feat(key-usage): add API key budgets to CC Switch imports by @zyycn in #202
Full Changelog: v3.12.1...v3.13.0
v3.12.1
新增功能
- OpenAI 与 xAI 客户端身份统一在「系统设置 → 上游配置」管理。xAI 支持跟随最新 Grok CLI 版本或固定版本、预览请求身份,并可为 API 密钥单独设置覆盖
- 密钥使用统计页新增「密钥配置」,持有者登录后可复制当前密钥的 Codex 配置,选择是否启用 WebSocket,或唤起 CCSwitch 导入;管理员密钥页复用同一配置弹窗
- 表格列支持拖动排序和方向键调整,列顺序与显隐偏好保存在当前浏览器,可一键恢复默认设置
- 管理端用量及错误记录显示关联密钥的当前名称;费用明细新增「长上下文」标识,按请求实际采用的价格区间记录,不按当前价格倒推历史标识
问题修复
- OpenAI 可选账号全部额度耗尽时,HTTP 与 WebSocket 返回
429 / usage_limit_reached,让 Codex 客户端停止本轮自动重试;其他可用 Provider 和可安全恢复的续写仍按原有规则尝试恢复 - 修复 OpenAI 额度窗口到期后仍显示旧用量的问题:有用量的正常账号也会在重置时间两分钟后主动复核,已耗尽账号继续周期复核以发现上游提前重置;仅在取得上游结果后更新额度状态
- Responses 输入中显式指定
type: "message"、role: "system"的消息会转换为 Codex 接受的developer,保留消息内容、顺序和其他字段,HTTP/SSE 与 WebSocket 使用一致规则 - 修复在线更新的发行通道筛选:正式版只接收同一大版本内更新的正式版,alpha、beta、rc 仅在同一目标版本内向前晋级,exp 仅接收同一轮实验的后续编号;不支持更新的构建不再显示可用更新,检查失败单独提示
- 更新 OpenAI TLS 依赖和握手基线,与 Codex Desktop 26.915 所用版本对齐
体验优化
- 改善浅色主题中表格、输入框与按钮的层次和对比度,统一悬停及焦点反馈,优化表格行过渡和列拖动高亮
- 调整密钥额度、账号用量、使用统计与备注的布局和文字层级,精简周额度标签
升级说明
- 从 v3.11.0 升级不新增数据库迁移,已发布的
0001~0016SQL 及冻结清单保持不变 - 如需保留 OpenAI 数据驻留约束,请在启动新版本前将
openai.wire_profile.residency移到openai.residency。旧openai.wire_profile和xai.wire_profile不再读取;数据库中已有的 OpenAI 身份保留,原先在 YAML 中定制的 xAI 身份需在管理端重新设置,未设置时使用内置 Linux x86_64 身份并跟随最新版本 - 旧环境变量
CPR_UPDATE_CHANNEL不再参与版本选择,可移除;升级后的发行通道由当前版本号决定。实验版切换正式版仍需使用独立数据库迁移业务数据,不能直接复用实验数据库
v3.12.1 补充更新
- 修复 OpenAI Responses 请求将
input设为字符串时返回Input must be a list的问题:自动展开为一条用户文本消息,HTTP/SSE 与 WebSocket 使用一致规则 - 系统概览不再显示「密钥名称」列,使用统计保留该列并缩小列宽;增强平台分段选择器的背景对比度
- 密钥使用趋势的空状态统一使用基础组件,调整「并发上限」和「每分钟请求」的图标与文字对齐
- 创建和编辑密钥时,将 OpenAI 与 xAI 上游身份收拢到同一区域,平台切换与「全局配置 / 独立配置」放在同一行,减少表单占用空间;两个平台仍各自保留配置
- 从 v3.12.0 升级不新增数据库迁移,也无需调整配置
📥 安装
Docker 部署:
# 从 GitHub 容器镜像仓库拉取
docker pull ghcr.io/zyycn/codex-proxy-rs:3.12.1请从本版本附件下载 compose.yaml 和 config.example.yaml。Compose 默认固定到本版本镜像;升级前请对比模板与已有配置。
手动下载:
请从下方附件中下载适合当前平台的归档包。
发布归档提供 GitHub 构建产物证明。Docker 镜像附带软件物料清单(SBOM)、构建来源证明和 cosign 无密钥签名。
📚 文档
What's Changed
New Contributors
Full Changelog: v3.12.0...v3.12.1
v3.12.0
新增功能
- OpenAI 与 xAI 客户端身份统一在「系统设置 → 上游配置」管理。xAI 支持跟随最新 Grok CLI 版本或固定版本、预览请求身份,并可为 API 密钥单独设置覆盖
- 密钥使用统计页新增「密钥配置」,持有者登录后可复制当前密钥的 Codex 配置,选择是否启用 WebSocket,或唤起 CCSwitch 导入;管理员密钥页复用同一配置弹窗
- 表格列支持拖动排序和方向键调整,列顺序与显隐偏好保存在当前浏览器,可一键恢复默认设置
- 管理端用量及错误记录显示关联密钥的当前名称;费用明细新增「长上下文」标识,按请求实际采用的价格区间记录,不按当前价格倒推历史标识
问题修复
- OpenAI 可选账号全部额度耗尽时,HTTP 与 WebSocket 返回
429 / usage_limit_reached,让 Codex 客户端停止本轮自动重试;其他可用 Provider 和可安全恢复的续写仍按原有规则尝试恢复 - 修复 OpenAI 额度窗口到期后仍显示旧用量的问题:有用量的正常账号也会在重置时间两分钟后主动复核,已耗尽账号继续周期复核以发现上游提前重置;仅在取得上游结果后更新额度状态
- Responses 输入中显式指定
type: "message"、role: "system"的消息会转换为 Codex 接受的developer,保留消息内容、顺序和其他字段,HTTP/SSE 与 WebSocket 使用一致规则 - 修复在线更新的发行通道筛选:正式版只接收同一大版本内更新的正式版,alpha、beta、rc 仅在同一目标版本内向前晋级,exp 仅接收同一轮实验的后续编号;不支持更新的构建不再显示可用更新,检查失败单独提示
- 更新 OpenAI TLS 依赖和握手基线,与 Codex Desktop 26.915 所用版本对齐
体验优化
- 改善浅色主题中表格、输入框与按钮的层次和对比度,统一悬停及焦点反馈,优化表格行过渡和列拖动高亮
- 调整密钥额度、账号用量、使用统计与备注的布局和文字层级,精简周额度标签
升级说明
- 从 v3.11.0 升级不新增数据库迁移,已发布的
0001~0016SQL 及冻结清单保持不变 - 如需保留 OpenAI 数据驻留约束,请在启动新版本前将
openai.wire_profile.residency移到openai.residency。旧openai.wire_profile和xai.wire_profile不再读取;数据库中已有的 OpenAI 身份保留,原先在 YAML 中定制的 xAI 身份需在管理端重新设置,未设置时使用内置 Linux x86_64 身份并跟随最新版本 - 旧环境变量
CPR_UPDATE_CHANNEL不再参与版本选择,可移除;升级后的发行通道由当前版本号决定。实验版切换正式版仍需使用独立数据库迁移业务数据,不能直接复用实验数据库
📥 安装
Docker 部署:
# 从 GitHub 容器镜像仓库拉取
docker pull ghcr.io/zyycn/codex-proxy-rs:3.12.0请从本版本附件下载 compose.yaml 和 config.example.yaml。Compose 默认固定到本版本镜像;升级前请对比模板与已有配置。
手动下载:
请从下方附件中下载适合当前平台的归档包。
发布归档提供 GitHub 构建产物证明。Docker 镜像附带软件物料清单(SBOM)、构建来源证明和 cosign 无密钥签名。
📚 文档
What's Changed
- feat(settings): unify OpenAI and xAI client identities by @zyycn in #174
- chore(deps): align TLS with Codex Desktop 26.915 by @zyycn in #175
- feat(usage): show key names and long-context billing badges by @chenyanshan in #171
- fix(openai): refresh expired quota windows after reset grace by @2han9wen71an in #170
- fix(openai): normalize system messages for Codex by @helen-frank in #172
New Contributors
- @helen-frank made their first contribution in #172
Full Changelog: v3.11.0...v3.12.0
v3.11.0
新增功能
- 新增模型定价管理,支持自定义单价、倍率和手动同步来源价目,可预览差异并勾选需要同步的模型。支持清除人工覆盖、删除非内置模型价格,内置价格仅允许覆盖。价格按请求保存快照,后续改价不重算历史费用
- 支持在管理端配置 OpenAI 客户端身份,选择 CLI 或 Desktop 预设、跟随最新版本或自定义版本,API 密钥可单独覆盖通用配置
- 支持在「系统设置 → 安全与访问」修改管理员密码,验证当前密码后保存,已登录的管理员需使用新密码重新登录
- API 密钥支持手动清零日额度、7 日额度或全部已用金额,原重置时间保持不变
问题修复
- 自定义 OpenAI 中转缺少额度、订阅资料或额度重置接口并返回 404 时,账号辅助请求会尝试官方端点,继续沿用账号的出站代理设置,不改变推理请求地址
- 最终返回的
server_is_overloaded、slow_down按客户端可重试的server_error/ 503 交付,同时保留内部错误分类。提高明确容量拒绝对 Smart 调度的惩罚权重,普通错误、时间衰减与会话亲和规则保持不变 - 修复取消后的 OpenAI 文件读取在服务关闭期间仍继续等待的问题
- 修复表格列显示或隐藏后横向滚动状态未及时更新的问题,缩小使用统计中模型与推理强度的间距
- 更新说明使用独立 Markdown 样式区域,修复列表圆点缺失并避免与页面样式互相影响
体验优化
- 系统设置重新归类为「网关调度 / 上游配置 / 模型定价 / 安全与访问 / 数据备份」,按需加载对应内容,模型映射归入上游配置
- Fast 模式统一由密钥绑定分组控制,移除重复的全局开关,分组使用「默认 / 关闭」分段选择
- 简化客户端身份配置,自定义版本集中展示可编辑参数,加载时使用骨架屏稳定布局
- 统一密钥与代理名称展示,优化额度重置、价格同步和批量清除弹窗,精简提示文案与操作按钮
升级说明
- 从 v3.10.0 升级会自动执行新增迁移
0016,加入客户端身份与模型定价字段,并删除全局 Fast 字段。已发布的0001~0015保持不变,账号、分组及历史使用记录保留。升级前请停止旧应用并备份数据库,迁移后不要直接运行旧二进制,回退需恢复备份 - 若原先启用了全局 Fast 禁用,请在升级前将需要限制的分组设为「关闭」,并为未分组密钥绑定相应分组。外部运行设置请求移除
disableFast字段,分组接口仍保留该字段 - 本次合并了尚未正式发布的迁移。曾直接运行旧
main并执行原0016~0018的源码部署实例,需要先备份并核对数据库结构与迁移记录,不能直接套用正式版升级路径;从 v3.10.0 正式版升级不受此影响 - 升级后管理员需重新登录一次,API 密钥身份会话不受影响。模型价格用于本地费用估算和额度控制,不代表上游实际扣费
📥 安装
Docker 部署:
# 从 GitHub 容器镜像仓库拉取
docker pull ghcr.io/zyycn/codex-proxy-rs:3.11.0请从本版本附件下载 compose.yaml 和 config.example.yaml。Compose 默认固定到本版本镜像;升级前请对比模板与已有配置。
手动下载:
请从下方附件中下载适合当前平台的归档包。
发布归档提供 GitHub 构建产物证明。Docker 镜像附带软件物料清单(SBOM)、构建来源证明和 cosign 无密钥签名。
📚 文档
What's Changed
- feat(openai): add configurable upstream client identities by @zyycn in #156
- feat(pricing): add configurable model prices and manual catalog sync by @zyycn in #159
- feat(openai): fallback auxiliary account endpoints to official upstream on 404 by @2han9wen71an in #160
- feat(keys): add manual budget reset and compact row actions by @zyycn in #165
- feat(auth): add administrator password changes by @zyycn in #166
Full Changelog: v3.10.0...v3.11.0
v3.10.0-codex-anti-degradation.3
实验说明
Codex 降智缓解实验版,基于正式版 v3.10.0,面向希望体验 #144 中方案的用户。
本次接续 v3.10.0-exp.1,展示名称为 v3.10.0-codex-anti-degradation.3。
实验功能独立于主版本,真实上游的长时间效果仍在验证,不保证改善模型质量,也不承诺合入正式版。
本次变化
合入 #162,完善 State 重写的刷新、恢复与业务请求准入:
- 可配置分阶段重试:设置页可调整探针并发与轮间等待,默认 3 并发、6 秒,范围分别为 1~10 和 1~300 秒。每账号/模型前三轮固定为单探针、轮后等待 6 秒,第四轮起使用配置;手动与后台共用规则。
- 独立连接与 Header 准入:每个探针使用独立 HTTP/1.1 代理连接,仅接受 HTTP 200、原始长度恰为 292 字节、以
gAAAAA开头的 ASCII State Header。合法 Header 到达即关闭响应,不再等待完整 SSE;无效结果不写入缓存。 - Redis 恢复与按需刷新:按账号/模型保存票据,网关 TTL 为 60 分钟;重启不延长到期时间。仅对缺失、无效、过期或剩余不足 10 分钟的票据发起刷新,手动操作也跳过仍有效且未临期的模型。
- 缺票暂停接单:启用 State 重写的账号/模型缺少有效票据、鉴权绑定变化或 Redis 不可用时,不再直接向上游发送业务请求;有其他合格账号时继续选号。增加票据失效原因与选号排除日志,便于排查。
- 修复有效票据提前失效:票据改为绑定实际鉴权材料。普通 Cookie 写回、账号名称及调度设置修改不再使票据提前失效;真实鉴权变化拒绝旧票据与迟到探测结果,禁用或删除账号仍取消探测并清票。
- 改善后台调度:后台每账号每轮只发一批探针,最多两个账号同时刷新,避免某个账号持续失败阻塞后续账号;429 冷却仍按账号/模型独立保留。
安装与使用
docker pull ghcr.io/zyycn/codex-proxy-rs:3.10.0-exp.2- Docker 镜像支持 Linux amd64、arm64;二进制归档提供 Linux amd64、Linux arm64、macOS arm64,包含管理端静态资源。
- 从本页附件下载
compose.yaml、config.example.yaml和checksums.txt。Compose 已固定本版本镜像并合并隔离配置,使用独立项目名,管理端默认端口为8081。 - 首次安装使用独立目录、配置、PostgreSQL、Redis 和数据目录,按实验部署说明操作;文档命令中的示例版本请替换为本次
v3.10.0-exp.2。 - 功能默认关闭。先保存并测试动态代理,在设置页确认风险、启用全局开关,再逐账号选择重写模型;配置与边界见功能说明。
归档提供校验和与 GitHub 构建产物证明;镜像附带 SBOM、构建来源证明及 cosign 签名。
使用须知
- 升级前备份:本次新增
0017_session_rewrite_retry_policy.sql,为已有实验库增加并发数与重试间隔,默认 3/6,保留原有配置。上一实验版的 0001~0016 迁移保持不变。手动替换镜像或二进制;应用内一键更新禁用。 - 升级后的接单变化:启用范围内首次取得有效票据前,对应账号/模型暂停接单;若没有其他合格账号,请求可能返回 503。Redis 数据丢失后需重新获取票据,保持 Redis 数据卷和配置命名空间稳定。
- 刷新会产生真实调用:探针可能消耗上游额度并产生费用。手动刷新会持续重试失败模型,可停止刷新或关闭弹窗取消;独立连接不保证出口 IP 不重复,仍取决于代理池。
- 292 字节、ASCII 与前缀检查是实验准入规则,不证明票据完整性、上游有效期或模型质量。按账号/模型跨轮次覆盖 State 与官方按轮次隔离的合同存在已知偏离,真实业务兼容性仍需验证。
- 不与稳定实例共用数据库或数据目录,实验库不能原地降级回稳定版,也不能直接混用主分支同编号迁移。运行过早期 PR #151 迁移或其他预览版同编号迁移的源码实例,按部署说明核对历史;不要修改
_sqlx_migrations的 checksum 绕过校验。回退使用对应版本及升级前备份。 - 当前按单进程、单副本运行;Redis 持久化不提供跨副本探测去重。日志可能保留 State 原文,请限制访问和保留周期,不向公开反馈粘贴真实票据或认证信息。
- 本版本为 Pre-release,不设为 GitHub Latest,不覆盖 Docker
latest;稳定更新渠道不会提示本次实验升级,主动选择preview渠道的用户可能看到预发行。
反馈与致谢
欢迎在 #144 补充实际体验,注明版本、使用场景及观察结果,区分现象和推测;已有反馈请继续补充在原帖。
感谢 @chenyanshan 提供本次改进,以及 @Clarence12138 和参与讨论、测试的社区朋友。
v3.10.0-codex-anti-degradation.2
实验说明
Codex 降智缓解实验版,基于正式版 v3.10.0,面向希望体验 #144 中方案的用户。
本版本接续 v3.10.0-codex-anti-degradation.1,采用简短的 exp.N 命名;旧版本标签与产物保留。
实验功能独立于主版本,实际效果仍需使用反馈验证,不保证改善模型质量,也不承诺合入正式版。
本次变化
- 合入 #155:各模型独立刷新 State,成功后立即写入缓存;其他失败模型继续重试,互不等待。单模型前三轮各发起 1 个探针,之后每轮最多 3 个,接受首个成功结果并取消其余请求。
- 手动刷新实时显示逐模型结果,支持停止刷新、关闭弹窗及离开页面时取消未完成请求,保留已成功结果。
- State Header 按实验规则严格校验为 292 字节;长度不符时立即丢弃响应,不读取正文、不写缓存。通过长度检查后,仍需 HTTP 成功及完整响应事件才可缓存。
- 429 冷却按账号和模型隔离,遵守 Retry-After;取消刷新或配置失效不会清除冷却。失败不会延长旧 State 的 60 分钟有效期。
- 后台启动后执行一轮,每轮结束后随机等待 53~55 分钟;手动刷新不重置后台周期。
安装与使用
docker pull ghcr.io/zyycn/codex-proxy-rs:3.10.0-exp.1- Docker 镜像支持 Linux amd64、arm64;二进制归档提供 Linux amd64、Linux arm64、macOS arm64,包含管理端静态资源。
- 从本页附件下载
compose.yaml、config.example.yaml和checksums.txt。Compose 已固定本版本镜像并合并隔离配置,使用独立项目名,管理端默认端口为8081。 - 首次安装使用独立目录、配置、PostgreSQL、Redis 和数据目录,按实验部署说明操作。
- 功能默认关闭;启用及动态代理配置见功能说明。
归档提供校验和与 GitHub 构建产物证明;镜像附带 SBOM、构建来源证明及 cosign 签名。
使用须知
- 相对上一实验版未修改数据库迁移。升级已有实验实例前请备份,手动替换镜像或二进制;应用内一键更新禁用。
- 手动刷新中失败模型会持续重试,可停止刷新或关闭弹窗取消。后台按账号顺序处理,一个账号长期失败可能推迟后续账号刷新。
- 292 字节准入是当前实验规则,不是上游公开格式保证,也不是凭证完整性验证;上游行为变化可能使实验失效。
- 不与稳定实例共用数据库或数据目录,实验库不能直接降级回稳定版。运行过 PR #151 早期迁移的源码实例,需按部署说明核对重建与恢复边界。
- 本版本为 Pre-release,不设为 GitHub Latest,不覆盖 Docker
latest;稳定更新渠道不会提示本次实验升级,主动选择preview渠道的用户可能看到预发行。
反馈与致谢
欢迎在 #144 补充实际体验,注明版本、使用场景及观察结果,区分现象和推测;已有反馈请继续补充在原帖。
感谢 @chenyanshan 提供本次修复,以及 @Clarence12138 和参与讨论、测试的社区朋友。
v3.10.0-codex-anti-degradation.1
首个 Codex 降智缓解实验版,基于 v3.10.0,用于体验 #144 中讨论的方案。相关功能默认关闭,实际效果仍需验证,是否纳入主版本将结合反馈继续评估。
本次变化
- 引入 PR #151 的
X-Codex-Turn-State刷新、会话保活与动态代理能力,尝试缓解用户反馈的疑似风控和响应质量下降问题。
安装与使用
Docker: 支持 Linux amd64 / arm64。
docker pull ghcr.io/zyycn/codex-proxy-rs:3.10.0-codex-anti-degradation.1从本版本附件下载 compose.yaml 和 config.example.yaml,按照实验版部署说明安装并按需启用功能。附件中的 Compose 已配置独立项目名与端口,管理端默认端口为 8081。
二进制: 提供 Linux amd64、Linux arm64、macOS arm64 安装包,均包含管理端静态资源;同时运行多个实例时,请配置不同的监听端口。
附件提供 checksums.txt 与 GitHub 构建产物证明;Docker 镜像附带 SBOM、构建来源证明和 cosign 签名。
使用须知
- 使用独立的安装目录、配置、数据库和数据目录,并保留稳定版实例及数据备份。实验数据库不能直接降级为稳定版。
- 实际效果受上游行为影响,实验功能可能继续调整或停止维护。
- 本版本标记为预发行,不进入默认稳定更新渠道,也不覆盖 Docker
latest。实验版需手动更新。
反馈与致谢
欢迎在 #144 反馈适用场景、使用效果和遇到的问题,请勿附带账号令牌等敏感信息。
感谢 @chenyanshan 为 PR #151 投入的时间与贡献,也感谢 @Clarence12138 在 #144 提供问题与探索线索。
v3.10.0
新增功能
- 支持全局及分组「关闭 Fast」策略,将 OpenAI 的
priority/fast请求按普通档位处理。全局关闭后所有 Key 生效;未全局关闭时,仍遵循 Key 绑定分组的限制。默认不启用,不影响其他服务档位。 - Responses 请求解压上限支持在运行设置中调整,默认仍为 64 MiB,保存后对新请求生效。可按需接收更大的压缩请求体,调高上限也会增加内存占用。
- 出站代理支持分别探测并展示 IPv4、IPv6 出口,任一地址族探测成功即判定可用,不再依赖单一的
api64.ipify.org端点。 - OpenAI 原生续写遇到明确的账号额度耗尽、且尚未向客户端交付内容时,可返回
previous_response_not_found,让支持此机制的客户端重放完整历史并重新分配账号。原续写链不会直接跨账号重试,其他客户端需自行处理该恢复信号。
问题修复
- 修正模型映射后的本地费用估算:按实际发送模型计价,不再被上游返回的模型名称改写。用量记录分别展示请求、发送与上游返回模型,便于识别差异;上游返回名称仅作为观测信息。
- 改善 SOCKS5 代理协商兼容性,修复部分代理不接受分段协商写入导致的连接失败。
- 出站探测与账号绑定解耦:未测试或探测失败的代理仍可选择、授权及绑定,保留状态提示,由用户决定是否使用。实际请求仍走绑定代理,失败不会自动回退直连。
- 禁用账号仍可获取自己的模型目录,避免管理员连接测试因无可调度账号而失败;不会重新启用普通请求调度。
- OpenAI Responses 请求未提供
store时默认使用false,显式提供的值保持不变。 - 修复未携带桌面应用版本的 ChatGPT 远程 Desktop 会话被版本限制误拦截的问题;提供版本号时仍正常校验。
- 修复出站代理导入被拒绝后未及时释放预留锁,影响后续代理操作的问题。
体验优化
- 系统设置保留「运行设置 / 备份」布局,将并发、凭据刷新、请求排队等配置拆分为独立卡片;优化表单宽度、帮助提示和未保存状态,支持撤销修改。
- 统一账号导入与编辑弹窗宽度,优化模型限制分段选择器;修复下拉选项悬浮时列表意外滚动,重新授权时支持复制账号信息。
升级说明
- 从 v3.9.1 升级会自动执行
0012~0015四个新增迁移,保留旧账号、分组、代理与运行配置;已发布迁移文件保持不变。升级前请备份数据库。历史返回模型只回填已有明确记录,不从请求模型推断;代理的双栈地址字段在重新探测后填充。 - 自行调用
POST /api/admin/settings/update的客户端需要补传responsesMaxDecompressedBodyBytes,单位为字节,默认值为67108864;新版管理端已适配。新增disableFast字段可省略,省略时保留原值。
📥 安装
Docker 部署:
# 从 GitHub 容器镜像仓库拉取
docker pull ghcr.io/zyycn/codex-proxy-rs:3.10.0请从本版本附件下载 compose.yaml 和 config.example.yaml。Compose 默认固定到本版本镜像;升级前请对比模板与已有配置。
手动下载:
请从下方附件中下载适合当前平台的归档包。
发布归档提供 GitHub 构建产物证明。Docker 镜像附带软件物料清单(SBOM)、构建来源证明和 cosign 无密钥签名。
📚 文档
What's Changed
- fix(api): allow ChatGPT remote Desktop sessions without app versions by @zyycn in #133
- fix(openai): default missing downstream store to false by @zyycn in #134
- fix(ui): make reauthorization account copyable by @yertYang in #135
- fix(usage): bill sent models and show response model mismatches by @zyycn in #136
- feat(openai): recover quota-exhausted continuations through client replay by @zyycn in #140
- fix(settings): make Responses decompression limit configurable by @zyycn in #141
- fix(openai): coalesce SOCKS proxy negotiation writes by @haohex in #142
- fix(providers): let disabled accounts source their own model catalogs by @2han9wen71an in #143
- feat: add global and group controls to disable Fast by @chenyanshan in #146
- feat(proxies): support dual-stack exit probing and dual IP display by @2han9wen71an in #132
New Contributors
Full Changelog: v3.9.1...v3.10.0
v3.9.1
新增功能
- 支持上游 API Key 账号,可配置服务地址与传输方式,使用模型列表、连接测试和本地用量统计;支持手动添加及兼容格式的批量导入。请求与响应复用 OAuth 的现有透传链路,Responses、Images、独立 Search、Lite 和原生压缩的实际支持情况由上游决定;
- 批量导入改为后台任务,提供逐项进度、结果和停止待处理任务的入口;关闭页面后任务继续执行。任务队列保存在内存中,重启服务前请等待导入结束,已成功导入的账号不受影响。
- 新增可选的账号容量冷却:容量类错误达到阈值后暂时停止调度,支持恢复探测与自适应并发下调;管理端展示冻结原因和恢复时间。自动冻结默认关闭,按需在运行设置中启用。
- 支持在管理端设置全局请求位置与时区,也可为出站代理单独配置。代理自定义值优先于全局设置,用于 OpenAI/Codex Responses 的环境日期、时区和 Web Search 位置,不改变实际出口 IP。
- 新增 Linux amd64/arm64 一键安装脚本,使用 Docker Compose 部署并生成初始配置。重复执行保留现有配置,已有实例升级仍按部署指南操作。
问题修复
- 修复 IPv6 出口的代理探测,识别本次连接实际使用的 IPv4 或 IPv6 地址。
- 修复二进制在线更新的前端资源目录选择,使更新与回滚使用服务实际提供的静态资源目录。
- OpenAI 额度更新时同步明确的套餐变化,避免管理端长期保留旧套餐信息。
- 手动禁用的账号仍可进行管理员连接测试,测试不会重新启用账号参与普通请求调度。
- 改善下游 SDK 和浏览器请求与 Codex 协议的兼容性,统一会话头别名,过滤不适用的请求头及顶层参数,并保留业务扩展和嵌套工具定义。
体验优化
- 账号与用量表格支持选择显示列、恢复默认配置,并在当前浏览器保存偏好。
- 优化添加账号时的服务商选择及额度预测提示,改善窄屏和键盘操作体验。
升级说明
- 从 v3.8.0 升级会自动执行
0010_account_auto_freeze.sql和0011_proxy_request_location.sql;v3.8.0 已发布的迁移文件保持不变。升级前请备份数据库。 - YAML 配置中的未知或已移除字段会被忽略,并在启动控制台提示。旧的
openai.wire_profile.location可以保留但不再生效;如需继续覆盖请求位置,请将值填入管理端「系统设置 → 运行设置 → 请求时区与位置」后启用。旧值不会自动导入,全局位置覆盖默认关闭;缺少必填字段或已知字段不合法仍会阻止启动。 - 自行调用
POST /api/admin/settings/update的客户端需同步完整请求结构,补齐请求位置和账号自动冻结相关字段;该接口仍按完整配置替换,字段约束见 API 文档。
📥 安装
Docker 部署:
# 从 GitHub 容器镜像仓库拉取
docker pull ghcr.io/zyycn/codex-proxy-rs:3.9.1请从本版本附件下载 compose.yaml 和 config.example.yaml。Compose 默认固定到本版本镜像;升级前请对比模板与已有配置。
手动下载:
请从下方附件中下载适合当前平台的归档包。
发布归档提供 GitHub 构建产物证明。Docker 镜像附带软件物料清单(SBOM)、构建来源证明和 cosign 无密钥签名。
📚 文档
Full Changelog: v3.9.0...v3.9.1
v3.9.0
新增功能
- 支持上游 API Key 账号,可配置服务地址与传输方式,使用 Responses、模型列表、连接测试和本地用量统计;支持手动添加及兼容格式的批量导入。这类账号不提供 ChatGPT 订阅额度、OAuth 刷新、Images、独立 Search 和 Lite/compact 能力。
- 批量导入改为后台任务,提供逐项进度、结果和停止待处理任务的入口;关闭页面后任务继续执行。任务队列保存在内存中,重启服务前请等待导入结束,已成功导入的账号不受影响。
- 新增可选的账号容量冷却:容量类错误达到阈值后暂时停止调度,支持恢复探测与自适应并发下调;管理端展示冻结原因和恢复时间。自动冻结默认关闭,按需在运行设置中启用。
- 支持在管理端设置全局请求位置与时区,也可为出站代理单独配置。代理自定义值优先于全局设置,用于 OpenAI/Codex Responses 的环境日期、时区和 Web Search 位置,不改变实际出口 IP。
- 新增 Linux amd64/arm64 一键安装脚本,使用 Docker Compose 部署并生成初始配置。重复执行保留现有配置,已有实例升级仍按部署指南操作。
问题修复
- 修复 IPv6 出口的代理探测,识别本次连接实际使用的 IPv4 或 IPv6 地址。
- 修复二进制在线更新的前端资源目录选择,使更新与回滚使用服务实际提供的静态资源目录。
- OpenAI 额度更新时同步明确的套餐变化,避免管理端长期保留旧套餐信息。
- 手动禁用的账号仍可进行管理员连接测试,测试不会重新启用账号参与普通请求调度。
- 改善下游 SDK 和浏览器请求与 Codex 协议的兼容性,统一会话头别名,过滤不适用的请求头及顶层参数,并保留业务扩展和嵌套工具定义。
体验优化
- 账号与用量表格支持选择显示列、恢复默认配置,并在当前浏览器保存偏好。
- 优化添加账号时的服务商选择及额度预测提示,改善窄屏和键盘操作体验。
升级说明
- 从 v3.8.0 升级会自动执行
0010_account_auto_freeze.sql和0011_proxy_request_location.sql;v3.8.0 已发布的迁移文件保持不变。升级前请备份数据库。 - YAML 配置中的未知或已移除字段会被忽略,并在启动控制台提示。旧的
openai.wire_profile.location可以保留但不再生效;如需继续覆盖请求位置,请将值填入管理端「系统设置 → 运行设置 → 请求时区与位置」后启用。旧值不会自动导入,全局位置覆盖默认关闭;缺少必填字段或已知字段不合法仍会阻止启动。 - 自行调用
POST /api/admin/settings/update的客户端需同步完整请求结构,补齐请求位置和账号自动冻结相关字段;该接口仍按完整配置替换,字段约束见 API 文档。
Warning
跨大版本升级: 不支持跨大版本在线升级。请使用全新的 .runtime/ 数据目录重新部署,再重新导入或重新授权服务商账号,并重新导入客户端密钥。详见升级说明。
📥 安装
Docker 部署:
# 从 GitHub 容器镜像仓库拉取
docker pull ghcr.io/zyycn/codex-proxy-rs:3.9.0请从本版本附件下载 compose.yaml 和 config.example.yaml。Compose 默认固定到本版本镜像;升级前请对比模板与已有配置。
手动下载:
请从下方附件中下载适合当前平台的归档包。
发布归档提供 GitHub 构建产物证明。Docker 镜像附带软件物料清单(SBOM)、构建来源证明和 cosign 无密钥签名。
📚 文档
What's Changed
- feat(accounts): support upstream API key accounts by @zyycn in #107
- fix(proxy): support IPv6 exit probing by @zyycn in #110
- fix(update): reuse the served asset directory by @zyycn in #111
- feat(ui): add persistent table column settings by @zyycn in #121
- feat(deploy): add one-click installer by @yertYang in #116
- fix(openai): sync account plans with quota updates by @zyycn in #112
- fix(accounts): run bulk imports as background tasks by @zyycn in #119
- fix(providers): keep disabled accounts reachable for admin connection tests by @2han9wen71an in #122
- fix(openai): align downstream requests with Codex protocol by @Clarence12138 in #117
- feat(accounts): 增加容量冷却与恢复探测 by @2han9wen71an in #126
- feat(settings): configure global and per-proxy request location by @Clarence12138 in #123
New Contributors
- @yertYang made their first contribution in #116
- @Clarence12138 made their first contribution in #117
Full Changelog: v3.8.0...v3.9.0