shaw
ba88cc239c
fix(billing): bill composite alias requests by the concrete forwarded model
...
Composite public aliases (e.g. all/claude) reach the Anthropic/Gemini
billing core via OriginalModel/ChannelMappedModel source overrides.
Unknown aliases resolved to no pricing and silently recorded $0 cost,
while family-word aliases were mispriced by the fallback family match
(Opus traffic billed at the Sonnet fallback rate). The OpenAI path
already guards this via usageBillingModelCandidates; the shared
recordUsageCore had neither the guard nor a fallback.
- composite groups: unless the admin explicitly configured channel
pricing for the alias (OpenRouter-style custom pricing), bill by the
concrete forwarded model
- general safety net: when the selected billing model has no resolvable
pricing at all, fall back to the concrete forwarded model instead of
silently recording $0
- grok media usage records now attribute OriginalModel to the client
requested public alias, consistent with every other endpoint
(billing unaffected: empty BillingModelSource never triggers source
overrides)
Priced traffic and non-composite groups are unaffected.
2026-07-23 10:26:58 +08:00
shaw
90c4f50a5e
fix(admin): restore currency and timestamps in admin plan list response
...
The composite-groups PR (#3581 ) replaced the raw ent SubscriptionPlan
response of GET /admin/payment/plans with a projection struct but
dropped the currency field added by #4323 . PlanEditDialog then read an
undefined currency, sent an empty string on save, and silently wiped
the stored plan currency. Restore currency plus created_at/updated_at
so the projection preserves the full original response shape.
2026-07-23 10:26:46 +08:00
Heatherm Huang
ca6b192728
fix: preserve composite video content routing
2026-07-23 09:26:43 +08:00
Heatherm Huang
cb81e17fea
test: align composite route contracts after rebase
2026-07-23 09:20:52 +08:00
Heatherm Huang
1c7959d0de
fix: allow composite grok chat completions
2026-07-23 09:20:52 +08:00
Heatherm Huang
1d2dfab86d
fix: allow composite grok messages routing
2026-07-23 09:20:52 +08:00
Heatherm Huang
06e7d12640
Fix composite Grok video status routing
2026-07-23 09:20:52 +08:00
Heatherm Huang
ee332cee64
Fix composite model defaults for linked platforms
2026-07-23 09:20:52 +08:00
Heatherm Huang
2e774a48b3
Align Grok composite example with live model
2026-07-23 09:20:52 +08:00
Heatherm Huang
ce3272c41b
Build composite subscription bucket two
2026-07-23 09:20:52 +08:00
Heatherm Huang
3a683fff55
Fix composite route alias attribution
2026-07-23 09:20:52 +08:00
Heatherm Huang
ff666be530
Fix composite route lint issues
2026-07-23 09:20:18 +08:00
Heatherm Huang
a008b63c16
Add composite group route registry
2026-07-23 09:20:18 +08:00
Heatherm Huang
c8d1e2e16f
Harden composite group product surfaces
2026-07-23 09:19:25 +08:00
Heatherm Huang
ebc1028771
Add composite group routing
2026-07-23 09:19:24 +08:00
github-actions[bot]
60013c5f10
chore: sync VERSION to 0.1.163 [skip ci]
2026-07-22 09:08:53 +00:00
Wesley Liddick
cffea2979b
Merge pull request #4701 from nagi330/fix/records-model-filter-0721
...
fix(usage): 统一后台使用记录模型筛选口径,解决 grok 相关模型无法过滤问题
2026-07-22 14:51:15 +08:00
Wesley Liddick
5e9d75b863
Merge pull request #4719 from superman2003/fix/grok-403-model-sync-4713-4715
...
fix(grok): sync OAuth models and isolate policy 403s
2026-07-22 14:26:07 +08:00
superman2003
ef8275aede
fix(grok): sync OAuth models and isolate policy 403s
2026-07-22 13:32:35 +08:00
superman2003
f8445a241b
fix(grok): round-trip Codex client tools on Responses
2026-07-22 12:15:48 +08:00
nagi330
fde95fcd0f
fix(usage): 统一后台使用记录模型筛选口径
2026-07-22 09:51:04 +08:00
Wesley Liddick
ebfaf2496b
Merge pull request #4674 from AdrianZhaoDev/main
...
feat(groups): add OpenAI reasoning policy
2026-07-22 09:37:06 +08:00
Wesley Liddick
a185705d19
Merge pull request #4684 from superman2003/fix/opencode-codebuddy-cache
...
fix(grok): preserve OpenCode and CodeBuddy cache sessions
2026-07-22 09:36:41 +08:00
Wesley Liddick
003deac540
Merge pull request #4696 from tylzh97/fix/issue-4694-codex-relay
...
fix(codex): 保留级联中继的客户端指纹
2026-07-22 09:36:28 +08:00
Wesley Liddick
3f7beb4679
Merge pull request #4676 from superman2003/fix/channel-monitor-decrypt-scheduling
...
fix(monitor): stop retrying monitors with undecryptable API keys
2026-07-22 09:35:54 +08:00
Wesley Liddick
7905d02ce5
Merge pull request #4679 from superman2003/fix/scheduler-last-used-side-key
...
fix(scheduler): isolate LastUsedAt cache writes
2026-07-22 09:35:42 +08:00
Wesley Liddick
134a2c0bd3
Merge pull request #4670 from wucm667/fix/issue-4669-scheduler-quota-metadata
...
fix: preserve quota state in scheduler metadata
2026-07-22 09:35:29 +08:00
shaw
c5971a6fcb
fix(deps): bump golang.org/x/text to v0.39.0 to resolve GO-2026-5970
...
govulncheck newly flags GO-2026-5970 (infinite loop on invalid input in
golang.org/x/text < v0.39.0), causing every fresh backend-security CI run
to fail. Upgrading x/text pulls sibling golang.org/x/* modules
(crypto/mod/net/sync/sys/term/tools) to their matching minor versions.
2026-07-22 09:33:47 +08:00
Chenhao
8ffa2a31ff
fix(codex): 保留级联中继的客户端指纹
2026-07-21 05:02:30 -07:00
superman2003
e31783e443
fix(grok): preserve OpenCode and CodeBuddy cache sessions
2026-07-21 15:22:12 +08:00
superman2003
81e7397770
fix(scheduler): isolate LastUsedAt cache writes
2026-07-21 13:27:23 +08:00
superman2003
bd62c6f66c
fix(monitor): stop scheduling after API key decryption failure
2026-07-21 11:55:38 +08:00
zhaozewu
6c93f01c97
fix(groups): tighten reasoning policy
...
Remove unsupported none handling, align the auth cache version with the current baseline, consolidate the unshipped migrations, and update the public API contract.
2026-07-21 11:16:04 +08:00
zhaozewu
6af622c340
feat(groups): add OpenAI reasoning policy
...
Persist reasoning ceilings and exact mappings for OpenAI groups, enforce them across HTTP and WebSocket forwarding, and invalidate cached auth snapshots.
2026-07-21 11:02:43 +08:00
Wesley Liddick
b8b72e1b18
Merge pull request #4666 from TTopoo/redis-username-support
...
fix(config): support Redis ACL username
2026-07-21 10:43:54 +08:00
Wesley Liddick
04a61ee6ad
Merge pull request #4667 from jianjianai/new/perf-scheduler-snapshot-id-members-upstream
...
优化快照发布临时分配
2026-07-21 10:43:37 +08:00
Wesley Liddick
1f9eac4fbd
Merge pull request #4660 from superman2003/fix/openai-scheduler-exclusion-observability-20260720
...
fix(scheduler): 高级调度器无可用账号错误补充排除原因统计,可自诊断静默剔除 (#4599 )
2026-07-21 10:43:21 +08:00
Wesley Liddick
0b9d44545b
Merge pull request #4641 from abbzbb/pr/grok-responses-compact
...
feat(grok): 基于 Grok Responses 实现 /responses/compact 适配 (#4554 )
2026-07-21 10:43:04 +08:00
Wesley Liddick
927fcbc1e3
Merge pull request #4645 from fengshao1227/fix/responses-hosted-image-gen-billing
...
fix(billing): 合并 hosted image_generation 工具的图片 token 到 /responses 计费
2026-07-21 10:42:46 +08:00
Wesley Liddick
14701ff070
Merge pull request #4664 from wucm667/fix/issue-4656-sync-cache-billing
...
fix: align sync cache billing after failover
2026-07-21 10:42:07 +08:00
Wesley Liddick
e85878624a
Merge pull request #4657 from suuuuuu-1/fix/sse-field-parsing-compatibility
...
fix(gateway): support compact SSE format in Anthropic /responses bridge
2026-07-21 10:41:50 +08:00
Wesley Liddick
8b4c8823d9
Merge pull request #4658 from superman2003/fix/cc-bridge-compact-sse
...
fix(gateway): Chat Completions 桥接受 Anthropic 上游的 SSE 紧凑格式
2026-07-21 10:41:33 +08:00
wucm667
e51e61008a
[verified] fix: preserve scheduler quota metadata
2026-07-21 10:41:11 +08:00
Wesley Liddick
7b934d6888
Merge pull request #4649 from superman2003/fix/preserve-call-id-length-20260720
...
fix(openai): preserve 路径 call_id 超长时压缩至 64 字符上限
2026-07-21 10:40:37 +08:00
Wesley Liddick
a753e91e2c
Merge pull request #4662 from Milesians/fix/proxy-probe-dual-stack
...
fix: use dual-stack fallback for proxy probe
2026-07-21 10:40:20 +08:00
jjaw
af3b6bbd68
优化快照发布临时分配
2026-07-21 03:07:01 +08:00
Jingru Shi
49200d4747
fix(config): support Redis ACL username
2026-07-21 01:31:46 +08:00
wucm667
addd5ef1dc
[verified] fix: align sync cache billing after failover
2026-07-20 22:43:11 +08:00
milesians
de094fb63e
fix: use dual-stack fallback for proxy probe
2026-07-20 22:33:08 +08:00
superman2003 and Cursor
a319333161
fix(lint): summary 检查 strings.Builder WriteString 返回值 (errcheck)
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-20 21:52:46 +08:00