1. 30 Dec, 2025 1 commit
    • song's avatar
      fix(Antigravity): 修复账号测试连接认证错误 · 5844ea7e
      song authored
      - 新增 AntigravityGatewayService.TestConnection 方法,支持 Claude/Gemini 双协议测试
      - AccountTestService 改用 AntigravityGatewayService 进行测试连接
      - GetAvailableModels 为 Antigravity 账号返回 Claude + Gemini 模型列表
      5844ea7e
  2. 26 Dec, 2025 7 commits
    • IanShaw027's avatar
      fix(backend): 适配重构后的架构修复 Gemini OAuth 集成 · 9db52838
      IanShaw027 authored
      ## 主要修改
      
      1. **移除 model 包引用**
         - 删除所有 `internal/model` 包的 import
         - 使用 service 包中的类型定义(Account, Platform常量等)
      
      2. **修复类型转换**
         - JSONB → map[string]any
         - 添加 mergeJSONB 辅助函数
         - 添加 Account.IsGemini() 方法
      
      3. **更新中间件调用**
         - GetUserFromContext → GetAuthSubjectFromContext
         - 适配新的并发控制签名(传递 ID 和 Concurrency 而不是完整对象)
      
      4. **修复 handler 层**
         - 更新 gemini_v1beta_handler.go
         - 修正 billing 检查和 usage 记录
      
      ## 影响范围
      - backend/internal/service/gemini_*.go
      - backend/internal/service/account_test_service.go
      - backend/internal/service/crs_sync_service.go
      - backend/internal/handler/gemini_v1beta_handler.go
      - backend/internal/handler/gateway_handler.go
      - backend/internal/handler/admin/account_handler.go
      9db52838
    • shaw's avatar
      fix: admin handlers 添加 DTO 转换修复 JSON 序列化 · 739d0ee6
      shaw authored
      修复 PR #36 合并后部分 admin handler 直接返回 service 层对象导致
      JSON 字段名为 PascalCase 而非期望的 snake_case 问题。
      
      修复内容:
      - account_handler: Refresh 接口添加 dto.AccountFromService
      - openai_oauth_handler: RefreshAccountToken/CreateAccountFromOAuth 添加 dto 转换
      - subscription_handler: BulkAssign 添加 dto.BulkAssignResultFromService
      - usage_handler: List 接口添加 dto.UsageLogFromService 转换
      - 新增 dto.BulkAssignResult 类型和对应的 mapper 函数
      739d0ee6
    • Forest's avatar
      refactor: 调整项目结构为单向依赖 · e5a77853
      Forest authored
      e5a77853
    • ianshaw's avatar
      fix(backend): 修复 golangci-lint 报告的格式和代码规范问题 · 6682d06c
      ianshaw authored
      - gofmt: 修复 account_handler.go, models.go, gemini_messages_compat_service.go 的格式
      - staticcheck ST1005: 将 error strings 改为小写开头
      6682d06c
    • ianshaw's avatar
      feat(backend): 添加 Gemini V1beta Handler 和路由 · 46cb82ba
      ianshaw authored
      - 新增 gemini_v1beta_handler.go: 代理原生 Google API 格式
      - 更新 gemini_oauth_handler.go: 移除 redirectUri,新增 oauthType
      - 更新 account_handler.go: 账户 Handler 增强
      - 更新 router.go: 注册 v1beta 路由
      - 更新 config.go: Gemini OAuth 通过环境变量配置
      - 更新 wire_gen.go: 依赖注入
      46cb82ba
    • ianshaw's avatar
      feat(backend): 完善 Gemini OAuth Token 处理 · 03a8ae62
      ianshaw authored
      - 修复 account_handler 中 token 字段类型转换(int64 转 string)
      - 增强 Account.GetCredential 支持多种数值类型(float64, int, json.Number 等)
      - 添加 Account.IsGemini() 方法用于平台判断
      - 优化 refresh_token 和 scope 的空值处理
      03a8ae62
    • ianshaw's avatar
      feat(handler): 添加 Gemini OAuth Handler 和完善依赖注入 · e36fb98f
      ianshaw authored
      - 新增 Gemini OAuth 授权处理器
      - 扩展账号和网关处理器支持 Gemini
      - 注册 Gemini 相关路由
      - 更新 Wire 依赖注入配置(所有层)
      - 更新 Docker Compose 配置
      e36fb98f
  3. 25 Dec, 2025 3 commits
    • Forest's avatar
      refactor: 自定义业务错误 · eeaff85e
      Forest authored
      eeaff85e
    • ianshaw's avatar
      feat(account): 优化批量更新实现,使用统一 SQL 合并 JSONB 字段 · 62ed5422
      ianshaw authored
      - 新增 BulkUpdate 仓储方法,使用单条 SQL 更新所有账户
      - credentials/extra 使用 COALESCE(...) || ? 合并,只更新传入的 key
      - name/proxy_id/concurrency/priority/status 只在提供时更新
      - 分组绑定仍逐账号处理(需要独立操作)
      - 前端优化:Base URL 留空则不修改,按勾选字段更新
      - 完善 i18n 文案:说明留空不修改、批量更新行为
      62ed5422
    • ianshaw's avatar
      feat(account): 添加批量编辑账户凭据功能并优化 CRS 同步 · 2e76302a
      ianshaw authored
      - 新增批量更新账户凭据接口(account_uuid/org_uuid/intercept_warmup_requests)
      - 新增前端批量编辑模态框组件
      - 优化 CRS 同步逻辑,改进 extra 字段处理
      - 优化 CRS 同步 UI,添加更详细的结果展示
      - 完善国际化文案(中英文)
      2e76302a
  4. 24 Dec, 2025 4 commits
  5. 23 Dec, 2025 1 commit
    • shaw's avatar
      feat: 账号管理新增使用统计功能 · 7b9c3f16
      shaw authored
      - 新增账号统计弹窗,展示30天使用数据
      - 显示总费用、请求数、日均费用、日均请求等汇总指标
      - 显示今日概览、最高费用日、最高请求日
      - 包含费用与请求趋势图(双Y轴)
      - 复用模型分布图组件展示模型使用分布
      - 显示实际扣费和标准计费(标准计费以较淡颜色显示)
      7b9c3f16
  6. 22 Dec, 2025 1 commit
  7. 20 Dec, 2025 3 commits
    • Forest's avatar
      ci(backend): 添加 gofmt 配置 · 1e1f3c0c
      Forest authored
      1e1f3c0c
    • Forest's avatar
      ci(backend): 添加 unused 配置 · 1fab9204
      Forest authored
      1fab9204
    • 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
  8. 19 Dec, 2025 2 commits
    • shaw's avatar
      feat(account): 支持账号级别拦截预热请求 · d1f0902e
      shaw authored
      - 新增 intercept_warmup_requests 配置项,存储在 credentials 字段
      - 启用后,标题生成、Warmup 等预热请求返回 mock 响应,不消耗上游 token
      - 前端支持所有账号类型(OAuth、Setup Token、API Key)的开关配置
      - 修复 OAuth 凭证刷新时丢失非 token 配置的问题
      d1f0902e
    • shaw's avatar
      feat(account): 账号测试支持选择模型 · ee86dbca
      shaw authored
      - 新增 GET /api/v1/admin/accounts/:id/models 接口获取账号可用模型
      - 账号测试弹窗新增模型选择下拉框
      - 测试时支持传入 model_id 参数,不传则默认使用 Sonnet
      - API Key 账号支持根据 model_mapping 映射测试模型
      - 将模型常量提取到 claude 包统一管理
      ee86dbca
  9. 18 Dec, 2025 1 commit