Skip to content

Releases: LeenHawk/gproxy

gproxy v2.0.14

Choose a tag to compare

@github-actions github-actions released this 09 Jul 18:41

v2.0.14

Adds GPT-5.6 protocol support and explicit OpenAI prompt-cache breakpoints, rounds out Grok Build API coverage, and improves browser-based admin access.

English

Added

  • GPT-5.6 model family. OpenAI model handling now recognizes gpt-5.6, gpt-5.6-sol, gpt-5.6-terra, and gpt-5.6-luna across the existing OpenAI routes and transforms.
  • New OpenAI protocol fields. Responses support now covers programmatic tool calling, program and multi-agent items, max reasoning effort, Pro reasoning mode, and the related request and response shapes introduced with GPT-5.6.
  • Explicit OpenAI prompt caching. Chat Completions and Responses requests now carry prompt_cache_options and content-level prompt_cache_breakpoint markers through protocol conversion.
  • OpenAI cache breakpoint rules. OpenAI, Codex, OpenRouter, and Vercel channels now accept the same GPROXY cache magic strings used by Claude channels, as well as manual cache_breakpoint rules for supported message locations and request-wide caching.
  • Grok Build usage reporting. Grok Build credentials can now query billing usage, credit windows, prepaid balance, and on-demand limits from the CLI billing endpoint.

Fixed

  • Grok Build search tools. Search preview tools and tool choices are normalized to the xAI-compatible shape, while unsupported encrypted reasoning fields and non-positive top_p values are removed before forwarding.
  • Admin session cookies. Same-origin Console sessions now work over plain HTTP on LAN addresses and tunnels; cross-origin sessions continue to use SameSite=None; Secure and therefore require HTTPS.
  • OpenAI stream lint compatibility. Responses-to-Chat stream handling and OpenAI cache shaping now pass the current strict Clippy checks without changing their request behavior.

Changed

  • Grok Build route coverage. OpenAI Chat Completions now pass through directly in both streaming and non-streaming modes, and /v1/responses/compact is classified and forwarded to its native upstream path.
  • Credentialed CORS. Admin and gateway routers now share explicit-origin credentialed CORS handling; configured origins must use scheme://host[:port], and wildcard origins are ignored.
  • Codex client fingerprint. Codex authentication, TLS presets, and HTTP fingerprinting now identify as Codex 0.144.0.
  • Caching documentation. The English and Chinese guides now explain OpenAI cache magic strings, manual breakpoints, TTL behavior, and HTTPS requirements in the same workflow-oriented style as the rest of the documentation.

简体中文

新增

  • GPT-5.6 模型家族。 OpenAI 模型处理现在可在现有 OpenAI 路由和转换中识别 gpt-5.6gpt-5.6-solgpt-5.6-terragpt-5.6-luna
  • 新版 OpenAI 协议字段。 Responses 现在支持 GPT-5.6 引入的 programmatic tool calling、program 与 multi-agent items、max reasoning effort、Pro reasoning mode,以及相关 request 和 response 数据结构。
  • OpenAI 显式 prompt caching。 Chat Completions 和 Responses 请求中的 prompt_cache_options 与内容级 prompt_cache_breakpoint 标记现在可以经过协议转换保留下来。
  • OpenAI 缓存断点规则。 OpenAI、Codex、OpenRouter 和 Vercel 渠道现在支持与 Claude 渠道相同的 GPROXY 缓存魔法字符串,也支持针对可用消息位置和请求级缓存的手动 cache_breakpoint 规则。
  • Grok Build 用量查询。 Grok Build credential 现在可以从 CLI billing endpoint 查询用量窗口、预付余额和按量使用额度。

修复

  • Grok Build 搜索工具。 Search preview tools 和 tool choice 会规范化为 xAI 兼容结构;转发前也会移除不支持的 encrypted reasoning 字段和非正数 top_p
  • 管理员会话 Cookie。 同源 Console 现在可以通过局域网地址或 tunnel 的普通 HTTP 正常登录;跨域会话仍使用 SameSite=None; Secure,因此继续要求 HTTPS。
  • OpenAI stream lint 兼容。 Responses 到 Chat 的流转换和 OpenAI 缓存整形现在通过最新的严格 Clippy 检查,同时保持原有请求行为。

