wucm667
30d146e8b5
fix(frontend): adapt affiliate copy controls for mobile
2026-07-25 04:27:19 +08:00
LIULIXING
1891faa68d
fix(openai): keep item ID sanitization linear
2026-07-25 01:40:26 +08:00
wucm667
41456b69dd
fix(frontend): upgrade postcss for security audit
2026-07-24 22:37:42 +08:00
ListenCodes
c5d9d57940
fix(openai): sanitize API-key responses item IDs
2026-07-24 20:15:58 +08:00
wucm667
41f12e874d
fix(grok): drop orphaned Responses tool choice
2026-07-24 16:25:53 +08:00
weiness
67bb446b5c
fix(deps): upgrade postcss for GHSA-6g55-p6wh-862q
2026-07-24 16:12:34 +08:00
weiness
972a4a471e
feat(admin): add announcement preview action
2026-07-24 15:44:34 +08:00
weiness
7b387e479d
fix(frontend): share announcement rich text styles
2026-07-24 15:44:27 +08:00
wucm667
b5979050f3
fix(frontend): upgrade postcss for security audit
2026-07-24 08:33:58 +08:00
wucm667
8276fdf605
fix: resolve Gemini compat test lint
2026-07-24 03:00:26 +08:00
scp-planet
d2d4fb9221
fix(openai): satisfy buffer write lint checks
2026-07-24 02:59:32 +08:00
scp-planet
1bdf99109b
fix(openai): strip input namespaces for api key accounts
2026-07-24 02:59:32 +08:00
scp-planet
e70fbf3204
fix(openai): strip residual input namespaces before HTTP forwarding
2026-07-24 02:59:32 +08:00
wucm667
4dc0aedbfe
fix(gemini): preserve image output in chat completions
2026-07-24 02:42:23 +08:00
Edison42
1c0cb24c7e
feat(usage): persist client session identifiers
2026-07-24 01:22:34 +08:00
404QAQ
4fd9182aff
fix(images): log requested quality and size
2026-07-23 23:04:00 +08:00
404QAQ
38cc916f7d
fix(pricing): skip remote scheduler without URL
2026-07-23 22:43:36 +08:00
wucm667
51f354f5c2
fix(grok): avoid pool cooldown on 5xx
2026-07-23 12:24:30 +00:00
github-actions[bot]
cb24522dd5
chore: sync VERSION to 0.1.164 [skip ci]
2026-07-23 09:54:18 +00:00
Wesley Liddick
cd8bb98c44
Merge pull request #4774 from superman2003/fix/issues-4763-4765-4769-20260723
...
fix: optimize Codex identity imports and OpenAI account tests
v0.1.164
2026-07-23 17:38:05 +08:00
shaw
1be6f30188
fix(ollama): 测试仓储到期查询深拷贝消除数据竞争
...
ollamaUsageTestRepo.ListDueOllamaCloudUsageAccounts 返回浅拷贝共享
Extra/Credentials map,RunDue 过滤循环的无锁读与组写协程在 r.mu 下的
map 删改构成数据竞争(-race 可复现;无 -race 时也可能触发 runtime
concurrent map read/write fatal 导致 CI 偶发崩溃)。两条返回路径改为
r.mu 下 mergeMap 深拷贝,并补全 ListOllamaCloudUsageGroupAccounts
只拷 Extra 不拷 Credentials 的半克隆,与基类 GetByID 惯例对齐。
生产仓储每次查询返回全新行,不受影响。
2026-07-23 17:14:10 +08:00
shaw
2faa0891e4
fix(ollama): 审计日志不落会话明文并收紧凭证清理守卫
...
- PUT /admin/accounts/:id/ollama-cloud-usage/session 加入审计整体不入库
路由,并把裸键 session 纳入键级脱敏兜底,防止浏览器会话 Cookie 明文
留存 audit_logs.request_body
- UpdateCredentials 的 Ollama 清理分支加顶层 credentials DISTINCT 守卫,
凭证未变化的持久化不再误清 openai 探测快照或重写 NULL extra
2026-07-23 16:43:18 +08:00
Wesley Liddick
3f03c93bc6
Merge pull request #4776 from alfadb/feature/ollama-cloud-usage
...
feat(ollama): 支持 Cloud 官方用量自动刷新
2026-07-23 16:36:59 +08:00
alfadb
5ac4a9fac2
feat(ollama): 支持 Cloud 官方用量自动刷新
2026-07-23 15:50:44 +08:00
BayinForge
e46d55bc57
fix(ci): make Caddy check portable across awk implementations
2026-07-23 14:46:09 +08:00
Wesley Liddick
2c76506e07
Merge pull request #4734 from wjx2951874/feat/alipay-mobile-precreate-deep-link
...
feat(payment): add mobile Alipay precreate deep link
2026-07-23 14:06:18 +08:00
superman2003
dd5956be5e
fix(openai): prefer concrete GPT-5.6 test model
2026-07-23 13:44:15 +08:00
superman2003
5dfe838c21
fix(admin): optimize Codex identity import index
2026-07-23 13:43:57 +08:00
Wesley Liddick
6aeea70ee0
Merge pull request #4749 from heathermhuang/codex/fix-openai-proxy-stream-quarantine
...
fix(openai): quarantine proxies after incomplete SSE streams
2026-07-23 11:20:01 +08:00
Wesley Liddick
6f7bad3f2f
Merge pull request #4751 from heathermhuang/codex/fix-grok-402-account-cooldown
...
fix(grok): cool down accounts after upstream 402
2026-07-23 11:19:30 +08:00
Wesley Liddick
fbc88edf90
Merge pull request #4750 from heathermhuang/codex/fix-simple-default-grok-image
...
fix(simple-mode): enable images for auto-created Grok default
2026-07-23 11:19:20 +08:00
Wesley Liddick
da5c80e113
Merge pull request #4724 from fengshao1227/fix/passthrough-input-normalize
...
fix(openai): OAuth 透传路径补齐 input 规范化,修复 Input must be a list
2026-07-23 11:19:12 +08:00
Wesley Liddick
09b1309c91
Merge pull request #4755 from wucm667/fix/issue-4754-channel-pricing-model-normalization
...
fix(billing): normalize channel pricing model names
2026-07-23 11:18:10 +08:00
Wesley Liddick
aee9ab36cb
Merge pull request #4721 from superman2003/fix/ccswitch-grokbuild-4720
...
fix(frontend): import Grok keys into Grok Build
2026-07-23 11:18:02 +08:00
Wesley Liddick
31e7ae8195
Merge pull request #4726 from feitianbubu/fix/model-rate-limit-reset-format
...
fix(admin): 模型限流恢复时间进位到天并在提示中补全日期
2026-07-23 11:17:54 +08:00
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
Wesley Liddick
3e5d4af411
Merge pull request #3581 from heathermhuang/codex/composite-groups
...
feat: Add composite group route registry
2026-07-23 10:09:39 +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