Zhaofeng Li
e35123b8ac
fix(codex): include OpenCode Go in model capability resolution
2026-09-22 14:50:29 +08:00
Erik
7f1f85cb76
fix(gemini): stop cooling Vertex 429s until PST midnight, honor RetryInfo
...
Vertex AI reports 429s with a standard google.rpc.RetryInfo detail
(retryDelay like "39s"), but ParseGeminiRateLimitResetTime only knew the
AI Studio quotaResetDelay metadata, so parsing always failed for Vertex
bodies. The fallback then lumped service_account accounts in with
API-key/AI-Studio ones and rate limited them until the next PST
midnight, so a transient per-minute throttle could take a pay-as-you-go
account (and with it the whole group) offline for up to a day.
- Parse google.rpc.RetryInfo retryDelay from 429 bodies, capped at 15
minutes to guard against absurd upstream values.
- When no reset time can be parsed, cool service_account (Vertex)
accounts down for 60s instead of until PST midnight: pay-as-you-go
quotas are short-window RPM/TPM with no daily reset.
Fallback behavior for Code Assist, Google One and API-key accounts is
unchanged, covered by new regression tests.
2026-09-22 11:31:31 +08:00
nagi330
935db68517
feat(grok):add grok 4.7 support
2026-09-22 10:30:01 +08:00
Wesley Liddick
1c0a69c0ce
Merge pull request #7412 from StarryKira/codex/custom-reasoning-effort-billing
...
feat: 支持自定义思考等级倍率计费
2026-09-21 22:55:17 +08:00
lcy
27f4398b50
fix(antigravity): 裸 Gemini 模型名在所有转发入口解析到思考变体
...
#7258 引入的 resolveGeminiThinkingVariant 只接到了 ForwardGemini,
因此仅覆盖 /v1beta 原生 Gemini 路径。经 /v1/chat/completions 与
/v1/messages 进来的请求直接调用 getMappedModel,裸名被原样透传;
Antigravity 目录只登记 -low/-medium/-high/-tiered 变体,这些请求
仍然以 404 "Requested entity was not found." 失败。
把解析下沉到 getMappedModel(新增 getMappedModelForThinkingLevel),
一次覆盖四个调用点:/v1beta 原生、/v1/chat/completions、/v1/messages
以及后台账号连接测试。各转发入口按自身协议推导档位——原生读
generationConfig.thinkingConfig,Claude 侧读 thinking.budget_tokens,
两者阈值一致;默认入口按 high 兜底。
mapAntigravityModel 保持不变,调度侧的模型支持判定语义不受影响。
2026-09-21 20:13:44 +08:00
haruka
e47255715d
fix(billing): preserve final reasoning effort across forwarding paths
2026-09-21 19:58:02 +08:00
feeeei
d0ed0eacac
fix(gemini): 传输层错误转 failover,不再同账号退避重试
...
上游 Do 返回非 HTTP 错误(代理/DNS/TCP/TLS/响应头超时)时,Gemini 三条转发路径
(ForwardNative / Forward / ForwardAsChatCompletions)原先在同一账号上重试 5 次,
退避 1+2+4+8≈15s(time.Sleep 不感知 ctx),耗尽后直接向客户端写 502 且不换号:
单账号链路故障期间 TTFT 被整段拖高,同组健康账号闲置。
对齐 Anthropic/Bedrock 侧 handleUpstreamTransportError 的既有语义:
- 传输层错误单次尝试后即返回 *UpstreamFailoverError(502),由 handler failover
循环换号,耗尽后才按端点格式渲染错误;service 不再写响应
- 持久性故障(connection refused/no route/DNS not found/代理认证失败)额外临时
摘除账号 10 分钟;瞬时故障(EOF/reset/超时)只换号不摘号
- context.Canceled 保持原样返回:不换号也不摘账号
- countTokens 传输失败时立即本地估算兜底,不换号
- 摘号实现抽为 tempUnscheduleAccountForTransportError 供两侧共用,日志事件名不变
HTTP 状态码(429/5xx)的服务内重试环未改动。
2026-09-21 14:13:57 +08:00
wucm667
386f321d3c
fix(usage): export missing reasoning effort cleanly
2026-09-21 12:41:01 +08:00
wucm667
60a64568bf
ci: run simple mode compose environment test
2026-09-21 11:06:25 +08:00
wucm667
de98bdff1e
fix(images): preserve insufficient balance failures
2026-09-21 10:23:10 +08:00
wucm667
992c4f4b89
test(frontend): run platform quota modal spec in CI
2026-09-21 08:16:18 +08:00
shaw
7c700729c2
chore: update gitignore
2026-09-20 20:05:09 +08:00
Wesley Liddick
87957a608b
Merge pull request #7413 from ranxi2001/ci/release-build-matrix
...
ci: parallelize release builds across platform runners
2026-09-20 20:02:48 +08:00
xlplbo
0d02000592
fix(openai): 非高级调度按 previous_response 路由到持有响应的账号
2026-09-20 19:28:13 +08:00
xlplbo
8d88b66668
fix(openai): 补齐非高级调度选号决策标签
2026-09-20 19:27:53 +08:00
xlplbo
763443abf2
fix(openai): 改写 Codex turn metadata 时保留非 ASCII 转义
2026-09-20 19:27:47 +08:00
chihao.ou
7f18f3e9af
fix(users): keep API key results scoped to the selected user
2026-09-20 18:09:50 +08:00
chihao.ou
b86849e442
fix(usage): ignore superseded error detail requests
2026-09-20 18:07:52 +08:00
chihao.ou
319299519b
fix(monitor): preserve the saved auto-refresh preference
2026-09-20 18:07:39 +08:00
chihao.ou
23a1d38187
fix(pricing): parse scientific notation in token bounds
2026-09-20 18:05:23 +08:00
chihao.ou
1582347204
fix(payment): trim callback base URL trailing slashes
2026-09-20 18:05:09 +08:00
ranxi2001
d1556a7a96
ci: point release helper tests at their final directory
2026-09-20 17:01:27 +08:00
ranxi2001
d2416a9b68
ci: keep release tooling and cache keys stable across jobs
2026-09-20 16:54:06 +08:00
HuntercodeT
fb58dfbd93
test(antigravity): cover the identity rewrite end-to-end through the transformer
...
Adds a case with the real block layout (attribution block, identity sentence,
task instructions) and asserts that user content mentioning Claude Code and
claude-sonnet-4-6 is forwarded unchanged.
2026-09-20 16:48:04 +08:00
haruka
b8d52fad34
feat(billing): support configurable reasoning effort multipliers
2026-09-20 16:41:49 +08:00
shaw
d2e319b2a1
test: 修复 WebSocket 同线程抢占测试的关闭时序竞态
2026-09-20 16:37:07 +08:00
ranxi2001
0892ef3a9a
ci: build release targets on independent matrix runners
2026-09-20 16:36:24 +08:00
HuntercodeT
dd292e3b00
fix(antigravity): neutralize Claude Agent SDK identity in system prompts
...
Stripping the x-anthropic-billing-header line is not enough. Claude Code's
Agent SDK prompts (session title generation, and other SDK-driven calls) open
a separate system block with
You are a Claude agent, built on Anthropic's Claude Agent SDK.
and the Google upstream still rejects those requests with 429 RESOURCE_EXHAUSTED.
Measured on Sub2API 0.2.7, which already contains the attribution fix, using an isolated single-account group, waiting for the per-model cooldown
to expire before every request so that a previous failure could not turn later
results into 503:
original request replayed 429 (8/8)
same request, generic system prompt 200 (8/8)
attribution also removed client-side 429 (3/3)
attribution removed + identity neutralized 200 (3/3)
only 'Claude' replaced in system 200 (2/2)
only 'Anthropic' removed from system 200 (2/2)
output_config / max_tokens / non-stream no effect
The rewrite is anchored at the start of a system block, so user instructions that
merely mention Claude or Anthropic, and model ids such as claude-sonnet-4-6, are
left untouched. Scoped to the Antigravity transformer, as with the existing
attribution handling.
2026-09-20 16:34:26 +08:00
shaw
95134201b2
docs: 删除误合入的 Codex 积分文档和截图
2026-09-20 16:12:11 +08:00
Wesley Liddick
acdf3c54da
Merge pull request #7401 from StarryKira/codex/codex-credits-referrals-upstream
...
feat(openai): display Codex credits and support referral invitations
2026-09-20 16:00:28 +08:00
haruka
fc96132e72
fix(openai): harden referral outcomes and isolate HTTP transport
2026-09-20 15:47:53 +08:00
haruka
8f6bbb59c7
test: stabilize Gemini keepalive test
2026-09-20 15:04:15 +08:00
Wesley Liddick
fbb9006ade
Merge pull request #7402 from Wei-Shaw/fix/7268-openai-http2-keepalive
...
fix(upstream): 恢复 OpenAI HTTP/2 保活容错期限
2026-09-20 14:57:35 +08:00
shaw
e009ea3036
fix(upstream): 恢复 OpenAI HTTP/2 保活容错期限
2026-09-20 14:46:25 +08:00
a408665321
63c079d873
fix(account): preserve settings on OAuth reauth
2026-09-20 14:39:36 +08:00
haruka
e509937382
docs: add Codex referral UI validation screenshots
2026-09-20 14:38:30 +08:00
haruka
5090ffe05e
feat(openai): show Codex credits and manage referral invitations
2026-09-20 14:38:29 +08:00
Wesley Liddick
bbdcfbac0a
Merge pull request #7304 from wucm667/fix/issue-7298-response-model-alias
...
fix(gateway): restore public response model aliases
2026-09-20 14:07:16 +08:00
Wesley Liddick
7403a01177
Merge pull request #7314 from wucm667/fix/issue-7306-keyword-reminder-bypass
...
fix(moderation): prevent reminder tags from bypassing keyword checks
2026-09-20 14:07:04 +08:00
Wesley Liddick
53b4bbe736
Merge pull request #7349 from wucm667/fix/issue-7348-preserve-client-version
...
fix(settings): preserve client version on invalid user agent
2026-09-20 14:06:48 +08:00
Wesley Liddick
8bb48622a3
Merge pull request #7362 from wucm667/fix/issue-7358-preserve-account-errors
...
fix(accounts): preserve refresh errors during usage queries
2026-09-20 14:06:36 +08:00
Wesley Liddick
f28adb6ddb
Merge pull request #7387 from Brisbanehuang/codex/upstream-content-audit-typesafe
...
feat: 内容审计接入 TypeSafe AI,支持双引擎切换与独立配置
2026-09-20 13:47:14 +08:00
Wesley Liddick
19794bc46a
Merge pull request #7397 from Wei-Shaw/feat/hostservice-account-metadata
...
feat(pluginapi): HostService 账号目录返回结构化只读元数据
2026-09-20 11:39:15 +08:00
shaw
29eead917f
feat(pluginapi): HostService 账号目录返回结构化只读元数据
...
纯宿主侧改动,向后兼容。
- 契约(pkg/pluginapi/v1/plugin.proto,已重新生成):ListAccounts 增补
repeated AccountInfo accounts(保留 account_ids 向后兼容),新增 metadata_json
只读快照字段。HostServiceAPIVersion 1→2(InitHostServices 运行时协商,加法式,
旧调用方忽略新字段即可)。
- 权限边界:可见范围由清单能力经 pluginCapabilityAccountScopeGrants 推导,
ListAccounts 与 ResolveOutboundIdentity 均以该范围为权威边界。
- metadata_json 采用 denylist:剥离 Credentials 与含反向引用的关联对象
Groups/AccountGroups(避免 encoding/json 循环引用),其余字段自动透传,
数据模型新增非机密字段无需改宿主。
测试:范围/元数据/无凭据泄漏用例、denylist 反射护栏 + 循环引用安全断言、纵深过滤用例;
build/vet/gofmt、-tags unit 与 -race 全绿。
2026-09-20 11:26:19 +08:00
zhuzhihaocool-bit
fabdfb8a5b
fix(frontend): ensure Codex base URLs include /v1
2026-09-20 11:07:29 +08:00
Achord Chan
1411b7eb7e
fix(gateway): recognize Baseten reasoning budget errors
2026-09-20 11:02:06 +08:00
Achord Chan
ef51690b5a
fix(antigravity): preserve string const constraints in tool schemas
2026-09-20 10:46:09 +08:00
Brisbanehuang
1bfe0d3728
fix: sync draft audit key status and threshold defaults
2026-09-19 20:52:31 -04:00
Brisbanehuang
783a0a9830
feat(content-audit): add independent TypeSafe engine profiles
2026-09-19 20:52:31 -04:00
chihao.ou
cd2a4357c2
fix(groups): reject negative custom rates before adding
2026-09-19 19:43:39 +08:00