调整

  • Grok Build 路由覆盖。 OpenAI Chat Completions 的流式与非流式请求现在都会直接透传,/v1/responses/compact 也可以被识别并转发到对应的上游原生路径。
  • 带凭证的 CORS。 Admin 和 gateway router 现在共用显式 origin 的 credentialed CORS 处理;配置值必须是 scheme://host[:port],通配符 origin 会被忽略。
  • Codex 客户端指纹。 Codex 认证、TLS preset 和 HTTP fingerprint 现在统一标识为 Codex 0.144.0
  • 缓存文档。 中英文指南现在以与其余文档一致的工作流方式说明 OpenAI 缓存魔法字符串、手动断点、TTL 行为和 HTTPS 要求。

gproxy v2.0.13

Choose a tag to compare

@github-actions github-actions released this 09 Jul 03:42

v2.0.13

Adds the Grok Build channel and wires OpenAI-compatible image edit requests across image-capable channels, including multipart uploads and Codex Responses image editing.

English

Added

  • Grok Build channel. GPROXY now includes a grokbuild channel for xAI Grok Build over the OpenAI-compatible Responses API, with device-code login and API-key authentication support.
  • Grok Build channel metadata. The Console, provider docs, registry, and feature flags now expose Grok Build as a first-class channel.
  • OpenAI image edit endpoint. /v1/images/edits is now classified and routed as an OpenAI image edit operation.
  • Multipart form canonicalization. Inbound multipart/form-data requests are normalized to JSON before protocol handling, so OpenAI SDK image edit uploads can flow through the gateway consistently.
  • Codex image edit via Responses. OpenAI image edit requests can now transform to the Responses image_generation tool with action: "edit" for Codex-style channels.

Fixed

  • Image edit protocol compatibility. Image edit requests now accept image or images, string image references, data URLs, file IDs, and multipart-derived string booleans or integers.
  • ChatGPT image edit parsing. ChatGPT image edit upload handling now accepts the normalized JSON array shape produced by multipart canonicalization.
  • Grok Build image hygiene. Grok Build image request shaping now covers both image generation and image edit requests.
  • xAI Responses tool compatibility. OpenAI Responses tool parsing now includes xAI/Grok tool variants used by Grok Build.

简体中文

新增

  • Grok Build 渠道。 GPROXY 新增 grokbuild 渠道,通过 OpenAI-compatible Responses API 接入 xAI Grok Build,并支持 device-code 登录和 API key 认证。
  • Grok Build 渠道元数据。 Console、provider 文档、registry 和 feature flags 现在都把 Grok Build 作为一等渠道暴露。
  • OpenAI image edit 端点。 /v1/images/edits 现在会被识别并路由为 OpenAI image edit operation。
  • Multipart form 规范化。 入站 multipart/form-data 请求会在协议处理前统一转换为 JSON,让 OpenAI SDK 的 image edit 文件上传可以稳定通过网关。
  • Codex image edit via Responses。 OpenAI image edit 请求现在可以转换为 Responses image_generation tool,并设置 action: "edit",用于 Codex 类渠道。

修复

  • Image edit 协议兼容。 Image edit 请求现在接受 imageimages、字符串图片引用、data URL、file ID,以及 multipart 转换后形成的字符串布尔值或整数字段。
  • ChatGPT image edit 解析。 ChatGPT image edit 上传处理现在兼容 multipart 规范化后产生的 JSON 数组形态。
  • Grok Build 图片请求清理。 Grok Build 的图片请求整形现在同时覆盖 image generation 和 image edit。
  • xAI Responses tool 兼容。 OpenAI Responses tool 解析现在包含 Grok Build 使用的 xAI/Grok tool 变体。

