Wesley Liddick
2ac784c51a
Merge pull request #6353 from feeeei/main
...
refactor(billing): 长上下文阶梯计价改为价格目录数据驱动
v0.1.185
2026-09-01 09:32:06 +08:00
Wesley Liddick
6b39d0b453
Merge pull request #6379 from baryon/contrib/codex-priority-service-tier
...
fix(codex): advertise Fast service tier in generated catalogs
2026-09-01 09:02:24 +08:00
Wesley Liddick
f218c8d40a
Merge pull request #6394 from qiujun8023/fix/account-stats-deepseek-peak
...
fix(billing): apply model pricing policies to account stats cost
2026-09-01 08:58:49 +08:00
Wesley Liddick
1cce2b38ee
Merge pull request #6417 from fengshao1227/fix/ws-ingress-capacity-shed-client-code
...
fix(openai): ctx_pool WS ingress 下发前改写上游容量降载错误码(Codex 会话被硬终止)
2026-09-01 08:54:00 +08:00
Wesley Liddick
9d9ed1cc62
Merge pull request #6415 from icebreaker-forked/fix/retry-transient-db-startup
...
fix(repository): PostgreSQL 恢复期间退避重试,避免首次启动退出
2026-09-01 08:53:25 +08:00
Wesley Liddick
2d7767eaf2
Merge pull request #6407 from wucm667/fix/issue-6402-delegation-bootstrap
...
fix(openai): accept delegation bootstrap without call id
2026-09-01 08:51:46 +08:00
Wesley Liddick
064d9b74e8
Merge pull request #6432 from okbexx/fix/codex-disabled-account-capabilities
...
fix(codex): ignore persistently disabled catalog accounts
2026-09-01 08:46:42 +08:00
Wesley Liddick
e87c47c957
Merge pull request #6435 from wucm667/fix/issue-6420-apikey-responses-instructions
...
fix(openai): avoid synthesized instructions for API keys
2026-09-01 08:45:58 +08:00
Wesley Liddick
bdedd6c544
Merge pull request #6433 from swjturay/codex/upstream-stale-ws-recycle
...
fix(openai-ws): recycle stale idle pool connections without reader liveness
2026-09-01 08:45:30 +08:00
Ritel-T
9908d3ca2f
Bill free Fast requests at Standard price
2026-09-01 04:34:24 +09:00
Ritel-T
4df6b0636b
Add the free Fast group switch
2026-09-01 04:34:24 +09:00
Ritel-T
498e06c582
Localize the free Fast control
2026-09-01 04:34:24 +09:00
Ritel-T
e6722126ba
Add frontend free Fast types
2026-09-01 04:34:24 +09:00
Ritel-T
e619ca386e
Carry free Fast through auth snapshots
2026-09-01 04:34:24 +09:00
Ritel-T
8224434d21
Preserve free Fast when duplicating groups
2026-09-01 04:34:24 +09:00
Ritel-T
fd55f3248f
Manage free Fast through group lifecycle
2026-09-01 04:34:24 +09:00
Ritel-T
08d6c153b7
Return free Fast in admin responses
2026-09-01 04:34:24 +09:00
Ritel-T
636d6be690
Expose free Fast in admin requests
2026-09-01 04:34:24 +09:00
Ritel-T
7dcf728461
Project free Fast into API key auth
2026-09-01 04:34:24 +09:00
Ritel-T
fb409787c6
Persist the free Fast group policy
2026-09-01 04:34:24 +09:00
Ritel-T
e7caedc22a
Regenerate Group persistence for free Fast
2026-09-01 04:34:24 +09:00
Ritel-T
eebf4e3ffb
Add the free Fast migration
2026-09-01 04:34:23 +09:00
Ritel-T
c7cf84ad39
Preserve Group Fast in integration fixtures
2026-09-01 04:34:06 +09:00
Ritel-T
0681aa2566
Cover Group Fast in native Responses
2026-09-01 04:34:06 +09:00
Ritel-T
17747df842
Add the group Fast admin switch
2026-09-01 04:34:06 +09:00
Ritel-T
3fbce499d8
Add group Fast form helpers
2026-09-01 04:34:06 +09:00
Ritel-T
1a40e5690f
Localize the group Fast control
2026-09-01 04:34:06 +09:00
Ritel-T
7903716ad1
Add frontend group Fast types
2026-09-01 04:34:06 +09:00
Ritel-T
f8eae45048
Force OpenAI Fast across gateway paths
2026-09-01 04:34:06 +09:00
Ritel-T
a44a1019f8
Carry group Fast through auth snapshots
2026-09-01 04:34:06 +09:00
Ritel-T
9fba8ed43b
Return group Fast in admin responses
2026-09-01 04:34:06 +09:00
Ritel-T
7f5e915dd1
Expose group Fast in admin requests
2026-09-01 04:34:06 +09:00
Ritel-T
7e06816571
Preserve group Fast when duplicating groups
2026-09-01 04:34:06 +09:00
Ritel-T
e9e66da5a8
Manage group Fast through group lifecycle
2026-09-01 04:34:06 +09:00
Ritel-T
94bb9354ce
Accept group Fast in admin service inputs
2026-09-01 04:34:06 +09:00
Ritel-T
95982a508f
Project group Fast into API key auth
2026-09-01 04:34:06 +09:00
Ritel-T
563979e91e
Persist the group Fast setting
2026-09-01 04:34:06 +09:00
Ritel-T
1cb28fd429
Regenerate Group persistence for Fast mode
2026-09-01 04:34:06 +09:00
Ritel-T
aa679efe41
Add the group Fast migration
2026-09-01 04:19:38 +09:00
feeeei
e2cfaa46e7
fix(pricing): 目录 cache 侧字段契约哨兵与 Gemini pro 缓存写入价修正
...
阶梯计价数据驱动后,目录条目的字段缺失或版本拼接会直接变成计费偏差,
解析层补两道数据契约哨兵,并修正出厂快照中 Gemini pro 系的缓存写入价:
- orphanCacheTierFields / warnOrphanCacheTierFields:条目带 cache 侧
above 档(含 _priority/_flex 变体与 above_1hr 形态)却没有基础价时打
WARN——cache 侧 above 档不参与计费取值,按"基础价 × 输入倍率"计,基础价
缺失即该分项按 0 计;变体缺自身基础价时沿 变体→1h→标准 回落链任一存在
即不算孤儿,与计费回落一致
- isLopsidedLongContextLadder / warnLopsidedLongContextLadders:above 档
折算出只有一侧带附加费的阶梯时打 WARN(基础价与 above 档来自不同价格
版本的形态),显式 long_context_* 字段不告警
- deriveLongContextFromAboveTierFields 注释改为陈述契约:cache above 档
须恰为基础价 × 输入倍率
- 出厂快照 6 个 Gemini pro 条目补 cache_creation_input_token_cost(= 标准
输入价,Google 对缓存写入不另收费)、above_200k 改为输入 above 价、带
priority 输入价的 4 条补 priority 孪生,与 model-price-repo 数据修正同值
测试:
- 解析层:孤儿字段 WARN(含 priority/1h 孤儿正例、1h 回落 5m 反例)、单侧
阶梯 WARN、出厂快照契约(全条目无孤儿字段、无单侧阶梯、Gemini pro 缓存
写入价 = 输入价)
- 用量契约:extractGeminiUsage 与 Antigravity 非流式/流式转换均不产生
cache_creation token(Gemini usageMetadata 无该类别)
- 计费:gemini-2.5-pro 阶梯对 cache_read / cache_creation 分项生效,阈值
计入缓存写入 token;阶梯表场景与夹具同步为现行目录值
2026-09-01 01:26:55 +08:00
feeeei
593fc93659
feat(pricing): 新增 override_file 价格目录覆盖补丁
...
新增 pricing.override_file 配置(默认关闭):稀疏补丁文件按 JSON 字段
浅合并覆盖目录/回退数据,作为最高优先级数据源,用于本地自定义官方
目录条目(如显式 long_context_input_token_threshold=0 关闭某模型阶梯)
而无需自建价格镜像:
- applyPricingOverrides 挂在 parsePricingData 解析入口,只修补已存在
条目(补丁字段覆盖同名字段,值为 null 删除字段);目录、回退与灾备
路径都经该入口,覆盖语义三处一致
- mergeOverrideOnlyModels 在回退合并后把目录/回退都没有的模型作为
独立条目并入(复用主解析路径,须自带价格字段通过有效性过滤);
不在主解析时抢先建条目,避免纯补丁挡住回退完整条目、其余分项价
静默变 0
- 最终未生效的条目(模型名拼错、纯补丁落在不存在的模型上)打 WARN
哨兵;override 文件缺失/损坏仅跳过合并,不影响目录加载
- 生效时机为重启或下次目录下载,与 fallback_file 一致;fallback_file
只补缺失模型的语义不变
2026-09-01 01:26:55 +08:00
feeeei
530fb20f25
refactor(billing): 长上下文阶梯计价改为价格目录数据驱动
...
删除 GPT/Gemini 系列写死的阶梯规则,阶梯一律由目录数据驱动:
- 解析层折算 LiteLLM 的 *_above_XXXk_tokens 绝对价字段为阈值+倍率
(阈值取自字段名,倍率 = above/基础价,cache 侧跟随输入倍率,
xAI 按 provider 用达到即进高档语义);显式 long_context_* 字段
按"字段存在"优先,显式 threshold=0 或 multiplier=1 可关闭阶梯
- 删除 OpenAI 272K 常量与 applyModelSpecificPricingPolicy 的长上下文
强补分支、fallbackPrices/静态兜底条目的 LongContext 字段、Gemini 旧
边际规则全链路(CalculateCostWithLongContext / RecordUsageWithLongContext /
阶梯表 marginal 基准);保留 fastRatio 与 GPT-5.6 cache_write 1.25x
防御分支、grok 静态兜底阶梯
- 渠道配置定价区间时完全以渠道区间为准,不再叠加目录阶梯
- 长上下文倍率 ≤0 在应用点按 1 计,防止显式字段残缺把分项乘 0 免费
- 目录重载时对比新旧数据,原有阶梯丢失打 WARN 哨兵告警
行为变化:Gemini 由边际 2x(仅 /v1beta、全模型)改为整单换档(数据
驱动、仅带 above_200k 的 pro 系),渠道平价之上叠加目录阶梯;Claude
sonnet-4/4.5 随目录数据获得 200K 整单阶梯(与官方定价一致);模型广场
官方参考价列与实付列同源展示目录阶梯。
2026-09-01 01:26:55 +08:00
Wesley Liddick
200602b41b
Merge pull request #6438 from Brisbanehuang/fix/codex-custom-provider-image-input
...
fix(codex): preserve known GPT image input capabilities
2026-08-31 21:57:09 +08:00
Brisbanehuang
e2624fb65c
fix(codex): preserve known image input capabilities
2026-08-31 09:42:58 -04:00
shaw
cc6a8e5174
chore: update sponsors
2026-08-31 21:29:13 +08:00
Ray
6d5f027848
fix(openai-ws): recycle stale idle pool connections
2026-08-31 21:04:29 +08:00
wucm667
e21b849a92
fix(openai): avoid synthesized instructions for API keys
2026-08-31 20:58:49 +08:00
Jarl
ba345f1052
fix(codex): ignore persistently disabled catalog accounts
2026-08-31 20:26:29 +08:00
刘佳林
7c01ec9be8
feat(groups): scope OpenAI reasoning effort mappings by model
...
Allow OpenAI/Composite group mappings to match by exact model name,
prefix, or suffix. Empty type and model still apply to every model.
The admin form groups multiple request-to-forward pairs under one
type+model scope.
2026-08-31 19:21:31 +08:00
github-actions[bot]
52374af940
chore: sync VERSION to 0.1.184 [skip ci]
2026-08-31 09:28:15 +00:00