1. 11 Mar, 2026 3 commits
    • amberwarden's avatar
      fix: 为 Anthropic Messages API 流式转发添加下游 keepalive ping · 6e90ec61
      amberwarden authored
      
      
      Anthropic Messages API 的流式转发路径(gateway_service.go)在上游长时间
      无数据时(如 Opus extended thinking 阶段)不会向下游发送任何内容,导致
      Cloudflare Tunnel 等代理因连接空闲而断开。
      
      复用已有的 StreamKeepaliveInterval 配置(默认 10 秒),在 select 循环中
      添加 keepalive 分支,定时发送 Anthropic 原生格式的 ping 事件保活,与
      OpenAI 兼容路径的实现模式保持一致。
      Co-Authored-By: default avatarClaude Opus 4.6 <noreply@anthropic.com>
      6e90ec61
    • 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 4 commits
  3. 09 Mar, 2026 19 commits
  4. 08 Mar, 2026 7 commits
  5. 07 Mar, 2026 7 commits