wucm667
71aa6e3574
fix(antigravity): preserve explicit Sonnet 4.5 routing
2026-08-24 16:07:27 +08:00
wucm667
99ec347eaf
fix(antigravity): migrate legacy Sonnet tests to 4.6
2026-08-24 15:58:47 +08:00
github-actions[bot]
03e8ab4134
chore: sync VERSION to 0.1.180 [skip ci]
2026-08-24 07:30:34 +00:00
Wesley Liddick
c40edb4070
Merge pull request #6139 from xz-dev/fix/configurable-model-list-read-limit
...
feat(gateway): configure model list read limit
v0.1.180
2026-08-24 15:04:50 +08:00
Wesley Liddick
7bb9c0ed7d
Merge pull request #6079 from okbexx/fix/codex-analytics-account-affinity
...
fix(openai): scope Codex identity to OAuth account
2026-08-24 14:54:05 +08:00
Wesley Liddick
5f43696a9a
Merge pull request #6121 from creamtea47/codex/feat-openai-auto-reset-credit
...
feat: OpenAI 重置卡按用量阈值自动使用
2026-08-24 14:39:59 +08:00
Xiangzhe
847c0c4526
feat(gateway): configure model list read limit
...
Add gateway.models_list_read_max_bytes with the existing 8 MiB behavior as its default, and apply it consistently to generic, Codex, and Antigravity model-list reads.
Read one sentinel byte for Codex manifests so oversized responses return an explicit bounded upstream error instead of malformed JSON.
2026-08-24 14:20:18 +08:00
Wesley Liddick
4a02d80543
Merge pull request #6136 from alfadb/fix/flaky-tool-schema-alloc-guard
...
fix(openai): harden flaky alloc guard in tool schema sanitize test
2026-08-24 14:17:15 +08:00
Wesley Liddick
bd17411d0e
Merge pull request #6129 from alfadb/feature/openai-fast-service-tier
...
feat(openai): Fast 档位请求校验、响应透传与按上游实际档位计费
2026-08-24 14:16:47 +08:00
Wesley Liddick
c4ae3550dd
Merge pull request #6119 from feeeei/feat/go1.27.0
...
feat(go1.27.0): 升级 Go 1.27.0,默认启用 jsonv2 ,并同步 CI/Dockerfile
2026-08-24 14:11:03 +08:00
Wesley Liddick
2f43e72bb9
Merge pull request #6109 from feeeei/main
...
feat(model-plaza): 模型广场增加长上下文阶梯计价显示 & 分时段计价显示
2026-08-24 14:09:56 +08:00
Wesley Liddick
b8651947c3
Merge pull request #6137 from yan9651688/codex/fix-cn-anthropic-usage-billing
...
fix(billing): normalize CN Anthropic usage tokens
2026-08-24 14:09:45 +08:00
NellPoi
96b160d9a0
fix: 修复重置工作流共享告警码检查
2026-08-24 13:46:19 +08:00
NellPoi
6f972145b7
feat: 支持 OpenAI 重置卡按用量阈值自动使用
2026-08-24 13:28:33 +08:00
yan9651688
695ebede70
fix(billing): normalize CN Anthropic usage tokens
2026-08-24 13:05:12 +08:00
alfadb
269a409241
fix(openai): harden flaky alloc guard in tool schema sanitize test
2026-08-24 12:37:53 +08:00
feeeei
73aabc861c
build: 取消 gosec G703/G704 全局排除,生产代码逐点 nolint、测试文件按路径豁免;DEV_GUIDE 同步 golangci-lint v2.13
2026-08-24 12:21:06 +08:00
feeeei
3b81776429
fix(test): grok QueryQuota 用例排除后台 /v1/models 同步请求,消除请求计数竞态
...
QueryQuota 返回前经 scheduleGrokObservedModelsSync 异步拉取 GET /v1/models,
该请求是否早于 upstream.snapshot() 落到 mock 取决于调度时序,三个精确断言
请求数的用例约 0.5% 偶发多出一条。新增 quotaSnapshot 只返回配额探测链路的
请求,三处断言改用它。
2026-08-24 12:02:53 +08:00
feeeei
cbe258fd12
build: 升级 Go 1.27.0,同步 CI/Dockerfile 并适配 jsonv2 与 golangci-lint v2.13
...
- go.mod 1.26.6 → 1.27.0;backend-ci/release/security-scan 的 go version 断言、
三个 Dockerfile 的 golang 镜像、README 徽章与 DEV_GUIDE 同步
- golangci-lint-action v2.9 → v2.13(v2.9 由 go1.26 构建,拒绝 go.mod 1.27 目标);
新规则按最小方式处理:排除 G703/G704 污点分析(网关按配置转发/写文件,
与既有 G304 排除策略一致)、reflect.Ptr → reflect.Pointer、
ResetQuota 恒返回错误的 SA4023 与 OIDC EC JWK 的 SA1019 加 nolint
- ent 生成代码按 Go 1.27 默认 jsonv2 引擎重新生成:json.RawMessage 字段
生成为同类型别名 jsontext.Value(group.model_pricing / usage_cleanup_task.filters)
- x/net v0.56 在 go1.27 下包装标准库 HTTP/2:ConfigureTransports 经
RegisterProtocol("http/2") 打开 Protocols.HTTP2 而不再写 TLSNextProto,
ReadIdleTimeout/PingTimeout 建连时映射为 HTTP2Config.SendPingTimeout/PingTimeout;
keepalive 测试改断言 Protocols.HTTP2(),并补真实 HTTP/2 协商用例
2026-08-24 12:02:53 +08:00
alfadb
1591477a3e
test(apicompat): adapt ChatCompletionsResponseToResponses call to upstream functionTools signature
2026-08-24 11:58:01 +08:00
alfadb
e457f0fa22
fix(openai): adapt service tier observation to upstream constraints
...
- cc_pipeline: observe Chat Completions chunks/bodies as untyped payloads
(empty event type) so the upstream-echoed service_tier is trusted, matching
the upstream constraint that only terminal events and untyped bodies report
the actual processing tier.
- tests: add model field to terminal SSE frames (observation only triggers on
model-bearing frames) and assert response.created tier echo is ignored.
2026-08-24 11:52:48 +08:00
alfadb
c0c3e1cb47
fix(openai): wire local observer service tier in WS ingress; bound handler tests
...
- openai_ws_forwarder_ingress: resolve billing tier from the local
upstreamResponseModelObserver (upstream echo first) instead of the raw
request payload, matching the HTTP->WS bridge and WS v2 forwarder.
- openai_ws_http_bridge_test: add fast-alias + upstream default case
proving the local observer's echoed tier wins.
- handler tests: keep only invalid service_tier -> 400 (short-circuits at
validation); valid/omitted semantics covered by the pure service-level
validation tests, avoiding real account selection in tests.
2026-08-24 11:52:48 +08:00
alfadb
f06bf181d2
feat(openai): support Fast mode service_tier across responses/chat/WS paths
...
- Accept fast|priority (canonical priority), flex|auto|default|scale on
/v1/responses and /v1/chat/completions; reject unknown/empty/non-string
with HTTP 400; omitted and null stay compatible.
- Propagate service_tier through JSON/SSE, Responses<->Chat conversions,
fallback paths and HTTP->upstream WebSocket bridge.
- Billing prefers the upstream terminal tier; the outbound (policy-
transformed) tier is used only when upstream omits the field.
Explicit upstream default bills Standard even when Fast was requested.
- Pricing: Fast premium 2x Standard for gpt-5.6-sol/terra/luna and
gpt-5.4; 2.5x for gpt-5.5; channel FastMultiplier stays authoritative.
- Live verification (official Codex 0.149.0 + gateway, HTTP & WS):
upstream ChatGPT backend may return terminal default even when the
account catalog advertises priority; billing follows the actual tier.
2026-08-24 11:52:48 +08:00
Wesley Liddick
7075ae0d82
Merge pull request #6133 from spongehah/feat-ops-error-detail-back-to-list-pr
...
feat: 运维监控错误详情支持返回列表并保留筛选状态
2026-08-24 11:40:31 +08:00
Wesley Liddick
a177b88e52
Merge pull request #6122 from aeonframework/security/bump-dompurify-xss-fixes
...
fix(deps): bump dompurify to patch sanitizer-bypass XSS advisories
2026-08-24 11:39:25 +08:00
spongehah
cfecc8d113
feat: 运维监控错误详情支持返回列表并保留筛选状态
...
进入单条错误详情后新增"返回列表"按钮,可回到来源明细列表并保留
筛选/分页状态,避免只能退出到运维监控总览后重新筛选。记录来源列表
类型,返回时跳过列表重开时的筛选重置。
2026-08-24 11:25:43 +08:00
Wesley Liddick
c416467882
Merge pull request #6084 from wucm667/fix/issue-6057-responses-lite-parallel-tools
...
fix(openai): enforce serial tool calls for Responses Lite
2026-08-24 11:24:17 +08:00
feeeei
f19095f96d
模型广场:分时时段行明确不含高峰倍率口径并披露叠加
...
- 实扣倍率为 基础 × 高峰 × 分时;时段行价格与整表一致,按不含高峰的口径展示
- 分组启用高峰时,时段行 tooltip 披露与高峰窗口重叠的部分实付再乘高峰倍率
- PlazaGroupSection 把高峰窗口描述与倍率传入价格表
2026-08-24 11:23:58 +08:00
Wesley Liddick
625f1693cb
Merge pull request #6118 from akihitohyh/fix/terminal-output-item-preservation
...
fix(openai): rebuild streaming terminal output from the reported items
2026-08-24 11:23:51 +08:00
Wesley Liddick
f25f399be0
Merge pull request #5905 from wucm667/fix/issue-5883-restore-custom-tool-alias
...
fix(openai): restore namespaced custom tool aliases
2026-08-24 11:23:37 +08:00
Wesley Liddick
748b84a15a
Merge pull request #6081 from wucm667/fix/issue-5942-deferred-tools
...
fix(responses): remove orphan deferred tool flags
2026-08-24 11:23:25 +08:00
Wesley Liddick
fa42c3d706
Merge pull request #6080 from alfadb/fix/cc-stream-empty-tool-call-identity
...
fix(openai): 剔除流式 tool_call 后续 delta 中的空 id/name
2026-08-24 11:23:12 +08:00
Wesley Liddick
fb01f5df2c
Merge pull request #6060 from anguobao123/codex/document-openai-force-http-fallback
...
fix(deploy): forward documented Gateway settings
2026-08-24 11:22:38 +08:00
Wesley Liddick
8238956799
Merge pull request #6095 from xiaxiaxaia/fix/openai-oauth-upstream-model-sync
...
fix(openai): sync models for OAuth accounts
2026-08-24 11:21:58 +08:00
Wesley Liddick
e00a8abdd5
Merge pull request #6124 from anguobao123/codex/diagnose-openai-load-batch-exclusions
...
fix(scheduler): diagnose load-batch OpenAI exclusions
2026-08-24 11:21:30 +08:00
Wesley Liddick
a52665d079
Merge pull request #6061 from shunwang-crypto/fix/ops-mixing-cgroup-host-memory
...
fix(ops): avoid mixing cgroup and host memory metrics
2026-08-24 11:20:51 +08:00
Wesley Liddick
ba5b861ec0
Merge pull request #6073 from lbyxiaolizi/fix/proxy-ipv6-batch-parse
...
fix(proxy): support bracketed IPv6 hosts in batch proxy URL parsing
2026-08-24 11:20:34 +08:00
Wesley Liddick
817fd1214c
Merge pull request #6075 from YogaSakti/fix/user-edit-allow-zero-concurrency
...
fix(frontend): accept unlimited (0) user concurrency in the edit dialog
2026-08-24 11:20:09 +08:00
Wesley Liddick
41f6e63799
Merge pull request #6117 from wucm667/feat/issue-6114-account-priority-column
...
fix(admin): show account priority by default
2026-08-24 11:19:53 +08:00
feeeei
b07d85c497
模型广场:分时计价同步渠道仅工作日规则
...
- 阶梯表分时倍率透传渠道 weekdays_only;探针锚点显式固定在工作日
(原 2026-01-01 恰为周四是巧合,锚点落周末会把仅工作日时段整组剔除)
- 前端时段徽章加「工作日」前缀,tooltip 说明周末全天按标准价计费
2026-08-24 11:16:00 +08:00
wucm667
bc4a9ae432
fix: prevent duplicate Anthropic cache TTL billing
2026-08-24 11:05:57 +08:00
alfadb
cc894ef578
fix(openai): strip empty streamed tool-call id/name
...
DashScope/DeepSeek later tool_call deltas send empty id and
function.name. Clients that merge with !== undefined overwrite
the first delta's identity and dispatch unknown tool "". Drop
those empty fields on the raw Chat Completions SSE path.
2026-08-24 10:59:52 +08:00
feeeei
83d4eb6a43
模型广场:增加渠道分时段计价展示
...
- 阶梯表查询附带分时倍率时段:时段取自计费解析到的渠道定价,
每个时段的倍率由计费的 resolvedChannelTimeMultiplier 在时段内取值,
分组价卡覆盖或配置非法时自然不出现;倍率为 1 的时段不列
- 广场模型条目新增 time_pricing(时区 + 时段 + 倍率)
- 前端把分时时段展开为独立行:模型名旁标注时段,价格按时段倍率折算,
倍率列显示生效倍率;时区与计算口径放在提示中
2026-08-24 10:50:52 +08:00
feeeei
ecce0769c0
模型广场:上下文档位统一标签形态并保证升序
...
- 阶梯表标签由计费层统一生成:有上限的档为「≤上限」、末档为「>下限」
(达到阈值即进高档时用 < / ≥),不再沿用渠道区间的自定义 tier_label;
合并同价段只看单价
- 前端档位按下限升序兜底展示,无标签时按同一形态生成
2026-08-24 10:50:52 +08:00
feeeei
377d1230fc
模型广场:按计费阶梯单价表展示长上下文档位
...
- 新建 ModelPlazaService(持计费服务与定价解析器)承接广场聚合,
token 模型的单价与档位全部取自 ResolveContextPricingSchedule,
渠道选择与计费同源;图片/按次模型沿用原档位合成
- 官方参考价改走计费目录(LiteLLM → 内置兜底 → 模型策略),带官方阶梯
- DTO 增加 long_context_pricing_enabled / long_context_basis /
official_pricing.intervals
- 前端实付与官方三列按档分行(标签只在首列,其余列按行对齐),
缓存列按档展示写/读价,边际计价以徽章与 tooltip 标注,
分组关闭阶梯时在头部说明
2026-08-24 10:50:52 +08:00
feeeei
6466978d2f
计费:统一 token 计费路径选择并提供上下文阶梯单价表查询
...
- BillingService.CalculateTokenCostForRequest 承接网关的路径选择
(分组/渠道定价 → 平台旧长上下文规则 → 内置目录),网关改为调用该入口
- Gemini /v1beta 的 200K 边际翻倍常量从 handler 移入
BillingService.LegacyLongContextRule,入口只声明适用
- 新增 ResolveContextPricingSchedule:沿用 Resolve 解析链收集断点
(渠道区间边界、目录阶梯阈值、旧规则阈值),每档单价由真实计费函数
探针差商得出,倍率/策略变更无需同步;附阶梯表 vs 计费函数的对账测试
2026-08-24 10:50:52 +08:00
Wesley Liddick
3b8a148bcf
Merge pull request #6111 from feeeei/fix/request_billing
...
fix(billing): bill fast mode by the tier upstream actually served
2026-08-24 10:43:17 +08:00
Wesley Liddick
3e45d4e030
Merge pull request #6089 from lyen1688/feat/channel-time-pricing-weekdays
...
新增渠道时间段定价工作日生效规则
2026-08-24 10:21:47 +08:00
Wesley Liddick
f82d32207f
Merge pull request #6127 from Wei-Shaw/feat/oauth-transport-plugin-system
...
feat: add OAuth outbound transport plugin system
2026-08-24 10:16:05 +08:00
shaw
40aaf7b3ae
fix: handle plugin route health update errors
2026-08-24 10:02:06 +08:00