IanShaw
fce90ecf89
渠道定价:持久化服务层级与区间倍率
2026-08-19 06:35:11 -07:00
xuhaihan
1ab3256783
fix(proxy): format validated probe targets
2026-08-19 21:31:11 +08:00
xuhaihan
ec5a345935
fix(proxy): validate configurable probe targets
2026-08-19 21:10:08 +08:00
Wesley Liddick
32a0d9ba2d
Merge pull request #5837 from xuhaihan/fix/cn-provider-quota-cell-layout
...
fix(frontend): prevent CN quota labels overlapping bars
2026-08-19 21:05:26 +08:00
lbyxiaolizi
fbc9ee626d
fix(apicompat): narrow malformed tool-call handling
2026-08-19 20:49:31 +08:00
Wesley Liddick
32ecd5cc62
Merge pull request #5847 from wucm667/feat/issue-5826-cn-header-overrides
...
feat(accounts): support header overrides for CN providers
2026-08-19 20:28:36 +08:00
Wesley Liddick
38a5f266e9
Merge pull request #5839 from xuhaihan/test/fix-grok-api-key-placeholder
...
test(frontend): align Grok API key placeholder assertion
2026-08-19 20:28:19 +08:00
Wesley Liddick
b7fe8ebaad
Merge pull request #5762 from jaxxjj/codex/perf-usage-stats-grouping-sets
...
perf(usage): aggregate admin stats in one scan
2026-08-19 20:27:42 +08:00
xuhaihan
d5484866fa
fix(config): register proxy probe URLs default
2026-08-19 19:52:10 +08:00
Wesley Liddick
23dc9377bc
Merge pull request #5844 from lyen1688/fix/grok-inline-image-view-image
...
fix(grok): 避免内联图片与 view_image 工具冲突
2026-08-19 19:22:08 +08:00
Wesley Liddick
68666e1f86
Merge pull request #5845 from vincenthcui/fix/openai-ws-later-turn-429-failover
...
fix(openai): resume later websocket turns after 429
2026-08-19 19:21:49 +08:00
lyen1688
b0cdea303a
补全 Grok 多入口内联图片工具适配
...
raw Chat 绕过 Responses 公共补丁,需按 Chat schema 单独移除当前轮内联图片对应的冗余 view_image;同时补充 Chat、raw Chat 与 Messages 真实出站回归测试。
2026-08-19 19:04:53 +08:00
wucm667
1b30a2d747
feat(accounts): support header overrides for CN providers
2026-08-19 19:03:39 +08:00
Vincent Cui and Kinso
82cbe6aff7
fix(openai): resume later websocket turns after 429
...
Port the safe current-turn replay from #4622 onto current main.
Co-authored-by: Kinso <kinsolee@users.noreply.github.com >
2026-08-19 18:51:21 +08:00
lbyxiaolizi
e2d9ce0cad
fix(apicompat): reject malformed tool-call arguments
2026-08-19 18:48:35 +08:00
lyen1688
99a8b84701
修复 Grok 内联图片与 view_image 冲突
2026-08-19 18:36:53 +08:00
hank
63839f193a
fix(frontend): align admin role selector styling
2026-08-19 16:47:51 +08:00
hank
994fbfeddb
fix(frontend): prevent CN quota labels overlapping bars
2026-08-19 16:47:51 +08:00
hank
b0464a9863
feat(proxy): allow configurable probe targets
2026-08-19 16:47:50 +08:00
hank
f917d19d3e
test(frontend): align Grok API key placeholder assertion
2026-08-19 16:47:11 +08:00
Wesley Liddick
ae62854abc
Merge pull request #5815 from 771373073/fix/grok46-xhigh
...
fix(grok): preserve xhigh effort for grok-4.6
2026-08-19 16:42:52 +08:00
Wesley Liddick
89d28037f2
Merge pull request #5822 from hansnow/fix/ws-http-bridge-followup-client-tools
...
fix(openai): 修复 WS HTTP bridge 多轮客户端工具回放
2026-08-19 16:42:28 +08:00
Wesley Liddick
e8b53c9195
Merge pull request #5801 from MokoYee/fix/openai-chat-buffered-stream-failover
...
fix(openai): 修复 Chat 非流式缓冲读取错误未触发故障转移
2026-08-19 16:41:33 +08:00
Wesley Liddick
6a945b3cad
Merge pull request #5817 from wucm667/fix/issue-5796-composite-new-platforms
...
fix(composite): support Kimi, GLM, and DeepSeek
2026-08-19 15:36:38 +08:00
hansnow
fefd0d5145
test(apicompat): avoid unchecked tool history assertions
2026-08-19 15:31:18 +08:00
hansnow
e4896c41d2
test(apicompat): satisfy client tool type assertions
2026-08-19 15:26:19 +08:00
shaw
499a8ee423
fix(composite): exempt resolved grok/CN targets from messages dispatch gate
...
sanitizeGroupMessagesDispatchFields forces AllowMessagesDispatch=false for
every non-openai platform including composite, and the gate checked only the
group platform — so composite requests resolved to grok/CN targets were
rejected 403 on /v1/messages and /v1/messages/count_tokens before reaching
the composite target whitelist, leaving the CN rollout unusable for
Claude-protocol clients.
- allowOpenAICompatibleMessagesDispatch: composite groups resolved to a
grok/CN target get the same exemption as the standalone platforms;
openai-resolved and unresolved targets keep requiring the switch
- resolveOpenAIMessagesDispatchMappedModel: skip the group-level dispatch
model mapping (openai-specific gpt defaults) for composite grok/CN
targets — model rewriting stays with account-level model_mapping
2026-08-19 15:24:26 +08:00
hansnow
b94e484e23
fix(openai): preserve client tools across WS bridge turns
2026-08-19 15:19:33 +08:00
shaw
aa673062e2
fix(composite): keep CN rollout on fully supported paths
...
- Responses WebSocket composite whitelist stays openai+grok: CN accounts
cannot pass the WSv2 ingress transport filter and the WS HTTP bridge
has no Responses conversion for them, so admitting CN targets only
turns a clear policy rejection into a misleading no-available-account
- widen the responses/input_tokens and messages/count_tokens composite
gates to the shared openai-compatible text whitelist so CN targets get
the same local-estimate token counting as generation
- restore the Claude default-model fallback for standalone CN groups
(admin candidates and custom models list) while keeping composite
listings limited to CN account mapping keys
- refresh the scheduler bulk-rebuild comment and bucket capacity hints
for the 8-platform canonical set
2026-08-19 14:58:32 +08:00
shaw
bd1ccd9736
Merge remote-tracking branch 'origin/main' into fix/issue-5796-composite-new-platforms
2026-08-19 14:47:34 +08:00
Wesley Liddick
7d9c958482
Merge pull request #5810 from Pluviobyte/codex/fix-responses-input-tokens
...
fix(codex): handle Responses input token preflight
2026-08-19 14:43:33 +08:00
Wesley Liddick
2a5ae2b2dc
Merge pull request #5816 from kingsleydon/fix/composite-codex-support
...
feat(composite): support Codex endpoints
2026-08-19 14:19:26 +08:00
wucm667
4d3b300a25
test(scheduler): update CN platform expectations
2026-08-19 14:05:52 +08:00
Wesley Liddick
e943f817b1
Merge pull request #5729 from lbyxiaolizi/fix/responses-chat-reasoning-content-passback
...
fix(openai-compat): Responses→Chat 桥接按 reasoning item id 缓存回注 reasoning_content (#5520 )
2026-08-19 14:03:03 +08:00
wucm667
b171bb0e4a
fix(composite): support CN providers
...
Extend composite routing, pricing, migrations, and admin options for Kimi, GLM, and DeepSeek.
2026-08-19 13:01:25 +08:00
Kingsley
58e147fba6
feat(composite): support Codex endpoints
2026-08-19 04:40:32 +00:00
boooot
892787723f
fix(grok): preserve xhigh effort for grok-4.6
2026-08-19 03:38:11 +00:00
Rain
bfac49fef9
fix(codex): handle responses input token preflight
2026-08-19 11:34:18 +08:00
Wesley Liddick
82f7dd14f7
Merge pull request #5794 from Dessalines39394/fix/star-history-chart
...
docs: fix broken star history chart in README
2026-08-19 11:23:33 +08:00
Wesley Liddick
e61595fb35
Merge pull request #5780 from Randark-JMT/fix/channel-monitor-p2
...
fix(monitor): P2 audit follow-ups — credential/balance semantics, capability checks, single account load, quota placeholder UI
2026-08-19 11:21:35 +08:00
Wesley Liddick
c6f4fbde49
Merge pull request #5676 from Perfecto23/agent/openai-capacity-failover
...
fix(openai): recover message-only capacity failures before output
2026-08-19 11:11:23 +08:00
MokoYee
b228b93e9c
fix(openai): 修复 Chat 非流式缓冲读取错误未触发故障转移
2026-08-19 10:41:47 +08:00
wucm667
b410c39133
fix(security): add nanoid audit exception for GHSA-2v37-7h3g-55p8
2026-08-19 10:17:52 +08:00
Wesley Liddick
359fd12b2e
Merge pull request #5749 from Randark-JMT/chore/remove-sora-leftovers
...
chore: remove leftover Sora references after platform removal
2026-08-19 09:41:25 +08:00
Wesley Liddick
214210e1b2
Merge pull request #5782 from UnlastingR/fix/cn-provider-account-test-routing
...
fix(accounts): route CN provider chat tests correctly
2026-08-19 09:37:45 +08:00
Dessalines39394
85cb732cdb
docs: fix broken star history chart in README
...
The star history chart was broken due to GitHub stargazer API restrictions. Update the chart URLs in README.md, README_CN.md and README_JA.md so the chart renders again.
2026-08-18 18:47:23 +00:00
UnlastingR
ac6208de16
fix(accounts): route CN provider chat tests correctly
2026-08-18 08:46:28 -04:00
Randark
2c250bfd73
fix(monitor-ui): localize the "quota" placeholder model across monitor views
...
纯配额模式的主模型存储值是占位符 "quota"(数据源是关联账号而非模型),
此前在管理列表主模型列、用户端监控卡片、用户端详情弹窗、运行结果弹窗
四处被当作真实模型名直接渲染,读起来像假模型。
新增 useChannelMonitorFormat.formatMonitorModel:占位符替换为本地化
「配额」标签(复用既有 monitorCommon.checkMode.quota,零新增 i18n 键),
quota_probe/probe 的真实模型名不受影响;纯匹配逻辑(如 15d/30d 可用率
按模型名回查 detail)仍用原始值。
问题定位备注:另一反馈「设置页看不到 channel_monitor_show_quota 开关」
经查为部署镜像过旧(开关随 #5761 于 08-18 合入,反馈环境容器构建于
08-15),上游代码中开关完整存在,更新镜像即可,无需改码。
2026-08-18 10:35:57 +00:00
Randark
c9effc4560
fix(frontend): monitor form check-mode restore, account unbinding and mode badge
...
审计 P2-7 三处前端收尾:
- 切离 antigravity 时对称还原 check_mode:antigravity 强制 quota,但反向
切走没有还原——编辑存量 antigravity 监控换平台后停留在 quota,目标平台
未必支持。现切走时还原为 probe 并清掉占位模型 'quota'(回填值),否则
probe 模式拿 'quota' 当探活模型(与离开 grok 清 DEFAULT_GROK_MODEL
同一先例)。
- update 切回 probe 显式发 account_id=0:后端语义 0=解绑、null=不动,
此前 probe 模式 payload 带 null,存量关联永远清不掉。仅 update——
create 发 0 会落 &0 触发外键违约(API 类型注释同步写明)。
- 管理列表 provider 徽章旁并列 check_mode 徽章(checkModeLabel 此前
定义了却无处使用):quota 系=蓝、probe=中性灰,三种模式一眼可分;
i18n 复用既有 monitorCommon.checkMode.*,零新增键。
2026-08-18 10:28:28 +00:00
Randark
e2dfb3b8cb
refactor(monitor): pass loaded account through quota sources (single load per fetch)
...
配额 fetcher 缓存未命中时账号被加载两次:fetchUncached GetByID 一次,
下游数据源(GetUsage / CN QueryUsage / CN QueryBalance)按 ID 再各自
GetByID 一次——每次 GetByID 含 proxies/groups 联查,纯属重复劳动。
统一改为「路由前加载一次、指针直传」:
- fetcher 三个数据源接口签名改收 *Account:
GetUsageForAccount / QueryUsageForAccount / QueryBalanceForAccount
- AccountUsageService 暴露 GetUsageForAccount 直通(getUsageForAccount
既有逻辑零改动)
- CN 两侧服务抽 validateCodingPlanAccount / validatePayGAccount
(加载后校验原样),新 ForAccount 入口 = NOT_CONFIGURED 守卫 → 校验 →
singleflight → 探测;ID 入口 = load + 委托,语义不变
- singleflight key 保持 "cn_quota:<id>" / "cn_balance:<id>":ForAccount
与 admin handler 的 ID 入口并发探测仍按账号合并
- cn_provider_balance_check_service.checkOne 刻意留在 ID 入口:调度器
路径按 ID 取的是最新凭据,不复用可能已过期的已加载账号
校验移到 flight 之外且 ForAccount 复用同一套校验,直传无法绕过
平台/模式检查;专项测试固化(无效账号零出站请求、单次加载指针直传
require.Same)。
2026-08-18 10:28:28 +00:00