- 31 Dec, 2025 6 commits
-
-
yangjianbo authored
## 数据完整性修复 (fix-critical-data-integrity) - 添加 error_translate.go 统一错误转换层 - 修复 nil 输入和 NotFound 错误处理 - 增强仓储层错误一致性 ## 仓储一致性修复 (fix-high-repository-consistency) - Group schema 添加 default_validity_days 字段 - Account schema 添加 proxy edge 关联 - 新增 UsageLog ent schema 定义 - 修复 UpdateBalance/UpdateConcurrency 受影响行数校验 ## 数据卫生修复 (fix-medium-data-hygiene) - UserSubscription 添加软删除支持 (SoftDeleteMixin) - RedeemCode/Setting 添加硬删除策略文档 - account_groups/user_allowed_groups 的 created_at 声明 timestamptz - 停止写入 legacy users.allowed_groups 列 - 新增迁移: 011-014 (索引优化、软删除、孤立数据审计、列清理) ## 测试补充 - 添加 UserSubscription 软删除测试 - 添加迁移回归测试 - 添加 NotFound 错误测试
🤖 Generated with [Claude Code](https://claude.com/claude-code ) Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
yangjianbo authored
超限且无可淘汰条目时拒绝新建 规范化代理地址并更新失败时的访问时间 补充连接池上限与代理规范化测试
-
yangjianbo authored
新增隔离策略与连接池缓存回收 连接池大小跟随账号并发并处理代理切换 同步配置默认值与示例并补充测试
-
shaw authored
-
yangjianbo authored
- system 字段存在即视为显式提供,避免 null 触发默认注入 - 日统计分组显式使用应用时区,缺失时从 TZ 回退到 UTC - 缓存写入队列丢弃日志节流汇总,关键任务同步回退 测试: go test ./internal/service -run TestBillingCacheServiceQueueHighLoad
-
yangjianbo authored
新增 DB/Redis 连接池配置与校验,并补充单测 网关请求体大小限制与 413 处理 HTTP/req 客户端池化并调整上游连接池默认值 并发槽位改为 ZSET+Lua 与指数退避 用量统计改 SQL 聚合并新增索引迁移 计费缓存写入改工作池并补测试/基准 测试: 在 backend/ 下运行 go test ./...
-
- 30 Dec, 2025 16 commits
-
-
song authored
- LoadCodeAssist/FetchAvailableModels 返回原始 JSON - extra 新增 load_code_assist 和 available_models 保存原始响应 - 前端 tier 从 load_code_assist.paidTier.id 提取 - 删除冗余的 updateAccountTier 函数
-
song authored
旧账户可能没有 project_id,在刷新配额时自动生成并保存。
-
song authored
部分账户类型(如 g1-pro-tier)API 不返回 cloudaicompanionProject, 但实际接受任意格式的 project_id,故添加随机生成逻辑作为兜底。
-
song authored
- 移除 project_id 强制检查,部分账户类型 API 不返回此字段 - 重构:提取 antigravity.NewAPIRequest() 统一创建 API 请求 - quota_refresher: 无 project_id 时仍可更新 tier 信息
-
shaw authored
在原生 SQL 的 CASE WHEN 语句中,PostgreSQL 无法自动推断占位符参数类型, 导致 time.Time 被当作 text 类型处理,与 last_used_at 列的 timestamptz 类型不匹配。 添加显式类型转换 ::timestamptz 解决此问题。
-
shaw authored
-
song authored
- 新增 AntigravityGatewayService.TestConnection 方法,支持 Claude/Gemini 双协议测试 - AccountTestService 改用 AntigravityGatewayService 进行测试连接 - GetAvailableModels 为 Antigravity 账号返回 Claude + Gemini 模型列表
-
yangjianbo authored
统一 usage_log_repo 查询的 Close 错误处理,避免\n成功路径吞掉关闭失败 scanSingleRow 使用 errors.Join 合并 Close 错误,\n保留 ErrNoRows 可判定 测试: make -C backend test-unit
-
shaw authored
格式化以下测试文件以符合 Go 代码风格规范: - fixtures_integration_test.go - user_repo_integration_test.go - api_key_service_delete_test.go
-
yangjianbo authored
更新 go.mod/go.sum 的间接依赖记录 包含 gorm/mysql 相关依赖项
-
yangjianbo authored
修复 rows.Close 失败时的错误返回逻辑 迁移网关路由集成测试到 ent 事务基建 补齐仓储接口变更对应的测试桩方法 新增 backend/Makefile 统一测试命令 测试: GOTOOLCHAIN=go1.24.11 go test ./... 测试: golangci-lint run ./... --timeout=5m 测试: make test-integration
-
yangjianbo authored
替换 gorm 查询并复用分组过滤逻辑,避免编译错误
-
shaw authored
- 标准版不再创建默认分组,简易模式保持创建 - 简易模式下删除默认分组后重启自动恢复(而非报唯一键冲突) - AutoMigrate 函数增加 runMode 参数以区分运行模式
-
刀刀 authored
* 响应流中出现 error, 返回重试 * 响应流中出现 error, 返回重试
-
程序猿MT authored
-
程序猿MT authored
-
- 29 Dec, 2025 18 commits
-
-
Junming Chen authored
-
song authored
- 只有 5 次重试全部失败后才标记账户限流 - 使用 Gemini 格式解析 429 响应中的重试时间 - Claude 模型无重试时间时默认 1 分钟,Gemini 默认 5 分钟 - 添加生图模型映射 gemini-3-pro-image-preview
-
yangjianbo authored
-
yangjianbo authored
ApiKey 更新时显式设置 updated_at 并回填,避免二次查询竞态 补充软删除范围注释以统一审计语义
-
yangjianbo authored
同步生成文件以匹配最新的 schema 与运行时变更
-
yangjianbo authored
修复软删除拦截器使用错误,确保默认查询过滤已删记录 仓储层改用 ent.Tx 与扫描辅助,避免 sql.Tx 断言问题 同步更新集成测试以覆盖事务与统计变动
-
song authored
-
song authored
-
song authored
-
song authored
-
song authored
- 删除 client.go 中未使用的 proxyURL 字段 - 删除 AntigravityGatewayService 中未使用的字段和方法 - 修复 gofmt 格式问题
-
song authored
- SA1029: 创建 ctxkey 包定义类型安全的 context key - ST1005: 错误字符串首字母改小写 - errcheck: 显式忽略 bytes.Buffer.Write 返回值 - 修复单元测试中 GatewayService 缺少 cfg 字段的问题
-
yangjianbo authored
避免软删除钩子类型断言失败导致 500\n删除无记录时返回未找到错误并记录日志
-
song authored
-
song authored
添加 /antigravity/v1/* 和 /antigravity/v1beta/* 路由: - 通过 ForcePlatform 中间件强制使用 antigravity 平台 - 跳过混合调度逻辑,仅调度 antigravity 账户 - 支持按分组优先查找,找不到时回退查询全部 antigravity 账户 修复 context key 类型不匹配问题: - middleware 和 service 统一使用字符串常量 "ctx_force_platform" - 解决 Go context.Value() 类型+值匹配导致的读取失败 其他改动: - 嵌入式前端中间件白名单添加 /antigravity/ 路径 - e2e 测试 Gemini 端点 URL 添加 endpointPrefix 支持
-
IanShaw027 authored
- 使用 BaseDialog 替代旧版 Modal 组件 - 添加平滑过渡动画和更好的可访问性支持 - 新增 ExportProgressDialog 导出进度弹窗 - 优化所有账号管理和使用记录相关弹窗 - 更新国际化文案,改进用户交互体验 - 精简依赖,减少 package.json 体积
-
yangjianbo authored
问题:创建用户时发生 panic,错误信息为 "interface conversion: sql.ExecQuerier is *sql.Tx, not *sql.DB" 原因:基于事务创建的 ent client 在调用 Close() 时,ent 的 sql driver 会尝试将 ExecQuerier 断言为 *sql.DB 来关闭连接,但实际类型是 *sql.Tx 修复:移除对 txClient.Close() 的调用,事务的清理通过 sqlTx.Rollback() 和 sqlTx.Commit() 完成即可 影响范围: - user_repo.go: Create 和 Update 方法 - group_repo.go: Delete 方法
🤖 Generated with [Claude Code](https://claude.com/claude-code ) Co-Authored-By:Claude Opus 4.5 <noreply@anthropic.com>
-
yangjianbo authored
覆盖管理员创建用户与注册流程的关键失败分支\n完善创建成功路径的断言
-