1. 11 Mar, 2026 3 commits
    • shaw's avatar
      refactor: 重构 Chat Completions 端点,采用类型安全的 Responses API 转换 · 9d814679
      shaw authored
      将 /v1/chat/completions 端点从 ResponseWriter 劫持模式重构为独立的
      类型安全转换路径,与 Anthropic Messages 端点架构对齐:
      
      - 在 apicompat 包新增 Chat Completions 完整类型定义和双向转换器
      - 新增 ForwardAsChatCompletions service 方法,走 Responses API 上游
      - Handler 改为独立的账号选择/failover 循环,不再劫持 Responses handler
      - 提取 handleCompatErrorResponse 为 Chat Completions 和 Messages 共用
      - 删除旧的 forwardChatCompletions 直传路径及相关死代码
      9d814679
    • 7976723's avatar
      fix: 修复 Chat Completions 编译错误和运行时 panic · a17ac501
      7976723 authored
      1. 修复 WriteFilteredHeaders API 不兼容(2处):
         将 s.cfg.Security.ResponseHeaders 改为 s.responseHeaderFilter,
         因为 main 分支已将函数签名改为接受 *responseheaders.CompiledHeaderFilter
      
      2. 修复 writer 生命周期导致的 nil pointer panic:
         ChatCompletions handler 替换了 c.Writer 但未恢复,导致
         OpsErrorLogger 中间件的 defer 释放 opsCaptureWriter 后,
         Logger 中间件调用 c.Writer.Status() 触发空指针解引用。
         通过保存并恢复 originalWriter 修复。
      
      3. 为 chatCompletionsResponseWriter 添加防御性 Status() 和
         Written() 方法,包含 nil 安全检查
      
      4. 恢复 gateway.go 中被误删的 net/http import
      a17ac501
    • 7976723's avatar
      feat: 添加 OpenAI Chat Completions 兼容端点 · 656a77d5
      7976723 authored
      
      
      基于 @yulate 在 PR #648 (commit 0bb6a392) 的工作,解决了与最新
      main 分支的合并冲突。
      
      原始功能(@yulate):
      - 添加 /v1/chat/completions 和 /chat/completions 兼容端点
      - 将 Chat Completions 请求转换为 Responses API 格式并转换回来
      - 添加 API Key 直连转发支持
      - 包含单元测试
      Co-authored-by: default avataryulate <yulate@users.noreply.github.com>
      656a77d5
  2. 10 Mar, 2026 2 commits
    • wucm667's avatar
      fix: 补充缺失的组级和账户级运维告警指标 · e3cf0c0e
      wucm667 authored
      新增以下运维告警指标类型:
      - group_available_accounts: 组内可用账户数
      - group_available_ratio: 组内可用账户比例
      - group_rate_limit_ratio: 组内限速账户比例
      - account_rate_limited_count: 限速账户数
      - account_error_count: 错误账户数
      - account_error_ratio: 错误账户比例
      - overload_account_count: 过载账户数
      
      包含比例和计数类指标的评估逻辑,并注册新的百分比类指标用于阈值校验。
      e3cf0c0e
    • shaw's avatar
      00a0a121
  3. 09 Mar, 2026 6 commits
  4. 08 Mar, 2026 3 commits
  5. 07 Mar, 2026 9 commits
  6. 06 Mar, 2026 7 commits
  7. 05 Mar, 2026 9 commits
  8. 04 Mar, 2026 1 commit
    • shaw's avatar
      refactor: 消除重复的 normalizeAccountIDList,补充 PR#754 新增组件的单元测试 · 0819c8a5
      shaw authored
      - 删除 account_today_stats_cache.go 中重复的 normalizeAccountIDList,统一使用 id_list_utils.go 的 normalizeInt64IDList
      - 新增 snapshot_cache_test.go:覆盖 snapshotCache、buildETagFromAny、parseBoolQueryWithDefault
      - 新增 id_list_utils_test.go:覆盖 normalizeInt64IDList、buildAccountTodayStatsBatchCacheKey
      - 新增 ops_query_mode_test.go:覆盖 shouldFallbackOpsPreagg、cloneOpsFilterWithMode
      0819c8a5