Skip to content

OmniProxy v1.2.6

Choose a tag to compare

@github-actions github-actions released this 20 Jul 11:16
· 30 commits to master since this release

v1.2.6 - Codex quota workflow and resilient configuration / Codex 额度流程与可靠配置

This stable release consolidates the v1.2.6 beta line. It improves Codex browser login and reset-credit workflows, follows the quota windows actually returned by Codex, refreshes the desktop visual system, and makes proxy configuration changes recover safely.

本正式版整合 v1.2.6 beta 系列改动,完善 Codex 浏览器登录和额度刷新卡流程,根据 Codex 实际返回的窗口展示额度,更新桌面视觉体系,并让代理配置变更具备可靠的失败恢复能力。

Features / 新特性

  • Codex login dialog: Browser login now runs through an in-app dialog with visible OAuth state, a copyable authorization link, explicit browser opening, and CPA-compatible credential import.
    • Codex 登录弹窗:浏览器登录通过应用内弹窗展示 OAuth 状态,提供可复制的授权链接、明确的浏览器打开操作,并以 CPA 兼容格式导入凭证。
  • Account-level reset credits: Each Codex account exposes a compact reset-credit action with availability, nearest expiry, upstream errors, history, and confirmed redemption details.
    • 账号级额度刷新卡:每个 Codex 账号提供紧凑的刷新卡入口,展示可用数量、最近到期、上游错误、历史记录和确认使用详情。
  • Dynamic Codex quota windows: Five-hour and weekly quota are shown only when the corresponding window is returned by the Codex API.
    • 动态 Codex 额度窗口:仅在 Codex API 返回对应窗口时展示 5 小时额度或周额度。

Bug Fixes / 问题修复

  • Shared Codex conversation history: Official Codex and OmniProxy gateway profiles use the same built-in provider namespace instead of splitting conversation history.
    • 共享 Codex 对话记录:官方 Codex 与 OmniProxy 网关配置使用相同的内置 provider 命名空间,不再拆分对话记录。
  • Transactional proxy-port switch: A new proxy port is bound before the running server is replaced. An unavailable port leaves the existing proxy and persisted configuration intact.
    • 事务式代理端口切换:先成功绑定新代理端口,再替换运行中的服务;端口不可用时保留现有代理和持久化配置。
  • Scoped configuration rollback: Failed control-port changes no longer restart an unchanged proxy, and failed runtime changes restore the previous in-memory and persisted configuration.
    • 限定配置回滚范围:控制端口变更失败时不再重启未变化的代理;运行时变更失败会恢复旧的内存配置和持久化配置。
  • Stale refresh protection: Older realtime, billing, and history requests can no longer overwrite newer data or report obsolete errors.
    • 过期刷新保护:较旧的实时、账单和历史请求不再覆盖新数据或显示已经过期的错误。
  • Account-local reset-credit details: Reset-credit content stays with the selected account and no longer changes the height of the quota-card grid.
    • 账号内刷新卡详情:刷新卡内容保持在所属账号上下文内,不再改变额度卡片网格高度。

Breaking Changes / 不兼容更新

  • None / 无

Refactor & Performance / 重构与优化

  • Gemini visual system: Unified light and dark theme colors, layered surfaces, shadows, typography fallbacks, spacing, and page hierarchy across the desktop console.
    • Gemini 视觉体系:统一桌面控制台的浅色/深色主题、分层表面、阴影、字体回退、间距和页面层级。
  • Bounded upstream responses: Codex and Zo non-streaming response conversion is limited to 32 MiB to avoid unbounded memory consumption.
    • 限制上游响应体:Codex 和 Zo 非流式响应转换限制为 32 MiB,避免无界内存占用。
  • Retention and shutdown consistency: History retention updates only after database pruning succeeds, and timed-out proxy shutdowns are force-closed to avoid orphan listeners.
    • 保留与关闭一致性:数据库清理成功后才更新历史保留设置;代理关闭超时后强制清理,避免孤立监听。

Validation / 验证

  • cd OmniProxyBackend && go test -count=1 ./...
  • Proxy configuration regression tests repeated 20 times
  • cd OmniProxyBackend && go vet ./...
  • cd frontend && npm test (62 tests)
  • cd frontend && npm run build
  • node scripts/check-lines.mjs
  • Windows and macOS universal CI
  • git diff --check

Full Changelog / 完整更新日志: v1.2.5...v1.2.6