jjaw
a8a8a58f65
优化批量账户事件的调度重建范围
2026-07-16 00:11:17 +08:00
Wesley Liddick and GitHub
be6cd1250c
Merge pull request #4367 from Wei-Shaw/feat/grok-custom-base-url-and-headers
...
feat(grok): 支持账号级自定义上游地址与请求头覆写
2026-07-15 20:55:16 +08:00
Wesley Liddick and GitHub
34015a1791
Merge pull request #4359 from catoncat/agent/fix-agent-identity-import-expiry
...
fix(openai): make Agent Identity usable end to end
2026-07-15 20:55:05 +08:00
Wesley Liddick and GitHub
a733e66330
Merge pull request #4358 from DanisJiang/feat/admin-recharge-affiliate-rebate
...
feat(affiliate): support rebates for admin balance deposits
2026-07-15 20:54:48 +08:00
Wesley Liddick and GitHub
960d1886f3
Merge pull request #4323 from turingcat/feat/plan-currency-label
...
feat(payment): 订阅套餐支持币种标注,区分 $ 符号对应币种
2026-07-15 20:54:34 +08:00
shaw
221581400b
feat(grok): 支持账号级自定义上游地址与请求头覆写
...
将账号级请求头覆写从 anthropic/openai 的 api_key 账号扩展到 Grok 的
api_key 与 oauth 账号,并放开 Grok OAuth 账号的自定义上游地址(仅作用于
转发端点,授权与 token 刷新链路不变)。
后端:
- IsHeaderOverrideEligible 扩展到 Grok(api_key+oauth),禁止名单新增
x-grok-conv-id(逐请求会话路由头)。
- 所有 Grok 上游请求路径接线 ApplyHeaderOverrides(Responses/Chat 桥/
媒体/配额探测/billing 探测/连通性测试),统一置于内置默认头之后。
- GetGrokBaseURL/GetGrokMediaBaseURL 放开 OAuth 自定义地址:官方地址
视同未定制回落官方网关,仅显式第三方 host 改发转发流量。
- 非官方 host 允许任意 path 前缀,官方 host 仍强制 /v1。
- OAuth base_url 校验按 host 判定官方/自定义,自定义 host 恒受运营方
URL 策略约束,不受 XAI_ALLOW_UNSAFE_URL_OVERRIDES 调试开关放宽。
- 给 GrokQuotaService 注入 config,使配额/billing 探测与转发共用同一
URL 策略。
前端:
- Edit 模态为 Grok OAuth 账号新增「自定义上游地址」开关。
- 请求头表单新增 JSON 快速导入与按 JSON 一键复制(复用 useClipboard,
兼容非安全上下文 HTTP 页面)。
- 门控改为平台×类型判定,Bulk 批量 base_url 增加格式校验,zh/en 文案同步。
2026-07-15 20:30:23 +08:00
cat
2147da682b
fix(openai): 修复 Agent Identity 审查问题
2026-07-15 18:30:16 +08:00
cat
12e6e70775
fix(openai): 补全 Agent Identity Codex 能力
2026-07-15 17:52:10 +08:00
cat
529744c7c7
fix(openai): 修复 Agent Identity 导入过期校验
2026-07-15 17:52:10 +08:00
Yuhao Jiang
736824dd7a
feat(affiliate): add admin recharge rebate option
2026-07-15 04:28:55 -05:00
turingcat and Claude Fable 5
705da4f610
feat(payment): 补充订阅套餐币种字段的 SQL 迁移文件
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-15 16:59:00 +08:00
github-actions[bot]
d515c3045c
chore: sync VERSION to 0.1.156 [skip ci]
2026-07-15 08:51:27 +00:00
shaw
4e4ce440b3
fix(test): align duplicate account test with new NewAccountHandler signature
2026-07-15 16:13:22 +08:00
shaw
bdb5be1c42
Merge remote-tracking branch 'origin/main' into pr4241-fix
2026-07-15 16:11:28 +08:00
Wesley Liddick and GitHub
0de768e8be
Merge pull request #4221 from heathermhuang/codex/fix-grok-oauth-pool-health
...
fix(grok): refresh OAuth pools proactively
2026-07-15 16:07:09 +08:00
Wesley Liddick and GitHub
d348193179
Merge pull request #4262 from wucm667/fix/issue-4245-root-models-alias
...
fix(codex): add root models compatibility alias
2026-07-15 16:06:59 +08:00
Wesley Liddick and GitHub
bac925624f
Merge pull request #4289 from Tiantianr/fix/openai-ws-first-message-timeout
...
fix(openai-ws): make first-message timeout configurable
2026-07-15 15:45:24 +08:00
Wesley Liddick and GitHub
651bb019d5
Merge pull request #4346 from xiaohei210509/agent/handle-codex-image-function-tool
...
fix(openai): preserve Codex image function tools during bridge injection
2026-07-15 15:35:07 +08:00
Wesley Liddick and GitHub
4de53b61b8
Merge pull request #4339 from wp-a/codex/read-tool-stream-finalization
...
fix(apicompat): sanitize complete Read tool argument streams
2026-07-15 15:16:24 +08:00
Wesley Liddick and GitHub
dba6cefb6b
Merge pull request #4340 from wp-a/codex/anthropic-incomplete-finalization
...
fix(apicompat): preserve incomplete stream finalization
2026-07-15 15:16:12 +08:00
Wesley Liddick and GitHub
80560e48d2
Merge pull request #4341 from wp-a/codex/additional-tools-discriminator
...
fix(apicompat): scope additional tools parsing
2026-07-15 15:15:58 +08:00
xiaohei210509 and zxh
ade5944201
fix(openai): preserve Codex image function tools
2026-07-15 15:10:43 +08:00
Wesley Liddick and GitHub
44452d4a9d
Merge pull request #4334 from lenzhang/fix/grok-vision-image-bridge
...
fix(grok): bridge image_url content parts through Responses API for vision models
2026-07-15 14:43:44 +08:00
Wesley Liddick and GitHub
8e84071f21
Merge pull request #4307 from wp-a/fix/openai-first-output-timeout
...
fix(openai): bound native responses first output wait
2026-07-15 14:41:11 +08:00
Wesley Liddick and GitHub
788b1cebf1
Merge pull request #4333 from superman2003/fix/grok-free-messages-function-cache
...
fix(grok): cache Free Messages function tools
2026-07-15 14:40:14 +08:00
王鹏
9b4a7d5d47
fix(apicompat): sanitize complete Read tool argument streams
2026-07-15 14:31:26 +08:00
王鹏
d6d9f6ea4f
fix(apicompat): preserve incomplete stream finalization
2026-07-15 14:31:26 +08:00
王鹏
c3a425837c
fix(apicompat): scope additional tools parsing
2026-07-15 14:31:26 +08:00
shaw
986310d0bd
fix(lint): apply De Morgan's law to grok vision bridge gate (QF1001)
2026-07-15 14:30:47 +08:00
Wesley Liddick and GitHub
2d218fbe61
Merge pull request #4317 from yan9651688/feat/account-one-click-copy
...
feat(accounts): add safe one-click account duplication
2026-07-15 14:23:35 +08:00
Wesley Liddick and GitHub
9d1b44e6a0
Merge pull request #4324 from superman2003/fix/responses-lite-tool-compat
...
fix(openai): normalize Responses Lite tool declarations
2026-07-15 14:22:15 +08:00
Wesley Liddick and GitHub
601a1d1662
Merge pull request #4305 from wp-a/fix/outbox-degraded-rebuild-latch
...
fix(scheduler): latch degraded outbox rebuilds
2026-07-15 14:22:03 +08:00
Wesley Liddick and GitHub
83ef20bf8b
Merge pull request #4299 from wp-a/fix/xai-oauth-unsafe-base-url-components
...
fix(xai): reject empty base URL queries
2026-07-15 14:21:42 +08:00
superman2003
3170c110a0
fix(openai): surface Messages stream error events
2026-07-15 14:07:01 +08:00
superman2003
08ea29428d
fix(grok): recognize probed Free cache accounts
2026-07-15 14:07:01 +08:00
Wesley Liddick and GitHub
156cabd260
Merge pull request #4316 from fengshao1227/fix/grok-image-model-responses-reject
...
fix(grok): 拦截图片模型发往 Responses 端点,返回明确错误
2026-07-15 13:49:25 +08:00
Wesley Liddick and GitHub
3e30862ddd
Merge pull request #4295 from caigee-cmd/perf/direct-anthropic-chatcompletions-bridge
...
perf(apicompat): force-chat 路径直转 Anthropic↔ChatCompletions,跳过 Responses 中间层
2026-07-15 13:46:56 +08:00
王鹏
9950f4a2e2
fix(scheduler): latch degraded outbox rebuilds
2026-07-15 13:24:08 +08:00
lenzhang
d5bc576b4f
fix(grok): bridge image_url content parts through Responses API for vision models
...
The eligibility gate in grokChatResponsesBridgeEligibility rejected any
structured content (arrays), including standard OpenAI image_url parts.
This forced image-bearing requests to fall back to raw Chat Completions
forwarding, where non-Composer models have no image bridge — silently
dropping the images or causing upstream errors.
Changes:
- Allow content arrays containing only text and image_url parts to pass
eligibility, so ChatCompletionsToResponses can convert them to
input_image parts that Grok vision models natively support.
- Force image-bearing requests to use Responses even when no prompt
cache identity is available, since the raw path cannot forward images
for non-Composer models.
- Add grokChatStructuredContentBridgeable helper with conservative
validation: unknown part types (e.g. input_audio) still fall back.
- Update tests: image_url content is now bridgeable; add cases for
text+image, text-only arrays, unknown parts, and empty arrays.
2026-07-14 22:24:03 -07:00
superman2003
f041b5cf0a
fix(grok): cache Free Messages function tools
2026-07-15 13:05:13 +08:00
王鹏
fc4089f292
fix(openai): bound native responses first output wait
...
Add an opt-in first semantic output budget for native HTTP Responses, including response-header wait. Keep preamble and keepalive bytes non-semantic so a stalled account can fail over once without replaying its response IDs. Defaults remain disabled.
Related to #4201 , #4185 , and #4248 . Complements the HTTP/2 dead-connection fix in #4207 .
2026-07-15 13:01:16 +08:00
王鹏
e8e360c802
fix(xai): reject unsafe base URL components
2026-07-15 12:50:15 +08:00
shaw
7b51271a84
fix(apicompat): default stop_reason for empty-choices responses
...
Adversarial re-verification found one more divergence from the
double-conversion chain: an upstream 200 with empty choices (or a nil
response) left stop_reason as an empty string, while the old chain
reports end_turn. Derive the fallback from the content blocks — the
guard never fires when choices exist, since every finish_reason maps to
a non-empty stop_reason.
Also strengthen the equivalence tests: compare tool_use Content[].Input
and tool_call Function.Arguments across bridges, and add an
empty-choices stop_reason parity case.
2026-07-15 11:44:47 +08:00
superman2003
bc6d9c47d2
fix(openai): normalize Responses Lite tool declarations
2026-07-15 11:37:38 +08:00
shaw
430fd8f20a
fix(apicompat): align direct bridge edge semantics with double conversion
...
Adversarial review of the direct bridge found divergences from the
double-conversion chain it replaces; all are now aligned and covered by
tests that fail against the previous implementation:
- flush argument fragments buffered before a deferred tool announcement,
and announce name-less tools at finalize, so no tool arguments are lost
when upstreams stream arguments before the name
- fold text-only user array content into a single string; parts form only
when an image requires it (strict chat upstreams reject array content)
- drop tool_choice pointing at undeclared tools and unknown choice types
- treat cache_write_tokens/cache_creation_tokens as alternate spellings
(prefer write), not additive
- generate a response id when the upstream omits one
- derive stop_reason from blocks for content_filter/unknown finish reasons
- emit input_json_delta "{}" when a tool block closes without argument
deltas
2026-07-15 11:29:22 +08:00
turingcat and Claude Fable 5
2bbdd47002
feat(payment): 订阅套餐支持币种标注,区分 $ 符号对应币种
...
后台配置与用户端展示的套餐价格统一使用 $ 符号,而实际扣款币种随
支付渠道配置漂移(如 Stripe 配置 NZD 时按新西兰元扣款),用户易
误认为美元。本次为套餐新增可选的展示性币种标注:
- SubscriptionPlan 新增 currency 字段(ISO 4217 三字母码,默认空)
- 空值不展示任何标注,存量套餐行为完全不变
- 非空值复用 payment.NormalizePaymentCurrency 校验并规范化为大写
- 后台套餐编辑弹窗新增可选币种输入,列表价格列展示币种小字
- 用户端套餐卡片价格与划线原价旁展示币种小字
- 纯展示性质,不影响任何支付/扣款逻辑
Closes #4315
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-15 11:17:45 +08:00
li
6a61b2daca
fix(grok): 拦截图片模型发往 Responses 端点,返回明确错误
...
Fixes #4301
2026-07-15 11:16:07 +08:00
Wesley Liddick and GitHub
3f605c3543
Merge pull request #4303 from wp-a/fix/web-fingerprinted-asset-caching
...
fix(web): limit immutable caching to fingerprinted assets
2026-07-15 11:12:50 +08:00
Wesley Liddick and GitHub
23796a1b34
Merge pull request #4291 from bestony/agent/user-server-timing/bes-26
...
feat: extend Server-Timing to authenticated user web APIs
2026-07-15 11:12:37 +08:00
Wesley Liddick and GitHub
5b5e41450c
Merge pull request #4310 from jianjianai/codex/perf-scheduler-final
...
perf(scheduler): 完善缓存桶生命周期并复用重建批次查询
2026-07-15 11:09:47 +08:00