gproxy staging

gproxy staging Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Mar 15:35

Rolling staging build for main @ e1c1971.

gproxy v2.0.12

Choose a tag to compare

@github-actions github-actions released this 08 Jul 12:39

v2.0.12

Adds first-class pricing rule management, improves OpenAI Responses conversion and release publication reliability, and turns channel built-in TLS spoofing off by default.

English

Added

  • Pricing rule management. The Console now includes a Pricing section for creating, editing, importing, exporting, and deleting pricing rules, backed by file, database, and libSQL persistence.
  • OpenRouter pricing import. The Console can import the bundled OpenRouter pricing rule set to seed common model pricing quickly.
  • Pricing rule migration support. v1 import/export, snapshots, billing settlement, and database migrations now carry pricing rules as first-class records.

Fixed

  • OpenAI Responses conversion. OpenAI/Codex channel handling now uses a unified Responses path, improving operation routing and related tests.
  • Reasoning and tool-call streaming. Responses stream conversion now handles reasoning IDs, compacted reasoning output, and tool-call item processing more consistently across OpenAI and Claude transforms.
  • Release publication ordering. The release workflow now builds and uploads assets before publishing the GitHub Release, reducing partial-release windows.
  • Self-update compatibility metadata. Update manifest generation and runtime checks now use the corrected minimum compatible data version.
  • Pricing table display. Pricing rule match display in the Console is simpler and easier to scan.
  • Provider navigation. The provider sidebar behavior was restored after an intermediate navigation change.

Changed

  • Channel TLS spoofing default. Built-in channel TLS/HTTP2 spoofing is now off by default; it only applies when instance settings explicitly enable built-in TLS spoofing. Provider or credential tls_fingerprint values still take precedence when configured.
  • Admin password policy. Admin passwords no longer require 12 characters; new passwords and recovery passwords only reject blank or whitespace-only values.
  • Database log level. SQLx statement logging was moved to debug level to reduce normal runtime noise.

简体中文

新增

  • Pricing rule 管理。 Console 新增 Pricing 页面,可创建、编辑、导入、导出和删除 pricing rules,并支持 file、database、libSQL 持久化。
  • OpenRouter pricing 导入。 Console 可以导入内置的 OpenRouter pricing rule set,用于快速初始化常见模型计价。
  • Pricing rule 迁移支持。 v1 导入/导出、snapshot、billing settlement 和数据库迁移现在都把 pricing rules 作为一等记录处理。

修复

  • OpenAI Responses 转换。 OpenAI/Codex channel 现在统一走 Responses 处理路径,改进 operation 路由和相关测试覆盖。
  • Reasoning 与 tool-call 流处理。 Responses stream 转换现在更一致地处理 reasoning ID、compact 后的 reasoning 输出,以及 tool-call item。
  • Release 发布顺序。 Release workflow 现在会先构建并上传资产,再发布 GitHub Release,减少用户看到半成品 release 的窗口。
  • 自更新兼容性元数据。 Update manifest 生成和运行时检查现在使用修正后的最低兼容数据版本。
  • Pricing 表格显示。 Console 的 pricing rule match 展示更简洁,便于快速查看。
  • Provider 导航。 Provider sidebar 行为在一次中间导航调整后已恢复。

调整

  • 通道 TLS 伪装默认关闭。 内置的通道 TLS/HTTP2 伪装现在默认关闭;只有实例设置显式开启内置 TLS 伪装时才应用。手动配置的 provider 或 credential tls_fingerprint 仍然优先生效。
  • 管理员密码策略。 管理员密码不再要求 12 个字符;新密码和 recovery 密码只拒绝空白或只有空白字符的值。
  • 数据库日志级别。 SQLx statement 日志调整为 debug,减少正常运行时的日志噪音。

gproxy v2.0.11

Choose a tag to compare

@LeenHawk LeenHawk released this 06 Jul 16:38

v2.0.11

Adds OpenAI Responses WebSocket support, makes edge deployments ship the embedded Console more reliably, improves Android APK packaging, and tightens self-update safety handling.

