1. 05 Mar, 2026 23 commits
  2. 04 Mar, 2026 10 commits
  3. 03 Mar, 2026 7 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
    • shaw's avatar
      fix: 修复 PR #723 引入的 CI lint 和 test 编译错误 · ccf6a921
      shaw authored
      - wire_gen_test.go: 补充 NewTokenRefreshService 缺失的 tempUnschedCache 参数
      - config.go, token_refresh_service.go: 修复 gofmt 格式问题
      ccf6a921
    • shaw's avatar
      fix: 恢复 PR #682 中被误替换为占位符的 OAuth client_secret · 0fe09f1d
      shaw authored
      PR #682 (release → main 全量同步) 将 Antigravity 和 Gemini CLI 的
      OAuth client_secret 硬编码值替换为了 "GOCSPX-your-client-secret" 占位符,
      导致未配置环境变量的部署环境中 token 刷新失败。
      
      恢复内容:
      - antigravity/oauth.go: 恢复真实 client_secret
      - antigravity/oauth_test.go: 恢复测试断言中的真实值
      - geminicli/constants.go: 恢复真实 client_secret
      0fe09f1d