Wesley Liddick
48c647b5d2
Merge pull request #7833 from ShanYi-Hui/fix/preserve-email-binding-draft
...
fix(profile): preserve email binding draft during user refresh
2026-10-08 11:37:25 +08:00
Wesley Liddick
b94974467b
Merge pull request #7818 from ouchihao/codex/bug-custom-page-request-race
...
fix(custom-pages): ignore obsolete Markdown responses
2026-10-08 11:37:11 +08:00
Wesley Liddick
4747827e35
Merge pull request #7819 from ouchihao/codex/bug-stripe-payment-unmount
...
fix(payment): stop late Stripe callbacks after leaving the page
2026-10-08 11:36:59 +08:00
Wesley Liddick
f3bcad3c33
Merge pull request #7839 from ouchihao/codex/bug-scheduled-results-race
...
fix(admin): keep scheduled test results scoped to the expanded plan
2026-10-08 11:36:33 +08:00
Wesley Liddick
2c6bd63de9
Merge pull request #7840 from ouchihao/codex/bug-monitor-template-list-race
...
fix(monitor): ignore obsolete template manager list responses
2026-10-08 11:36:19 +08:00
Wesley Liddick
02aad478f3
Merge pull request #7841 from ouchihao/codex/bug-alert-events-pagination-race
...
fix(ops): discard stale alert event pages after filter changes
2026-10-08 11:36:07 +08:00
Wesley Liddick
486b226b69
Merge pull request #7842 from ouchihao/codex/bug-ops-settings-load-guard
...
fix(ops): require loaded settings before saving
2026-10-08 11:35:56 +08:00
Wesley Liddick
d1202bea5f
Merge pull request #7843 from ouchihao/codex/bug-alert-rule-integer-duration
...
fix(ops): validate alert rule durations as whole minutes
2026-10-08 11:35:42 +08:00
Wesley Liddick
1865f28469
Merge pull request #7900 from ouchihao/codex/bug-rpm-edit-number
...
fix(groups): preserve numeric values when editing RPM overrides
2026-10-08 11:35:27 +08:00
Wesley Liddick
c2f0edc137
Merge pull request #7901 from ouchihao/codex/bug-airwallex-navigation
...
fix(payment): stop Airwallex checkout after leaving the page
2026-10-08 11:35:15 +08:00
Wesley Liddick
cdbf1d6f4d
Merge pull request #7902 from ouchihao/codex/bug-passthrough-toggle-state
...
fix(admin): use the saved passthrough rule enabled state
2026-10-08 11:35:01 +08:00
Wesley Liddick
b126b94525
Merge pull request #7903 from ouchihao/codex/bug-profile-username-draft
...
fix(profile): preserve username edits made during save
2026-10-08 11:34:49 +08:00
Wesley Liddick
7fc5332b45
Merge pull request #7904 from ouchihao/codex/bug-group-rate-load-race
...
fix(groups): ignore stale rate multiplier loads
2026-10-08 11:34:38 +08:00
Wesley Liddick
4bcad0657b
Merge pull request #7800 from duckducktw/fix/pricing-entry-autofill-append
...
fix(channels): 追加模型时不再改写条目已留空的价格
2026-10-08 11:34:17 +08:00
Wesley Liddick
7ff5cff1bb
Merge pull request #7822 from neotan/fix/issue-7670-bare-api-alias-bypass
...
fix(web): bypass bare API aliases from embedded frontend fallback
2026-10-08 11:33:58 +08:00
Wesley Liddick
bc63bd2874
Merge pull request #7782 from lyy0709/codex/fix-remote-model-catalog
...
fix(models): enforce account mappings for remote Codex discovery
2026-10-08 11:33:27 +08:00
Wesley Liddick
458865ed1b
Merge pull request #7878 from Achordchan/fix/account-test-log-context
...
fix(accounts): attribute connectivity test failure logs
2026-10-08 11:33:14 +08:00
Wesley Liddick
3a7fd4ae78
Merge pull request #7837 from yJader/fix/antigravity-account-test-models
...
fix: use account mapping keys for Antigravity connectivity tests
2026-10-08 11:32:59 +08:00
Wesley Liddick
4b8c557705
Merge pull request #7877 from hezhaoqian1/fix/upstream-channel-monitor-zhipu-path
...
fix(channel-monitor): build zhipu probe URL from the configured endpoint
2026-10-08 11:32:38 +08:00
Wesley Liddick
bb0d4a53c9
Merge pull request #7887 from whhphd/fix/grok-sso-consent
...
fix(grok): include consent token and origin in SSO device approval
2026-10-08 11:32:25 +08:00
Wesley Liddick
3c274768c1
Merge pull request #7889 from aishangwuji/fix/opencode-zen-routing-and-unsupported-models
...
fix(opencode): correct Zen qwen3.8-max endpoint and reject unsupported models
2026-10-08 11:32:11 +08:00
Wesley Liddick
bbf1d37783
Merge pull request #7891 from aishangwuji/fix/opencode-go-usage-retry-after-and-403
...
fix(opencode): cap Retry-After backoff at 24h and report neutral 403
2026-10-08 11:31:40 +08:00
Wesley Liddick
90afaf120e
Merge pull request #7854 from wucm667/fix/issue-7852-chat-stream-heartbeats
...
fix(streaming): preserve chat stream heartbeat comments
2026-10-08 11:28:38 +08:00
Wesley Liddick
6cacccc767
Merge pull request #7775 from YahooYuan666/fix/grok-empty-completed-silent-refusal
...
fix(grok): fail over silent-refusal empty response.completed on Grok Responses streams
2026-10-08 11:28:22 +08:00
Wesley Liddick
2afe7d4577
Merge pull request #7910 from liuyh06/codex/fix-responses-namespace-noop
...
perf(openai): lazily rebuild input when stripping namespaces
2026-10-08 11:28:02 +08:00
Wesley Liddick
129369204e
Merge pull request #7827 from Achordchan/fix/anthropic-tool-change-betas
...
fix(anthropic): preserve requested tool change beta headers
2026-10-08 11:27:45 +08:00
Wesley Liddick
f19cd4fdea
Merge pull request #7844 from cyhhao/fix/anthropic-cache-ttl-order
...
fix(anthropic): keep cache TTL order valid on the mimic path
2026-10-08 11:27:27 +08:00
Wesley Liddick
e473fba99c
Merge pull request #7869 from 3219378872/fix/thinking-signature-key
...
fix(apicompat): always include `signature` on Anthropic thinking blocks
2026-10-08 11:27:14 +08:00
Wesley Liddick
cc4a1e3f61
Merge pull request #7789 from SPHINX998/fix/anthropic-buffered-negative-block-index
...
fix(gateway): ignore negative content block index in buffered Anthropic paths
2026-10-08 11:26:47 +08:00
Wesley Liddick
9d49d275f3
Merge pull request #7788 from SPHINX998/fix/apicompat-responses-refusal-to-chat
...
fix(apicompat): preserve refusals when converting Responses to Chat
2026-10-08 11:26:28 +08:00
Wesley Liddick
8d50466809
Merge pull request #7787 from SPHINX998/fix/apicompat-chat-legacy-function-call
...
fix(apicompat): pair legacy chat function calls with their results
2026-10-08 11:26:15 +08:00
Wesley Liddick
f9bd97cc15
Merge pull request #7786 from SPHINX998/fix/apicompat-chat-developer-role
...
fix(apicompat): keep chat developer messages as developer role
2026-10-08 11:26:03 +08:00
Wesley Liddick
f087fdb205
Merge pull request #7785 from SPHINX998/fix/apicompat-chat-named-tool-choice
...
fix(apicompat): flatten named chat tool_choice for Responses
2026-10-08 11:25:46 +08:00
Wesley Liddick
ef16f8a3d1
Merge pull request #7792 from SPHINX998/fix/ws-passthrough-image-usage
...
fix(openai): account image input usage on WS passthrough
2026-10-08 11:25:31 +08:00
Wesley Liddick
6db4171cfb
Merge pull request #7779 from SPHINX998/fix/ws-turn-group-pricing
...
fix(openai-ws): bill each later turn with the current group pricing
2026-10-08 11:25:10 +08:00
Wesley Liddick
db29b3a773
Merge pull request #7811 from kingsleydon/fix/codex-service-tiers-null-fallback
...
fix(codex): never advertise null service_tiers in models manifest
2026-10-08 11:23:47 +08:00
Wesley Liddick
0363b8cdba
Merge pull request #7893 from Wei-Shaw/fix/issue-7850-admin-bootstrap-hardening
...
fix(setup): stop shipping guessable admin credentials on fresh installs (fixes #7850 )
2026-10-07 09:50:45 +08:00
shaw
0f9d460dc6
fix(deps): resolve frontend audit failures (vue, source-map-js, xlsx exceptions)
...
- Bump vue to ^3.5.43 so @vue/server-renderer is >= 3.5.42
(GHSA-g2v6-rqmx-r4w6).
- Override source-map-js to >= 1.2.2 (GHSA-68fv-2mgg-jv7q).
- Renew the expired xlsx exceptions until 2027-01-06: xlsx has no patched
release on npm and is only used for XLSX.write export in the admin usage
view; both advisories require parsing a crafted file and no read path exists.
Lockfile regenerated with pnpm 9 to match CI.
2026-10-07 09:44:01 +08:00
shaw
6e315616ed
fix(setup): stop shipping guessable admin credentials on fresh installs ( fixes #7850 )
...
Fresh Docker installs created the admin as admin@sub2api.local and accepted
any ADMIN_PASSWORD (e.g. "123456"), making them easy brute-force targets.
- Generate a random admin-<12 hex>@sub2api.local login email when
ADMIN_EMAIL is empty; drop the fixed default from .env.example and the
compose files, and have docker-deploy.sh write a random ADMIN_EMAIL.
- Validate user-supplied ADMIN_PASSWORD (8-72 bytes) and ADMIN_EMAIL on the
auto-setup path, only when an admin is actually about to be created, so
existing deployments are never blocked at startup.
- Align validateEmail with the login endpoint's email binding so setup can no
longer create an admin that can never log in (e.g. "a@b", "Name <a@b.com >").
- Cap validatePassword at bcrypt's 72-byte limit; the CLI reuses it and now
defaults to a random admin email instead of admin@example.com .
- Update READMEs/deploy docs to stop suggesting guessable credentials.
2026-10-07 09:27:36 +08:00
Wesley Liddick
d97ccc952f
Merge pull request #7888 from honestTai/fix/easypay-callback-forgery
...
fix(payment): 修复易支付回调签名复用伪造入账漏洞 (fixes #7881 )
2026-10-07 08:33:53 +08:00
Wesley Liddick
33d9e72f90
Merge pull request #7851 from ZeroClover/fix/remote-model-catalog-discovery
...
fix: enable API-key discovery for remote Codex catalogs
2026-10-07 08:27:17 +08:00
Wesley Liddick
3040209f20
Merge pull request #7813 from kingsleydon/fix/typesafe-upstream-billing-probe
...
fix(billing): allow upstream billing probe for TypeSafe API-key accounts
2026-10-02 20:02:28 +08:00
Wesley Liddick
f5aca74623
Merge pull request #7816 from Wei-Shaw/fix/usage-billing-deleted-key
...
fix(billing): settle usage when the API key is deleted before billing completes
2026-10-02 20:01:45 +08:00
shaw
432a6a461f
chore(billing): simplify comment
2026-10-02 19:52:00 +08:00
shaw
c2d5bbd93e
fix(billing): settle usage when the API key is deleted before billing completes
...
When an API key with quota or rate limits was deleted while a request was
still in flight, the key counter update matched no rows and returned
ErrAPIKeyNotFound, rolling back the whole billing transaction including the
balance/subscription charge. Skip the key-scoped counters in that case and
keep settling the user and account side as usual.
2026-10-02 19:51:06 +08:00
Wesley Liddick
ae501cc220
Merge pull request #7814 from Wei-Shaw/docs/security-policy
...
docs: add security policy with private vulnerability reporting
2026-10-02 19:06:07 +08:00
shaw
99efaa477f
docs(security): add dev@sub2api.org as fallback reporting email
2026-10-02 19:04:36 +08:00
shaw
d9d4333795
docs: add security policy with private vulnerability reporting
...
Closes #7812
2026-10-02 18:59:29 +08:00
Wesley Liddick
5106065716
Merge pull request #7630 from william-drakemond/feat/account-priority-quick-adjust
...
feat(admin): inline quick-adjust stepper for account priority
2026-10-02 14:33:29 +08:00
Wesley Liddick
46f5f5e8ba
Merge pull request #7773 from william-drakemond/fix/custom-error-codes-warning-text
...
fix(frontend): correct custom error code warning and upgrade Axios
2026-10-02 14:33:03 +08:00
Wesley Liddick
2529371bab
Merge pull request #7676 from william-drakemond/fix/email-code-token-atomic
...
fix(email): 验证码尝试次数原子化 + 重置密码 token 哈希存储且原子单次消费
2026-10-02 14:32:42 +08:00
Wesley Liddick
43c4c882fd
Merge pull request #7674 from william-drakemond/fix/antigravity-sanitize-upstream-error
...
fix(antigravity): 返回客户端前脱敏上游错误体,避免泄露账号池身份
2026-10-02 14:32:12 +08:00
Wesley Liddick
719013053a
Merge pull request #7803 from william-drakemond/feat/api-key-group-sort
...
feat(keys): 支持按分组名称排序 API 密钥
2026-10-02 14:31:49 +08:00
Wesley Liddick
f3dc0835df
Merge pull request #7673 from william-drakemond/fix/public-order-verify-hardening
...
fix(payment): 为匿名订单查询接口 /payment/public/orders/verify 增加 IP 限流
2026-10-02 14:31:17 +08:00
Wesley Liddick
5637f469fa
Merge pull request #7802 from feeeei/feat/recharge-promotion-tiers
...
feat(payment): 充值优惠阶梯,支持赠金与折扣两种模式
2026-10-02 14:30:29 +08:00
Wesley Liddick
34fe845f5a
Merge pull request #7425 from aofee/codex/jev-system-one
...
feat: add native TypeSafe Jev System One support
2026-10-02 14:16:08 +08:00
shaw
fa49647c6d
test(model): 错误透传平台列表守卫纳入 typesafe
2026-10-02 14:00:12 +08:00
shaw
9eb394e3e9
fix(typesafe): 堵住校验解析差异与审计盲区,收紧模型列表口径
...
- System One 校验拒绝重复键与大小写/Unicode 折叠变体键(请求顶层、
questions、问题对象):encoding/json 大小写不敏感且取最后一个重复键,
而原始 body 原样转发,此前 {"model":"x","MODEL":"jev-latest"} 可绕过
jev-latest 限制、模型白名单与流式限制。
- Prompt 审计与旧审核同时收集对象键名、问题 ID 与未知扩展字段(不含规范
字段名与已校验的 type),此前把内容放进键名即可完全绕过审计。
- 上游成功响应的 usage/model 宽松解码(浮点、数字字符串),避免上游已
计费而网关整体 502 不记账;解码失败记录 response_error ops 事件。
- 上游 413 与 400/422 同视为请求错误:透传状态码、不切换、不改账号状态。
- TypeSafe base_url 末尾的 /v1 自动剥离,避免拼出 /v1/v1/systemone;
/v1/systemone 改挂文本请求体上限。
- Composite 静态兜底模型列表、管理端候选列表恢复为不含 jev-latest;
Codex 清单永不列出 TypeSafe 模型;TypeSafe 分组候选默认 jev-latest。
- 创建账号从 Grok 切到 TypeSafe 时重置为白名单模式;错误透传平台列表补 typesafe。
2026-10-02 13:51:58 +08:00
shaw
2d8a386811
fix(typesafe): 补齐平台迁移、审计覆盖、端点隔离与错误策略
...
- 新增 241 迁移:user_platform_quotas / composite_model_routes 的 CHECK 约束
加入 typesafe。此前设置 typesafe 默认配额会让注册时的多行配额快照整体
违约(fail-open 后新用户所有平台配额丢失),单用户配额与 Composite 路由保存 500。
- Prompt 审计新增 typesafe_systemone 协议提取(state + 各问题 instructions/
criteria/选项标签,键排序保证哈希稳定);此前提取为空,阻断与异步审计均被放行。
旧内容审核同样覆盖问题文本,且不再丢弃含 <system-reminder> 的 System One 文本。
- TypeSafe 分组及路由到 TypeSafe 的 Composite 请求访问 Messages / count_tokens /
Chat Completions / Responses 时返回 404,避免以 x-api-key 打到错误上游路径并
污染账号状态;TypeSafe 账号 base_url 为空时不再回退 api.anthropic.com。
- SystemOne 补在途余额预留、利润控制准入终检、wrapReleaseOnDone,失败切换改用
共享 FailoverState(同账号重试 / 池模式 / 临时封禁)。
- 上游错误沿用共享账号错误策略:402/403、自定义错误码、临时不可调度规则生效,
记录 ops 上游错误;400/422 仍不切换且永不改变账号状态。
- 账号测试改走原生 System One 探测,可用模型只返回 jev-latest;
响应超限显式报错,响应 Content-Type 仅透传 JSON 类型。
2026-10-02 13:08:40 +08:00
Wesley Liddick
d6adebd22d
Merge pull request #7780 from lyen1688/fix/grok-cli-identity-1-0-46
...
修复 Grok 426 并对齐交互式 CLI 身份头
2026-10-01 17:48:26 +08:00
Wesley Liddick
96f4c115c9
Merge pull request #7726 from william-drakemond/feat/claude-reset-redeem
...
feat(claude): 手动兑换 Claude 重置次数 / Manually redeem Claude limit resets
2026-09-30 14:33:23 +08:00
Wesley Liddick
327c322184
Merge pull request #7730 from lyy0709/codex/gpt61-sol-codex-plans
...
feat(openai): support GPT-6.1 Sol, Codex plans and Astra Ultrafast
2026-09-30 14:32:59 +08:00
Wesley Liddick
48b7109588
Merge pull request #7736 from lyy0709/codex/remote-codex-model-catalog
...
feat(codex): 支持 model_catalog_url 远程模型目录配置
2026-09-30 14:32:34 +08:00
Wesley Liddick
4f0c079e27
Merge pull request #7681 from william-drakemond/fix/balance-inflight-reservation
...
fix(billing): Redis 在途预留,防止余额模式并发透支
2026-09-30 14:31:04 +08:00
Wesley Liddick
b0cfff9826
Merge pull request #7752 from Wei-Shaw/fix/api-key-create-limits
...
feat(api-key): 增加 API Key 创建数量与频率限制
2026-09-30 14:20:00 +08:00
shaw
017bbcb901
chore(api-key): 创建频率默认值调整为每小时 60 次
2026-09-30 13:55:37 +08:00
shaw
9ecb340822
feat(api-key): 增加 API Key 创建数量与频率限制
...
- 新增 api_key_create.max_active_per_user(默认 200)与
api_key_create.max_per_user_per_hour(默认 20),0 表示不限制
- 创建频率按固定一小时窗口统计,自定义与自动生成的 Key 统一计入
- 创建计数独立于 Key 生命周期,删除或修改 Key 不再重置计数
- 移除不再使用的 DeleteCreateAttemptCount 缓存方法
2026-09-30 13:44:02 +08:00
Wesley Liddick
a0f41f95a0
Merge pull request #7579 from feeeei/fix/claude-code-only-fallback-openai-compat
...
fix(gateway): Claude Code 限制分组的 OpenAI 兼容入口改走降级分组,不再直接 403
2026-09-30 10:47:08 +08:00
Wesley Liddick
2f3fed2fdb
Merge pull request #7678 from PMExtra/feat/claude-code-only-client-tabs
...
feat: Claude Code 专用分组仅展示受支持的客户端入口
2026-09-29 15:53:58 +08:00
Wesley Liddick
fe9dadfc7d
Merge pull request #7679 from PMExtra/feat/risk-control-allowlist
...
feat: 新增可信用户风控白名单,保留审计并免除本地自动处罚
2026-09-29 15:53:18 +08:00
Wesley Liddick
41dcfec489
Merge pull request #7680 from PMExtra/fix/openai-model-catalog
...
fix: 移除 OpenAI 分组 Codex 配置中的模型目录依赖
2026-09-29 15:52:51 +08:00
Wesley Liddick
052e08e764
Merge pull request #7684 from william-drakemond/feat/claude-reset-credits-ui
...
feat(claude): 查询 Claude 重置次数(只读),UI 复用 Codex 次数按钮 / Read-only Claude reset credit count, reusing Codex count UI
2026-09-29 15:50:53 +08:00
Wesley Liddick
1f955af353
Merge pull request #7380 from wucm667/fix/issue-7377-forward-stream-usage
...
fix(gateway): forward received chat stream usage
2026-09-29 15:44:10 +08:00
Wesley Liddick
ccb027b515
Merge pull request #7378 from wucm667/fix/issue-7368-composite-ws-routing
...
fix(gateway): resolve composite routes for websocket aliases
2026-09-29 15:43:52 +08:00
Wesley Liddick
f50b99b66c
Merge pull request #7542 from wucm667/fix/model-whitelist-mapping-conflict
...
fix(accounts): warn when whitelist model conflicts with mapping
2026-09-29 15:43:33 +08:00
Wesley Liddick
883a53fea0
Merge pull request #7643 from wucm667/fix/issue-7637-antigravity-compat-keepalive
...
fix(antigravity): keep compat streams alive before first content
2026-09-29 15:43:19 +08:00
Wesley Liddick
b35a611538
Merge pull request #7646 from wucm667/feat/issue-7642-dashboard-spending-trend
...
feat(dashboard): toggle recent usage between tokens and spending
2026-09-29 15:43:07 +08:00
Wesley Liddick
1dca86f287
Merge pull request #7701 from wucm667/fix/issue-7699-tool-rewrite
...
fix(anthropic): rewrite tool names in one body pass
2026-09-29 15:42:45 +08:00
Wesley Liddick
dd6cb410e6
Merge pull request #7683 from StarryKira/codex/sonnet-5-5-upstream
...
feat: support Claude Sonnet 5.5
2026-09-29 15:42:21 +08:00
Wesley Liddick
4c00df2e01
Merge pull request #7638 from Achordchan/fix/anthropic-structured-output-beta
...
fix(anthropic): preserve requested structured outputs beta
2026-09-28 10:52:52 +08:00
Wesley Liddick
b5298fdde8
Merge pull request #7538 from TouHouQing/fix/claude-thinking-disabled-openai
...
fix(openai): honor disabled thinking in Claude Messages bridge
2026-09-28 10:51:30 +08:00
Wesley Liddick
5a350108c4
Merge pull request #7607 from ResidualBlood/fix/antigravity-malformed-function-call-retry
...
fix(antigravity): trigger failover retry on empty stream caused by MALFORMED_FUNCTION_CALL
2026-09-28 10:50:53 +08:00
Wesley Liddick
1df5c39311
Merge pull request #7562 from william-drakemond/fix/opencode-zen-deepseek-reasoning-placeholder
...
fix(openai): inject DeepSeek reasoning placeholder for OpenCode Zen upstream
2026-09-28 10:50:02 +08:00
Wesley Liddick
b3c7038cf4
Merge pull request #7526 from HuntercodeT/fix/passthrough-model-discovery-merge
...
fix(gateway): let OpenAI passthrough accounts supplement model discovery instead of hiding mapped models
2026-09-28 10:49:01 +08:00
Wesley Liddick
8616d4e036
Merge pull request #7617 from korkin25/fix/responses-beta-upstream
...
fix(openai): preserve caller beta headers for HTTP Responses
2026-09-28 10:48:48 +08:00
Wesley Liddick
93c3da03eb
Merge pull request #7555 from Yukinoshita-Yukino/fix/openai-auto-reset-credit-sched-projection
...
fix(scheduler): keep auto reset-credit fields in the scheduler projection
2026-09-28 10:27:00 +08:00
Wesley Liddick
ff6b85e30b
Merge pull request #7615 from UnlastingR/fix/codex-ws-context-rollover-upstream
...
fix(openai): break websocket chain on context rollover
2026-09-28 10:05:05 +08:00
Wesley Liddick
79c18ec836
Merge pull request #7609 from feeeei/fix/client-disconnect-499
...
fix(gateway): 客户端断开统一标记 499,不再被记成 502/200 上游错误
2026-09-28 10:04:07 +08:00
Wesley Liddick
790723e040
Merge pull request #7610 from nhirsama/fix/redis-command-exec-form
...
fix(deploy): redis 启动命令改用 exec 列表,修复密码含 shell 特殊字符时失效
2026-09-28 10:01:15 +08:00
Wesley Liddick
1ff2bd6d95
Merge pull request #7573 from Yukinoshita-Yukino/fix/channel-image-price-inherit-when-unset
...
fix(billing): keep catalog image prices when channel pricing leaves them unset
2026-09-28 09:57:02 +08:00
Wesley Liddick
f592b336a3
Merge pull request #7595 from wucm667/feat/issue-7587-allowlist-glob
...
feat(groups): support wildcards anywhere in model allowlists
2026-09-28 09:55:55 +08:00
Wesley Liddick
37f35b12ea
Merge pull request #7524 from Achordchan/fix/plaza-video-rate
...
fix(model-plaza): apply independent video billing multipliers
2026-09-28 09:55:34 +08:00
Wesley Liddick
e4b34446af
Merge pull request #7619 from SavitarC/fix/account-stats-long-context-billing
...
fix(billing): 账号统计成本按 OpenAI 账号开关计入长上下文价
2026-09-28 09:55:19 +08:00
Wesley Liddick
90ae81e9f8
Merge pull request #7624 from wucm667/fix/issue-7620-future-quota-reset
...
fix(openai): retain quota pause until known future reset
2026-09-28 09:54:52 +08:00
Wesley Liddick
9375e288ba
Merge pull request #7571 from SPHINX998/fix/openai-probe-model-unavailable-inconclusive
...
fix(openai): keep Responses support unknown when the probe model is missing
2026-09-28 09:54:31 +08:00
Wesley Liddick
06f70a6232
Merge pull request #7572 from SPHINX998/fix/openai-alpha-search-require-completion
...
fix(openai): require a successful completion before billing an alpha search fallback
2026-09-28 09:54:12 +08:00
Wesley Liddick
6906062187
Merge pull request #7597 from far5man/codex/opus55-openrouter-alias-main
...
fix: recognize OpenRouter Claude Opus 5.5 alias for billing
2026-09-28 09:53:49 +08:00
Wesley Liddick
dc4874a2f1
Merge pull request #7613 from yujunkim/fix/openai-free-fast-missing-pricing
...
fix(billing): keep zero-cost usage log when Free Fast has no pricing
2026-09-28 09:53:26 +08:00
Wesley Liddick
11608c51f0
Merge pull request #7568 from SPHINX998/fix/apicompat-gpt6-reasoning-models
...
fix(apicompat): treat every GPT generation from 5 on as a reasoning model
2026-09-28 09:53:05 +08:00
Wesley Liddick
8aa7fb8c2d
Merge pull request #7569 from SPHINX998/fix/apicompat-recover-empty-final-text
...
fix(apicompat): recover streamed text when the final output message is empty
2026-09-28 09:52:48 +08:00