English

Added

  • OpenAI Responses WebSocket support. GPROXY can now classify, route, transform, and settle OpenAI Responses WebSocket traffic across the native gateway and supported edge runtimes.
  • Responses WebSocket routing defaults. OpenAI, Codex, Claude API, and the routing table now expose defaults for the Responses WebSocket operation so rules can target it directly.
  • Android APK launcher. Android releases now include installable per-ABI APKs with a minimal launcher UI, bundled libc++_shared.so, app-private data storage, and admin username/password inputs.
  • Provider detail navigation. Console provider details now use child routes and a secondary sidebar with credential-first sections for faster provider administration.

Fixed

  • Edge Console assets. Cloudflare, Deno, Netlify, and EdgeOne Pages deployment builds now bundle Console assets so edge deployments can serve /console without separate manual asset wiring.
  • Edge admin credentials. Edge deployment templates now require explicit admin credentials and prompt for Turso/libSQL environment values where needed.
  • Self-update safety metadata. When update manifests are missing SHA-256 or signature metadata, the Console now shows a confirmation path instead of failing silently or downgrading safety implicitly.
  • Mid-conversation system transforms. OpenAI-to-Claude transforms now preserve mid-conversation system content more accurately across compact, chat, and generate-content paths.
  • Model query conversion. Model-list request conversion now handles query parameters through a dedicated transform path.
  • Database startup noise. SeaORM SQLx statement logging now uses warning level, reducing database query noise on startup.

Changed

  • Android package metadata. Release APKs use the stable package name io.github.leenhawk.gproxy, app label GPROXY, launcher icons generated from the Console favicon, normalized version names, and mandatory release signing on GitHub Release builds.
  • Native release packaging. Unix release packaging now uses the shared scripts/package-native-release.sh path, with Android ZIP/APK generation and checksum output handled together.
  • Release workflow maintenance. GitHub Actions release jobs now regenerate edge bundles on every run and use newer checkout, artifact download, pnpm setup, and GitHub release upload actions.
  • Transform pipeline structure. Request transform planning and dispatch were split into clearer internal modules while preserving the external API behavior.

简体中文

新增

  • OpenAI Responses WebSocket 支持。 GPROXY 现在可以在 native gateway 和支持的 edge runtime 中识别、路由、转换并结算 OpenAI Responses WebSocket 流量。
  • Responses WebSocket 路由默认值。 OpenAI、Codex、Claude API 和 routing table 现在暴露 Responses WebSocket operation 的默认路由,规则可以直接命中该操作。
  • Android APK launcher。 Android release 现在包含按 ABI 拆分的可安装 APK,内置最小 launcher UI、libc++_shared.so、app 私有数据目录,以及 admin username/password 输入框。
  • Provider 详情导航。 Console 的 provider detail 改为 child routes,并加入 credential 优先的二级侧边栏,管理 provider 更直接。

修复

  • Edge Console 资源。 Cloudflare、Deno、Netlify、EdgeOne Pages 的部署构建现在会打包 Console 静态资源,edge 部署可以直接提供 /console,不再需要额外手动接资源。
  • Edge admin 凭据。 Edge 部署模板现在要求显式 admin 凭据,并在需要时提示 Turso/libSQL 环境变量。
  • 自更新安全元数据。 当 update manifest 缺少 SHA-256 或签名元数据时,Console 现在会给出确认路径,而不是静默失败或隐式降级安全校验。
  • 对话中途 system 转换。 OpenAI 到 Claude 的转换现在能在 compact、chat、generate-content 路径中更准确保留 mid-conversation system 内容。
  • Model query 转换。 Model list 请求转换现在使用专门的 query 参数转换路径。
  • 数据库启动噪音。 SeaORM SQLx statement log 调整到 warning 级别,减少启动时的数据库查询日志。

