刘佳林
efcc2252e5
fix(opencode): address review on dispatch, billing, session, and 402
...
Skip OpenAI messages-dispatch gpt-5.x defaults for OpenCode groups and
composite OpenCode targets. Filter unpriced claude-* billing candidates,
estimate count_tokens locally, sanitize body session IDs before setting
X-OpenCode-Session, and treat Zen 402 as recoverable payg cooldown.
Stop rewriting the inbound body before protocol routing so account
model_mapping applies once and usage_logs.model stays the client name.
2026-09-11 15:39:13 +08:00
刘佳林
981279c996
fix(opencode): rewrite mapped model onto all three upstream protocols
...
Apply account model_mapping to the request body before OpenCode
protocol routing so /v1/responses, /v1/chat/completions, and
/v1/messages all send the mapped ID as the real upstream model.
2026-09-11 15:07:43 +08:00
刘佳林
7c008bd8c1
fix(opencode): apply account model mapping in connection tests
...
Responses probes used the requested model as-is, so aliases like
opencode/muse-spark-* were sent upstream instead of the mapped ID.
2026-09-11 14:19:23 +08:00
刘佳林
242907854d
feat(opencode): add OpenCode platform with Zen and GO account types
...
Keep the internal platform ID opencode_go. Product surface is OpenCode
with account_mode zen|go, model-aware routing across Chat Completions,
Responses, and Anthropic Messages, and X-OpenCode-Session derived from
prompt_cache_key / metadata.user_id so prompt cache can hit.
Unmatched models fall back to /v1/chat/completions. Related to #6742 .
2026-09-11 10:05:24 +08:00
Wesley Liddick
f4dd88b001
Merge pull request #6847 from ouchihao/codex/issue-4064-custom-page-button-visibility
...
feat(settings): allow hiding the custom page open button
2026-09-11 09:34:11 +08:00
Wesley Liddick
2493b0dc31
Merge pull request #6924 from smyyyyy2025/fix/codex-user-agent-validation
...
fix: validate Codex User-Agent before identity parsing
2026-09-11 09:33:19 +08:00
Wesley Liddick
264cbbec26
Merge pull request #6499 from soulxyz/fix/setup-database-bootstrap
...
fix(setup): avoid hardcoded postgres connection
2026-09-11 09:32:01 +08:00
Wesley Liddick
87e01596b7
Merge pull request #6850 from reallyfeishi/fix/channel-monitor-utc-buckets
...
fix: anchor channel monitor date_bin buckets to UTC
2026-09-11 09:31:22 +08:00
Wesley Liddick
43f9383d40
Merge pull request #6869 from Garfielk/codex/fix-heartbeat-envelope-fields
...
fix(openai): accept full heartbeat bootstrap envelopes
2026-09-11 09:30:45 +08:00
Wesley Liddick
685e97a3a6
Merge pull request #6904 from m11y/fix-scheduling-threshold-snapshot
...
fix(scheduler): preserve threshold metadata
2026-09-11 09:30:00 +08:00
Wesley Liddick
e71d291b39
Merge pull request #6917 from ouchihao/codex/issue-2149-monitor-base-path
...
fix(monitor): support upstream base URL paths
2026-09-11 09:29:25 +08:00
Wesley Liddick
4adcef4ff4
Merge pull request #6943 from xiuai-labs/fix/keep-client-system-cache-control
...
fix(gateway): 不再剥离客户端 system 上的 cache_control / stop stripping client system cache_control
2026-09-11 09:28:55 +08:00
r266-tech
1c0932e173
feat(gateway): retrieve models from the visible catalogue
2026-09-10 15:57:17 +08:00
nekocode
a4edda36d5
fix(gateway): 不再剥离客户端 system 上的 cache_control
...
OAuth mimic 路径无条件删除 system[*].cache_control,不打日志也不报错。
把稳定前缀锚在 system 上的客户端因此拿到 cache_creation 与 cache_read
双 0 —— 不是没命中,是连写都没写。
这个动作是 46e5ac9 引进时「system 必然被整个重写」的配套:客户端的
system 内容都搬进 messages 了,残留断点指着空气,删它是对的。后来
system 注入变成可配置,于是长出了原设计里不存在的组合 —— system 没被
重写,断点照删。剥离失去了赖以成立的前提,代码却还在。
三处调用点里 count_tokens 那处还是硬编码 true,与另两处的
!systemRewritten 语义不一致。
直接移除该选项而不是再加一个开关:注入开启时 system 已被整个替换、
留在上面的断点是我们自己拼进去的稳定锚点;注入关闭时断点就是客户端的
缓存意图。两种情形都没有删它的理由,而需要开关的是有取舍的行为。
顺带补上 count_tokens 的 4 块上限兜底:五条出口里只有它没在自己的转发
路径上调过 enforceCacheControlLimit,原先那句 strip 是这条路上唯一压制
断点数量的东西。拿掉之后「客户端 system + 客户端 messages + 刚注入的
tools[-1]」实测顶到 5 块,而上游对超限是 400。
messages 层的同类改写见 #2369,那次只落地了 messages 一半。
此前该行为零测试覆盖(stripSystemCacheControl 在 _test.go 里零命中),
本次补 4 个用例,其中上限兜底那条撤掉修复即红。
Claude-Session: https://claude.ai/code/session_01WnTW52pmELGy3g7KPEUXj2
2026-09-10 15:48:17 +08:00
smyyyyy
4e5632c3e3
fix: validate Codex User-Agent before identity parsing
2026-09-10 03:18:31 +08:00
chihao.ou
21323c31f8
fix(monitor): support upstream base URL paths
2026-09-09 20:02:25 +08:00
wangjunwei
de76baaa0d
fix(scheduler): preserve Anthropic threshold metadata
2026-09-09 17:13:37 +08:00
刘世俊
a0babc93dd
fix(openai): accept full heartbeat bootstrap envelopes
2026-09-09 12:48:57 +08:00
hansnow
7ccc8a6f50
fix(openai): 支持 Image 2.5 并修复 OAuth 生图主控模型
2026-09-09 11:04:59 +08:00
reallyfeishi
f180fbb884
fix: anchor channel monitor buckets to UTC
2026-09-08 23:02:06 +08:00
chihao.ou
1d4e0436e4
feat(settings): allow hiding the custom page open button
2026-09-08 21:18:56 +08:00
Wesley Liddick
d9efbf8229
Merge pull request #6839 from mason0510/fix/grok-external-web-access
...
fix(grok): 移除 Chat Completions 中不支持的 external_web_access 参数
2026-09-08 20:47:25 +08:00
Wesley Liddick
233f3dffe6
Merge pull request #6281 from wuji-labs/feat/http2-long-stream-keepalive
...
feat(upstream): add HTTP/2 PING keepalive for long LLM generation streams
2026-09-08 20:47:07 +08:00
Wesley Liddick
c54897a59d
Merge pull request #6815 from Pluviobyte/codex/fix-directed-proxy-backups
...
fix(proxies): make backup references directed and shareable
2026-09-08 20:46:32 +08:00
Wesley Liddick
29646ba6b4
Merge pull request #6488 from aofee/codex/feat-grok-media-eligibility-ui
...
feat: add Grok media eligibility controls
2026-09-08 20:46:20 +08:00
Wesley Liddick
6f0d0ababc
Merge pull request #6320 from spongehah/fix/runtime-block-honor-persisted-cooldown
...
fix(schedule): 选号按持久化冷却条件清除本机账号级阻断
2026-09-08 20:46:07 +08:00
Wesley Liddick
52f7bcaedd
Merge pull request #6759 from ssharkkky/feat/cmv2-user-ranking-toggle
...
feat(channel-monitor-v2): add user ranking toggle and keep missing TTFT neutral
2026-09-08 20:44:07 +08:00
Wesley Liddick
95acbf1f03
Merge pull request #6424 from cyhhao/fix/bound-ops-system-log-storage
...
fix(ops): bound database-backed system log growth
2026-09-08 20:43:54 +08:00
Wesley Liddick
43569bb44c
Merge pull request #6434 from swjturay/codex/upstream-client-disconnect-drain
...
fix(openai-ws): drain upstream after client disconnect
2026-09-08 20:42:59 +08:00
Wesley Liddick
15557e7796
Merge pull request #6235 from StarryKira/codex/fix-6232-channel-cache-invalidation
...
fix: broadcast channel cache invalidations across instances
2026-09-08 20:42:45 +08:00
Wesley Liddick
e2fd418a96
Merge pull request #6372 from clansty/fix/openai-oauth-429-fallback-disabled
...
fix: 修复关闭 429 默认回避后仍触发 OAuth 运行时冷却
2026-09-08 20:42:35 +08:00
Wesley Liddick
4e9b01fd59
Merge pull request #6838 from atogumo/fix/claude-code-probe-any-model
...
fix(gateway): accept Claude Code max_tokens=1 probes for any model
2026-09-08 20:42:24 +08:00
Wesley Liddick
aa167a25a7
Merge pull request #6775 from xlplbo/fix/plugin-zip-handle-windows
...
fix(plugin): 提交插件包前先关闭 ZIP 读取器,修正 Windows 下两例单测
2026-09-08 20:12:42 +08:00
Wesley Liddick
1e6114c270
Merge pull request #6812 from Pluviobyte/codex/fix-model-plaza-subscriptions
...
fix(model-plaza): include active subscription groups
2026-09-08 20:10:42 +08:00
Wesley Liddick
9e7039ebca
Merge pull request #6811 from Pluviobyte/codex/fix-proxy-partial-update
...
fix(proxies): preserve omitted expiry and fallback settings
2026-09-08 20:10:20 +08:00
Wesley Liddick
1923d1c27d
Merge pull request #6814 from feeeei/fix/go-redis-pool-nil-ctx-panic
...
fix(redis): 升级 go-redis 至 v9.22.0,修复连接池 nil-ctx panic 竞态
2026-09-08 20:09:59 +08:00
Wesley Liddick
b638445234
Merge pull request #6754 from ccemoji/codex/minimal-upstream-fix
...
fix: cancel streaming upstream before closing body
2026-09-08 20:09:37 +08:00
Wesley Liddick
979fe247f9
Merge pull request #6821 from 22zyfeng-collab/fix/antigravity-oauth-plan-type
...
fix(antigravity): preserve OAuth plan_type when saving accounts
2026-09-08 20:09:12 +08:00
Wesley Liddick
4892b8f17e
Merge pull request #6810 from Pluviobyte/codex/fix-announcement-proxy-date-range
...
fix: validate announcement and proxy date ranges
2026-09-08 20:08:24 +08:00
Wesley Liddick
28b807a735
Merge pull request #6816 from Pluviobyte/codex/fix-repeated-proxy-fallback
...
fix(proxies): allow repeated expiry fallback and preserve origin
2026-09-08 20:07:08 +08:00
atogumo
4e5d67df35
fix(gateway): accept Claude Code max_tokens=1 probes for any model
...
The claude_code_only probe exemption only fired for models containing
"haiku". Claude Code also sends max_tokens=1 requests without a system
prompt to the model currently in use, e.g. when switching models or
refreshing the context usage, so on sonnet/opus groups those requests failed
the system-prompt check and were rejected as non-Claude-Code clients.
Recognise the probe from the request body itself (max_tokens == 1) once the
User-Agent check has passed, regardless of model, and carry max_tokens into
the ParsedRequest projection so the hot path sees it too. The haiku context
flag and the local haiku interception are unchanged; non-haiku probes reach
the pool as ordinary one-token requests. One output token offers nothing to
a client that already forges the CLI User-Agent, so this widens no attack
surface.
Fixes #6591
2026-09-08 19:12:37 +08:00
Wesley Liddick
dbe92a1c24
Merge pull request #6758 from DuskLin/feat/minimax-platform
...
feat(minimax): 增加 MiniMax 平台支持
2026-09-08 18:50:06 +08:00
刘佳林
10940ecf39
fix(minimax): gofmt MiniMax allowlist comments
...
golangci-lint gofmt failed on aligned comments in the default upstream host list.
2026-09-08 17:49:11 +08:00
刘佳林
3495635a52
fix(minimax): 补齐阈值停调与额度监控接线
...
调度阈值评估和渠道监控 quota 取数补上 MiniMax 分支;GetCodingPlanProvider 改为只认官方域名,避免把中转 Key 发到厂商额度端点。composite /v1/models 与 Codex 目录纳入 MiniMax;迁移改名为 237;allowlist 去掉未使用的 www.* / api.minimax.cn,abab 前缀收窄到 5/6/7。
2026-09-08 17:41:29 +08:00
mason0510
c8deeb0b05
fix(grok): 移除 Chat Completions 中不支持的 external_web_access 参数
...
模型:Claude Sonnet 5
修复内容:在 Grok Chat Completions raw 转发流程中添加 external_web_access 参数过滤,修复 Grok API 返回 400 "Argument not supported: external_web_access" 错误
修改理由:Grok xAI API 不支持 external_web_access 参数,Sub2API Responses API 路径已有过滤,但 Chat Completions 路径缺失,导致 grok-4.5 等模型调用失败返回 502
验证结果:代码已通过本地 Demo 验证递归删除逻辑正常,待远端编译部署后验证真实 API 调用
影响范围:仅影响 Grok 平台 Chat Completions API 请求体处理,不影响 Responses API 和其他平台
回滚方式:git revert 本次提交,或手动移除 openai_gateway_chat_completions_raw.go line 159-163 的 sanitizeGrokUnsupportedFields 调用
[AI: 梁心语/Claude Sonnet 5 @ 2026-09-08T17:30]
2026-09-08 16:41:09 +08:00
22zyfeng-collab
b6ee9f0a32
fix(antigravity): preserve OAuth subscription plan across account creation
2026-09-08 15:02:32 +08:00
Rain
7137fae2a6
test(proxies): preserve incoming references when editing backups
2026-09-08 13:58:34 +08:00
Rain
859de4c8fd
fix(proxies): allow repeated expiry fallback and preserve origin
2026-09-08 13:56:20 +08:00
Rain
e835f79819
fix(proxies): make backup references directed and shareable
2026-09-08 13:56:19 +08:00
feeeei
99eba19ffc
fix: 升级 go-redis 至 v9.22.0 修复连接池 nil-ctx panic
...
上游竞态:调用方超时后 wantConn.ctx 被置 nil,拨号 goroutine 用 nil ctx
创建超时上下文触发 panic(go-redis#3630,v9.18.0 起修复)。
生产环境在连接池饥饿 + 请求超时风暴下每秒触发上万次。
同步将 ZRangeByScore 迁移至 ZRangeArgs:v9.22.0 将其标记为 deprecated,
golangci-lint staticcheck 拦截(SA1019)。ZRangeArgs{ByScore: true} 与原
调用发出的 Redis 命令参数完全等价(LIMIT 编码逻辑相同)。
2026-09-08 13:46:59 +08:00