1. 19 Mar, 2026 1 commit
    • erio's avatar
      fix(antigravity): fast-fail on proxy unavailable, temp-unschedule account · 528ff5d2
      erio authored
      ## Problem
      
      When a proxy is unreachable, token refresh retries up to 4 times with
      30s timeout each, causing requests to hang for ~2 minutes before
      failing with a generic 502 error. The failed account is not marked,
      so subsequent requests keep hitting it.
      
      ## Changes
      
      ### Proxy connection fast-fail
      - Set TCP dial timeout to 5s and TLS handshake timeout to 5s on
        antigravity client, so proxy connectivity issues fail within 5s
        instead of 30s
      - Reduce overall HTTP client timeout from 30s to 10s
      - Export `IsConnectionError` for service-layer use
      - Detect proxy connection errors in `RefreshToken` and return
        immediately with "proxy unavailable" error (no retries)
      
      ### Token refresh temp-unschedulable
      - Add 8s context timeout for token refresh on request path
      - Mark account as temp-unschedulable for 10min when refresh fails
        (both background `TokenRefreshService` and request-path
        `GetAccessToken`)
      - Sync temp-unschedulable state to Redis cache for immediate
        scheduler effect
      - Inject `TempUnschedCache` into `AntigravityTokenProvider`
      
      ### Account failover
      - Return `UpstreamFailoverError` on `GetAccessToken` failure in
        `Forward`/`ForwardGemini` to trigger handler-level account switch
        instead of returning 502 directly
      
      ### Proxy probe alignment
      - Apply same 5s dial/TLS timeout to shared `httpclient` pool
      - Reduce proxy probe timeout from 30s to 10s
      528ff5d2
  2. 02 Mar, 2026 1 commit
    • QTom's avatar
      feat(proxy): 集中代理 URL 验证并实现全局 fail-fast · fdcbf7aa
      QTom authored
      提取 proxyurl.Parse() 公共包,将分散在 6 处的代理 URL 验证逻辑
      统一收敛,确保无效代理配置在创建时立即失败,永不静默回退直连。
      
      主要变更:
      - 新增 proxyurl 包:统一 TrimSpace → url.Parse → Host 校验 → Scheme 白名单
      - socks5:// 自动升级为 socks5h://,防止 DNS 泄漏(大小写不敏感)
      - antigravity: http.ProxyURL → proxyutil.ConfigureTransportProxy 支持 SOCKS5
      - openai_oauth: 删除 newOpenAIOAuthHTTPClient,收编至 httpclient.GetClient
      - 移除未使用的 ProxyStrict 字段(fail-fast 已是全局默认行为)
      - 补充 15 个 proxyurl 测试 + pricing/usage fail-fast 测试
      fdcbf7aa
  3. 14 Feb, 2026 1 commit
  4. 03 Feb, 2026 1 commit
    • JIA-ss's avatar
      fix(proxy): 增加代理探测的多 URL 回退机制 · df7a3e65
      JIA-ss authored
      
      
      某些 AI API 专用代理只允许访问特定域名(如 anthropic.com、openai.com),
      会拦截对 ip-api.com 的请求。本次修改增加了多 URL 回退机制:
      
      1. 优先使用 ip-api.com(可获取详细地理信息:城市、地区、国家)
      2. 若失败则回退到 httpbin.org/ip(仅获取 IP 地址,速度快)
      
      主要变更:
      - 新增 probeURLs 列表支持多个探测 URL
      - 重构 ProbeProxy() 实现回退逻辑
      - 新增 parseHTTPBin() 解析 httpbin.org 响应
      - 优化错误信息,JSON 解析失败时显示响应体前 200 字符
      Co-Authored-By: default avatarClaude <noreply@anthropic.com>
      df7a3e65
  5. 15 Jan, 2026 4 commits
  6. 14 Jan, 2026 1 commit
  7. 06 Jan, 2026 1 commit
    • yangjianbo's avatar
      fix(安全): 修复依赖漏洞并强化安全扫描 · 3f0017d1
      yangjianbo authored
      主要改动:
      - 固定 Go 1.25.5 与 CI 校验并更新扫描流程
      - 升级 quic-go、x/crypto、req 等依赖并通过 govulncheck
      - 强化 JWT 校验、TLS 配置与 xlsx 动态加载
      - 新增审计豁免清单与校验脚本
      3f0017d1
  8. 05 Jan, 2026 1 commit
    • yangjianbo's avatar
      feat(安全): 添加安全开关并完善测试流程 · 794a9f96
      yangjianbo authored
      实现安全开关默认关闭与响应头透传逻辑
      - URL 校验与响应头过滤支持开关并覆盖流式路径
      - 非流式 Content-Type 透传/默认值按配置生效
      - 接入 go test、golangci-lint 与前端 lint/typecheck
      - 补充相关测试与配置/文档说明
      794a9f96
  9. 04 Jan, 2026 1 commit
    • shaw's avatar
      feat(proxy): 统一代理配置并支持 SOCKS5H 协议 · 70e9329e
      shaw authored
      - 新增 proxyutil 包,统一 HTTP/HTTPS/SOCKS5/SOCKS5H 代理配置逻辑
      - SOCKS5H 支持服务端 DNS 解析,避免本地 DNS 泄露
      - 移除 ProxyStrict 宽松模式,代理失败直接返回错误不回退直连
      - 前端代理管理页面支持 SOCKS5H 协议的添加/编辑/批量导入
      - 补充 IPv6 地址和特殊字符密码的边界测试
      70e9329e
  10. 03 Jan, 2026 1 commit
    • yangjianbo's avatar
      fix(安全): 修复上游校验与 URL 清理问题 · 25e16326
      yangjianbo authored
      增加请求阶段 DNS 解析校验,阻断重绑定到私网
      补充默认透传 WWW-Authenticate 头,保留认证挑战
      前端相对 URL 过滤拒绝 // 协议相对路径
      
      测试: go test ./internal/repository -run TestGitHubReleaseServiceSuite
      测试: go test ./internal/repository -run TestTurnstileServiceSuite
      测试: go test ./internal/repository -run TestProxyProbeServiceSuite
      测试: go test ./internal/repository -run TestClaudeUsageServiceSuite
      25e16326
  11. 02 Jan, 2026 1 commit
    • yangjianbo's avatar
      feat(安全): 强化安全策略与配置校验 · bd4bf008
      yangjianbo authored
      - 增加 CORS/CSP/安全响应头与代理信任配置
      
      - 引入 URL 白名单与私网开关,校验上游与价格源
      
      - 改善 API Key 处理与网关错误返回
      
      - 管理端设置隐藏敏感字段并优化前端提示
      
      - 增加计费熔断与相关配置示例
      
      测试: go test ./...
      bd4bf008
  12. 31 Dec, 2025 1 commit
    • yangjianbo's avatar
      perf(后端): 完成性能优化与连接池配置 · 7efa8b54
      yangjianbo authored
      新增 DB/Redis 连接池配置与校验,并补充单测
      
      网关请求体大小限制与 413 处理
      
      HTTP/req 客户端池化并调整上游连接池默认值
      
      并发槽位改为 ZSET+Lua 与指数退避
      
      用量统计改 SQL 聚合并新增索引迁移
      
      计费缓存写入改工作池并补测试/基准
      
      测试: 在 backend/ 下运行 go test ./...
      7efa8b54
  13. 25 Dec, 2025 1 commit
  14. 24 Dec, 2025 1 commit
  15. 20 Dec, 2025 2 commits
    • NepetaLemon's avatar
      ci(backend): 添加 github actions (#10) · c6b3de11
      NepetaLemon authored
      ## 变更内容
      
      ### CI/CD
      - 添加 GitHub Actions 工作流(test + golangci-lint)
      - 添加 golangci-lint 配置,启用 errcheck/govet/staticcheck/unused/depguard
      - 通过 depguard 强制 service 层不能直接导入 repository
      
      ### 错误处理修复
      - 修复 CSV 写入、SSE 流式输出、随机数生成等未处理的错误
      - GenerateRedeemCode() 现在返回 error
      
      ### 资源泄露修复
      - 统一使用 defer func() { _ = xxx.Close() }() 模式
      
      ### 代码清理
      - 移除未使用的常量
      - 简化 nil map 检查
      - 统一代码格式
      c6b3de11
    • Forest's avatar
      refactor(backend): service http ports · cceada7d
      Forest authored
      cceada7d