调整

  • Android 包元数据。 Release APK 现在使用稳定包名 io.github.leenhawk.gproxy、app 名称 GPROXY、由 Console favicon 生成的 launcher 图标、规范化 versionName,并在 GitHub Release 构建中强制使用正式签名。
  • Native release 打包。 Unix release 打包统一走 scripts/package-native-release.sh,Android ZIP/APK 生成和 checksum 输出在同一流程完成。
  • Release workflow 维护。 GitHub Actions release job 现在每次运行都会重新生成 edge bundles,并升级 checkout、artifact download、pnpm setup、GitHub release upload 等 actions。
  • Transform pipeline 结构。 Request transform planning 和 dispatch 拆分为更清晰的内部模块,同时保持外部 API 行为不变。

gproxy v2.0.10

Choose a tag to compare

@LeenHawk LeenHawk released this 04 Jul 09:54

v2.0.10

Adds Codex rate-limit reset and additional-limit visibility, refreshes Claude Code 2.1.199 client fingerprinting, switches the repository license to AGPLv3, and keeps the release/build pipeline green after the latest Clippy changes.

English

Added

  • Codex rate-limit reset credits. Codex usage now exposes available rate-limit reset credits and the Console can consume a reset credit from the provider usage card.
  • Additional Codex rate limits. Codex usage parsing now includes additional primary and secondary rate-limit windows, with localized Console labels for reset state and additional limits.
  • One-click deployment docs. Edge deployment docs now include one-click deploy buttons for Cloudflare and Netlify.
  • AGPLv3 license. The repository now carries the GNU Affero General Public License v3.0 text.

Fixed

  • Console self-update restart. Applying an update from the Console now requests a restart after the verified binary swap and shows the pending restart state.
  • Release toolchain defaults. The release workflow and Docker runtime base were restored to the default Linux and Android toolchain path after the temporary pinned-toolchain experiment.
  • Docs startup command. Quick-start import-bundle instructions now use the simplified startup command.
  • Clippy compatibility. Codex usage request building was adjusted for the latest stable Clippy lints so the backend CI job stays green.

Changed

  • Claude Code 2.1.199 fingerprint. Claude Code client metadata, user-agent values, auth headers, and CCH generation were refreshed for the 2.1.199 wire shape.
  • Codex usage model. Channel usage types now carry reset-credit details and reset outcomes across Codex, Claude Code, Copilot CLI, and Kiro usage implementations.

简体中文

新增

  • Codex rate-limit reset credit。 Codex usage 现在会暴露可用的 rate-limit reset credit,Console 的 provider usage card 可以直接消费一次 reset credit。
  • Codex 额外 rate limit。 Codex usage 解析现在包含额外的 primary / secondary rate-limit window,并补齐 Console 中 reset 状态和额外限制的本地化文案。
  • 一键部署文档。 Edge 部署文档新增 Cloudflare 和 Netlify 的一键部署按钮。
  • AGPLv3 许可证。 仓库现在包含 GNU Affero General Public License v3.0 的完整许可证文本。

修复

  • Console 自更新重启。 在 Console 应用更新后,现在会在完成校验和二进制替换后请求重启,并显示等待重启状态。
  • Release toolchain 默认路径。 release workflow 和 Docker runtime base 回到默认 Linux / Android toolchain 路径,撤回临时 pinned-toolchain 尝试。
  • 文档启动命令。 Quick-start 的 import bundle 说明现在使用简化后的启动命令。
  • Clippy 兼容性。 Codex usage request 构建逻辑已适配最新 stable Clippy lint,backend CI 保持通过。

调整

  • Claude Code 2.1.199 指纹。 Claude Code 的 client metadata、user-agent、auth header 和 CCH 生成逻辑同步到 2.1.199 wire shape。
  • Codex usage 模型。 Channel usage 类型现在在 Codex、Claude Code、Copilot CLI、Kiro usage 实现中携带 reset-credit 明细和 reset 结果。

gproxy v2.0.9

Choose a tag to compare

@LeenHawk LeenHawk released this 03 Jul 16:42

v2.0.9

