Skip to content

Releases: zyycn/codex-proxy-rs

v3.13.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 17:16

新增功能

  • 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.yamlconfig.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

Choose a tag to compare

@github-actions github-actions released this 19 Sep 17:28

新增功能

  • 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 升级不新增数据库迁移,已发布的 00010016 SQL 及冻结清单保持不变
  • 如需保留 OpenAI 数据驻留约束,请在启动新版本前将 openai.wire_profile.residency 移到 openai.residency。旧 openai.wire_profilexai.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.yamlconfig.example.yaml。Compose 默认固定到本版本镜像;升级前请对比模板与已有配置。

手动下载:
请从下方附件中下载适合当前平台的归档包。

发布归档提供 GitHub 构建产物证明。Docker 镜像附带软件物料清单(SBOM)、构建来源证明和 cosign 无密钥签名。

📚 文档

What's Changed

  • fix(openai): expand string input into a user message item by @AkideLiu in #179

New Contributors

Full Changelog: v3.12.0...v3.12.1

v3.12.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 15:54

新增功能

  • 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 升级不新增数据库迁移,已发布的 00010016 SQL 及冻结清单保持不变
  • 如需保留 OpenAI 数据驻留约束,请在启动新版本前将 openai.wire_profile.residency 移到 openai.residency。旧 openai.wire_profilexai.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.yamlconfig.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

Full Changelog: v3.11.0...v3.12.0

v3.11.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 22:51

新增功能

  • 新增模型定价管理,支持自定义单价、倍率和手动同步来源价目,可预览差异并勾选需要同步的模型。支持清除人工覆盖、删除非内置模型价格,内置价格仅允许覆盖。价格按请求保存快照,后续改价不重算历史费用
  • 支持在管理端配置 OpenAI 客户端身份,选择 CLI 或 Desktop 预设、跟随最新版本或自定义版本,API 密钥可单独覆盖通用配置
  • 支持在「系统设置 → 安全与访问」修改管理员密码,验证当前密码后保存,已登录的管理员需使用新密码重新登录
  • API 密钥支持手动清零日额度、7 日额度或全部已用金额,原重置时间保持不变

问题修复

  • 自定义 OpenAI 中转缺少额度、订阅资料或额度重置接口并返回 404 时,账号辅助请求会尝试官方端点,继续沿用账号的出站代理设置,不改变推理请求地址
  • 最终返回的 server_is_overloadedslow_down 按客户端可重试的 server_error / 503 交付,同时保留内部错误分类。提高明确容量拒绝对 Smart 调度的惩罚权重,普通错误、时间衰减与会话亲和规则保持不变
  • 修复取消后的 OpenAI 文件读取在服务关闭期间仍继续等待的问题
  • 修复表格列显示或隐藏后横向滚动状态未及时更新的问题,缩小使用统计中模型与推理强度的间距
  • 更新说明使用独立 Markdown 样式区域,修复列表圆点缺失并避免与页面样式互相影响

体验优化

  • 系统设置重新归类为「网关调度 / 上游配置 / 模型定价 / 安全与访问 / 数据备份」,按需加载对应内容,模型映射归入上游配置
  • Fast 模式统一由密钥绑定分组控制,移除重复的全局开关,分组使用「默认 / 关闭」分段选择
  • 简化客户端身份配置,自定义版本集中展示可编辑参数,加载时使用骨架屏稳定布局
  • 统一密钥与代理名称展示,优化额度重置、价格同步和批量清除弹窗,精简提示文案与操作按钮

升级说明

  • 从 v3.10.0 升级会自动执行新增迁移 0016,加入客户端身份与模型定价字段,并删除全局 Fast 字段。已发布的 00010015 保持不变,账号、分组及历史使用记录保留。升级前请停止旧应用并备份数据库,迁移后不要直接运行旧二进制,回退需恢复备份
  • 若原先启用了全局 Fast 禁用,请在升级前将需要限制的分组设为「关闭」,并为未分组密钥绑定相应分组。外部运行设置请求移除 disableFast 字段,分组接口仍保留该字段
  • 本次合并了尚未正式发布的迁移。曾直接运行旧 main 并执行原 00160018 的源码部署实例,需要先备份并核对数据库结构与迁移记录,不能直接套用正式版升级路径;从 v3.10.0 正式版升级不受此影响
  • 升级后管理员需重新登录一次,API 密钥身份会话不受影响。模型价格用于本地费用估算和额度控制,不代表上游实际扣费

