1. 06 Mar, 2026 2 commits
    • yangjianbo's avatar
      fix(openai): 修复 gpt-5.4 长上下文计费与快照白名单 · f3660264
      yangjianbo authored
      补齐 gpt-5.4 fallback 的长上下文计费元信息,\n确保超过 272000 输入 token 时对整次会话应用\n2x 输入与 1.5x 输出计费规则。\n\n同时将官方快照 gpt-5.4-2026-03-05 加入前端\n白名单候选与回归测试,避免 whitelist 模式误拦截。\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
      
      (cherry picked from commit d95497af87f608c6dadcbe7d6e851de9413ae147)
      f3660264
    • yangjianbo's avatar
      feat(openai): 增加 gpt-5.4 模型支持与定价配置 · 1a0d4ed6
      yangjianbo authored
      
      
      - 接入 gpt-5.4 模型识别与规范化,补充默认模型列表
      - 增加 gpt-5.4 输入/缓存命中/输出价格与计费兜底逻辑
      - 同步前端模型白名单与 OpenCode 上下文窗口(1050000/128000)
      Co-Authored-By: default avatarClaude Opus 4.6 <noreply@anthropic.com>
      (cherry picked from commit 924476dcac6181cd0f3ee731ec7b73672ff03793)
      1a0d4ed6
  2. 05 Mar, 2026 23 commits
  3. 04 Mar, 2026 10 commits
  4. 03 Mar, 2026 5 commits
    • shaw's avatar
      feat: 重构 /v1/usage 端点,支持 quota_limited 和 unrestricted 双模式 · 838dad87
      shaw authored
      - quota_limited 模式:返回 Key 级别的总额度、速率限制窗口用量和过期时间
      - unrestricted 模式:返回订阅限额或钱包余额信息(向后兼容)
      - 新增 model_stats 字段,支持 start_date/end_date 参数查询按模型用量统计
      - 提取 buildUsageData/parseUsageDateRange 等辅助方法,减少主函数复杂度
      - 新增 APIKeyService.GetRateLimitData 和 UsageService.GetAPIKeyModelStats
      838dad87
    • shaw's avatar
      refactor: 重构 api_key_auth 中间件,用 skipBilling 替代 7 处散落的 isUsageQuery · a728dfe0
      shaw authored
      将中间件职责拆分为鉴权(Authentication)和计费执行(Billing Enforcement)两层:
      - 鉴权层(disabled/IP/用户状态)始终执行
      - 计费层(过期/配额/订阅/余额)用单一 skipBilling 守卫整块控制
      
      /v1/usage 端点只需鉴权不需计费,skipBilling 仅出现 2 处(订阅加载错误处理 + 计费块守卫),
      取代了之前 isUsageQuery 散布在 7 个 if 分支中的控制流。
      a728dfe0
    • QTom's avatar
      feat(gateway): 系统设置控制未分组 Key 调度 — Handler 层中间件拦截 · 0c7cbe35
      QTom authored
      新增系统设置 allow_ungrouped_key_scheduling(默认关闭),
      未分组的 API Key 在网关请求时直接返回 403,
      由 RequireGroupAssignment 中间件统一拦截,
      支持 Anthropic / Google 两种错误格式响应。
      
      全栈实现:常量 → 结构体 → 解析/更新/初始化 → DTO → 管理接口 →
      中间件 → 路由注册 → 前端设置界面 + i18n。
      0c7cbe35
    • alfadb's avatar
      style: fix gofmt formatting in ops_settings.go · 832b0185
      alfadb authored
      
      
      Remove extra space before inline comment to pass golangci-lint gofmt check.
      Co-Authored-By: default avatarClaude Opus 4.6 <noreply@anthropic.com>
      832b0185
    • alfadb's avatar
      fix(ops): 默认忽略 count_tokens 404 错误 · b1719b26
      alfadb authored
      
      
      将 IgnoreCountTokensErrors 默认值从 false 改为 true。
      
      count_tokens 返回 404 是预期业务行为(上游不支持 endpoint,
      客户端应 fallback 到本地 tokenizer 估算),不应被视为错误。
      Co-Authored-By: default avatarClaude Opus 4.6 <noreply@anthropic.com>
      b1719b26