Adds Claude Fable fallback controls, improves scoped usage visibility and credential handling, broadens protocol compatibility, and improves Console self-update behavior.

English

Added

  • Claude Fable fallback shaping. Providers can enable Claude Fable 5 fallback injection, with Console settings and channel-side request shaping for supported Anthropic-compatible providers.
  • Scoped Claude Code usage. Provider usage cards now show scoped five-hour and seven-day Claude Code limits, and usage data is fetched when the card is opened.
  • Credential upsert path. Admin credential writes now share a deduplicating upsert flow across special endpoints and CRUD routes.
  • Admin route permissions. Bootstrap admin user creation can include route permission setup.
  • ApplyPatch message support. OpenAI Responses ApplyPatchCall and ApplyPatchCallOutput items now transform correctly into chat-shaped messages.

Fixed

  • Self-update restart. Applying an update from the Console now restarts GPROXY automatically after the verified binary swap instead of requiring an operator to restart it from the command line.
  • Auxiliary upstream proxy resolution. Login, refresh, usage, update, failover, and settlement helper paths now resolve upstream clients through the shared provider/credential helpers.
  • Upstream model errors. Upstream-model fetching reports credential and provider errors more clearly.
  • Postgres migration reads. Postgres schema migration version reads accept wider integer shapes.
  • Credential health display. Expired credential rate limits are hidden from health badges and panels.
  • Unsupported usage endpoints. Usage cards handle unsupported provider usage endpoints with clearer UI behavior.

Changed

  • Protocol and transform crates. Protocol, transform, and tokenization code were split into workspace crates while preserving the public binary behavior.
  • Upstream API field sync. Claude, Gemini, OpenAI, embeddings, reasoning, service-tier, and usage transform structs were updated for newer upstream fields.
  • Settlement accounting. Buffered and streaming response settlement now share stricter accounting behavior with additional billing coverage.
  • Release repair tooling. The manifest repair workflow now rebuilds released update manifests with semver validation.

简体中文

新增

  • Claude Fable fallback shaping。 支持为相关 Anthropic 兼容 provider 启用 Claude Fable 5 fallback 注入,并补齐 Console 设置和 channel 侧请求 shaping。
  • Claude Code 分作用域用量。 Provider usage card 现在会展示 Claude Code 的五小时 / 七天分作用域限制,并在卡片打开时拉取用量。
  • 凭据 upsert 路径。 Admin 凭据写入现在复用带去重逻辑的 upsert 流程,覆盖 special endpoint 和 CRUD route。
  • Admin route 权限。 启动时创建 admin 用户可以同时设置 route permission。
  • ApplyPatch 消息支持。 OpenAI Responses 的 ApplyPatchCall / ApplyPatchCallOutput 现在能正确转换到 chat 消息形状。

修复

  • 自更新重启。 在 Console 应用更新后,GPROXY 现在会在完成校验和二进制替换后自动重启,不再需要操作员从命令行手动重启。
  • 辅助路径 upstream proxy 解析。 login、refresh、usage、update、failover、settlement 等 helper 路径现在统一通过 provider / credential helper 解析 upstream client。
  • Upstream model 错误。 获取 upstream model 时会更清楚地返回凭据和 provider 错误。
  • Postgres migration 读取。 Postgres schema migration version 读取现在兼容更宽的整数形状。
  • 凭据健康显示。 过期的 credential rate limit 不再显示在 health badge 和 panel 里。
  • 不支持的 usage endpoint。 Usage card 对 provider 不支持 usage endpoint 的情况有更清晰的 UI 行为。

调整

  • Protocol 和 transform crate 拆分。 Protocol、transform、tokenization 代码拆分为 workspace crates,同时保持现有二进制行为不变。
  • 上游 API 字段同步。 Claude、Gemini、OpenAI、embeddings、reasoning、service tier 和 usage transform 相关类型同步了新的上游字段。
  • 结算计费。 buffered 和 streaming response settlement 现在共享更严格的计费处理,并补充了 billing 覆盖。
  • Release 修复工具。 Manifest repair workflow 现在会用 semver 校验重建已发布 release 的 update manifest。