📥 安装

Docker 部署:

# 从 GitHub 容器镜像仓库拉取
docker pull ghcr.io/zyycn/codex-proxy-rs:3.11.0

请从本版本附件下载 compose.yamlconfig.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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Sep 16:44

实验说明

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.yamlconfig.example.yamlchecksums.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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Sep 08:30

实验说明

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.yamlconfig.example.yamlchecksums.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

Pre-release

Choose a tag to compare

首个 Codex 降智缓解实验版,基于 v3.10.0,用于体验 #144 中讨论的方案。相关功能默认关闭,实际效果仍需验证,是否纳入主版本将结合反馈继续评估。

本次变化

  • 引入 PR #151X-Codex-Turn-State 刷新、会话保活与动态代理能力,尝试缓解用户反馈的疑似风控和响应质量下降问题。

安装与使用

Docker: 支持 Linux amd64 / arm64。

docker pull ghcr.io/zyycn/codex-proxy-rs:3.10.0-codex-anti-degradation.1

从本版本附件下载 compose.yamlconfig.example.yaml,按照实验版部署说明安装并按需启用功能。附件中的 Compose 已配置独立项目名与端口,管理端默认端口为 8081

二进制: 提供 Linux amd64、Linux arm64、macOS arm64 安装包,均包含管理端静态资源;同时运行多个实例时,请配置不同的监听端口。

附件提供 checksums.txt 与 GitHub 构建产物证明;Docker 镜像附带 SBOM、构建来源证明和 cosign 签名。

使用须知

  • 使用独立的安装目录、配置、数据库和数据目录,并保留稳定版实例及数据备份。实验数据库不能直接降级为稳定版。
  • 实际效果受上游行为影响,实验功能可能继续调整或停止维护。
  • 本版本标记为预发行,不进入默认稳定更新渠道,也不覆盖 Docker latest。实验版需手动更新。

反馈与致谢

欢迎在 #144 反馈适用场景、使用效果和遇到的问题,请勿附带账号令牌等敏感信息。

感谢 @chenyanshanPR #151 投入的时间与贡献,也感谢 @Clarence12138#144 提供问题与探索线索。

v3.10.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 12:20

新增功能

  • 支持全局及分组「关闭 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 升级会自动执行 00120015 四个新增迁移,保留旧账号、分组、代理与运行配置;已发布迁移文件保持不变。升级前请备份数据库。历史返回模型只回填已有明确记录,不从请求模型推断;代理的双栈地址字段在重新探测后填充。
  • 自行调用 POST /api/admin/settings/update 的客户端需要补传 responsesMaxDecompressedBodyBytes,单位为字节,默认值为 67108864;新版管理端已适配。新增 disableFast 字段可省略,省略时保留原值。

📥 安装

Docker 部署:

# 从 GitHub 容器镜像仓库拉取
docker pull ghcr.io/zyycn/codex-proxy-rs:3.10.0

请从本版本附件下载 compose.yamlconfig.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

Choose a tag to compare

@github-actions github-actions released this 16 Sep 21:38

新增功能

  • 支持上游 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.sql0011_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.yamlconfig.example.yaml。Compose 默认固定到本版本镜像;升级前请对比模板与已有配置。

手动下载:
请从下方附件中下载适合当前平台的归档包。

发布归档提供 GitHub 构建产物证明。Docker 镜像附带软件物料清单(SBOM)、构建来源证明和 cosign 无密钥签名。

📚 文档

Full Changelog: v3.9.0...v3.9.1

v3.9.0

Choose a tag to compare

@github-actions github-actions released this 16 Sep 20:19

新增功能

  • 支持上游 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.sql0011_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.yamlconfig.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

Full Changelog: v3.8.0...v3.9.0