gproxy v2.0.8

Choose a tag to compare

@LeenHawk LeenHawk released this 29 Jun 12:09

v2.0.8

Tightens the staging/release pipeline, fixes several Responses/Codex streaming paths, improves cache-token usage accounting, and makes the Console's self-update channel selector take effect immediately.

English

Added

  • Staging release channel builds. Pushes to main now refresh the rolling staging release with all native targets and a signed staging manifest, and staging Docker images are published as staging / staging-<sha> tags (including musl variants). Manual dispatches use the same staging path.
  • Cache-creation usage breakdown. Usage extraction and billing now distinguish cache creation token windows (5m and 1h) instead of collapsing cache writes into a single bucket.

Fixed

  • Codex image generation streams. Codex image-generation requests are forced onto the streaming path expected by the upstream Responses API.
  • Responses streaming compatibility. OpenAI Responses streams now handle additional content-part done events, SSE transformation for Responses-shaped streams, and streamed HTTP responses consistently set Content-Type.
  • API-key credential editing. API-key credentials can be revealed and edited in the Console instead of being blocked by the secret editor.
  • Self-update channel selection. Choosing staging in the Console now updates the live self-update context instead of only saving a settings row; stale update-check results are cleared after switching channels.
  • Staging release assets. The release workflow now publishes all native staging assets, removes stale legacy signature assets using the correct numeric asset ids, and fixes Android static-linking for the x86_64 target.
  • Usage reset display. Provider usage cards handle reset dates more robustly.

Changed

  • Stream adapter cleanup. The internal streaming adapter code was simplified around message/reasoning initialization.

简体中文

新增

  • 预发布构建通道。 推送到 main 现在会刷新滚动 staging release,包含全部原生目标和签名 staging manifest;staging Docker 镜像也会发布为 staging / staging-<sha> 标签(含 musl 变体)。手动触发同样走 staging 路径。
  • 缓存写入用量拆分。 用量提取与计费现在区分 cache creation token 的 5m / 1h 窗口,不再把缓存写入合并成单一桶。

修复

  • Codex 画图流式请求。 Codex 画图请求现在强制走上游 Responses API 期望的流式路径。
  • Responses 流兼容性。 OpenAI Responses 流现在处理更多 content-part done 事件,补齐 Responses 形状 SSE 转换,并稳定设置流式 HTTP 响应的 Content-Type
  • API-key 凭据编辑。 API-key 凭据现在可以在 Console 中 reveal 和编辑,不再被 secret editor 阻断。
  • 自更新渠道选择。 在 Console 中选择 staging 现在会立即影响运行中的自更新上下文,而不是只保存一行 settings;切换渠道后也会清掉旧的检查结果。
  • Staging release 产物。 release workflow 现在会发布全部原生 staging 产物,用正确的 numeric asset id 清理旧签名文件,并修复 Android x86_64 静态链接。
  • 用量重置显示。 Provider usage card 更稳健地处理 reset date。

调整

  • 流适配器清理。 内部 stream adapter 围绕 message / reasoning 初始化的实现更简洁。

gproxy v2.0.7

Choose a tag to compare

@LeenHawk LeenHawk released this 24 Jun 14:14

v2.0.7

Fixes the in-app update check still failing with 500 internal error even after v2.0.6 published the signed manifest: the updater's HTTP client did not follow GitHub's releases/.../download/... redirects, so it never reached the manifest. The updater now follows redirects (manifest fetch and artifact download).

English

Fixed

  • /admin/update/check / apply now follow GitHub redirects. GitHub serves releases/latest/download/<asset> as a 302 chain (→ releases/download/<tag>/…objects.githubusercontent.com). The self-update HTTP path didn't follow redirects, so every fetch returned 302 and surfaced as internal error — this, not the missing manifest alone, was the underlying cause of the original 500. The updater now follows up to 6 redirect hops for both the manifest fetch and the artifact download. (The shared proxy data-plane client is unchanged — it still must not auto-follow redirects.)

Notes

  • One-time manual update for pre-2.0.7 instances. Binaries from v2.0.6 and earlier cannot follow the redirect (and v2.0.5 also lacks the embedded update key), so their "check/apply" will keep failing. Update to v2.0.7 manually once; self-update works automatically from v2.0.7 onward.

简体中文

修复

  • /admin/update/check / apply 现在会跟随 GitHub 跳转。 GitHub 把 releases/latest/download/<资源> 以 302 链下发(→ releases/download/<tag>/…objects.githubusercontent.com)。自更新的 HTTP 路径此前不跟随跳转,于是每次拉取都得到 302 并显示为 internal error——这才是最初 500 的根因(不仅仅是缺少清单)。更新器现在对清单拉取与产物下载都最多跟随 6 跳跳转。(共享的代理数据面客户端不变——它仍然不应自动跟随跳转。)

说明

  • 2.0.7 之前的实例需手动升级一次。 v2.0.6 及更早的二进制无法跟随跳转(且 v2.0.5 还缺嵌入的更新公钥),其"检查/应用更新"会持续失败。请手动升级到 v2.0.7 一次;自 v2.0.7 起自更新即可自动完成。

gproxy v2.0.6

Choose a tag to compare

@LeenHawk LeenHawk released this 24 Jun 13:41

⚠️ Superseded by v2.0.7 — the self-update fix shipped here is incomplete (the updater did not follow GitHub's redirects, so check/apply still failed). Use v2.0.7+. 本版自更新修复不完整(更新器未跟随 GitHub 跳转),请用 v2.0.7+

v2.0.6

Fixes the "检查更新 / Check for updates" admin action returning 500 internal error, and wires the self-update release pipeline end-to-end: releases now publish an ed25519-signed manifest.json, native binaries embed the update verification key, and the in-app updater downloads and unpacks the release .zip.

English

Fixed

  • /admin/update/check no longer 500s. The check endpoint fetches a signed manifest.json from the release, but the v2 release pipeline never produced one — so every check 404'd and surfaced as internal error. The pipeline now builds and signs the manifest, and a channel with no published manifest is reported as "up to date" instead of erroring.

Added

  • Self-update is now functional end-to-end. The release workflow generates an ed25519-signed manifest.json (reusing the existing signing key) and attaches it to each release; native builds embed the update public key (GPROXY_UPDATE_PUBKEY) so apply can verify the signature. The updater downloads the release .zip, verifies its sha256 + the manifest signature, extracts the gproxy executable, and atomically swaps it (keeping <exe>.prev for rollback).

Notes

  • One-time manual update for existing v2.0.5 instances. v2.0.5 binaries were built without the embedded update key and cannot verify the signed manifest, so their "apply" will fail signature verification. Update to v2.0.6 manually once; self-update works automatically from v2.0.6 onward.

简体中文

修复

  • /admin/update/check 不再报 500。 检查更新会从 release 拉取签名清单 manifest.json,但 v2 发布流水线从未生成过它——于是每次检查都 404,前端显示 internal error。现在流水线会构建并签名该清单;某渠道没有已发布清单时,检查会显示"已是最新"而不是报错。

新增

  • 自更新现已端到端可用。 发布流程会生成 ed25519 签名的 manifest.json(复用既有签名密钥)并附到每个 release;原生构建嵌入更新验签公钥(GPROXY_UPDATE_PUBKEY),使 apply 能验签。更新器下载 release .zip,校验其 sha256 与清单签名,解压出 gproxy 可执行文件并原子替换(保留 <exe>.prev 以便回滚)。

说明

  • 现存 v2.0.5 实例需手动升级一次。 v2.0.5 的二进制未嵌入更新公钥,无法验证签名清单,其"应用更新"会因验签失败而中止。请手动升级到 v2.0.6 一次;自 v2.0.6 起自更新即可自动完成。