- 05 Apr, 2026 1 commit
-
-
erio authored
-
- 03 Apr, 2026 1 commit
-
-
- token_refresh: 不可重试错误和重试耗尽两条路径添加 ensureAntigravityPrivacy - admin_service: CreateAccount 为 Antigravity OAuth 账号异步设置隐私 Co-Authored-By:Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-
- 01 Apr, 2026 1 commit
-
-
QTom authored
- refreshSingleAccount ProjectIDMissing 提前返回前补上 EnsureAntigravityPrivacy 调用 - EnsureAntigravityPrivacy 跳过条件从"有任何值"改为"仅 privacy_set 成功时跳过", privacy_set_failed 允许重试,对齐 OpenAI shouldSkipOpenAIPrivacyEnsure 的行为 - 后台 TokenRefreshService.ensureAntigravityPrivacy 同步修改 - ExchangeCode/ValidateRefreshToken 获得令牌后立即调用 setAntigravityPrivacy, 不依赖后续账号创建流程 Made-with: Cursor
-
- 31 Mar, 2026 1 commit
-
-
QTom authored
- token_refresh: 不可重试错误和重试耗尽两条路径添加 ensureAntigravityPrivacy - admin_service: CreateAccount 为 Antigravity OAuth 账号异步设置隐私 Co-Authored-By:Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-
- 30 Mar, 2026 1 commit
-
-
QTom authored
使用 sync.Once 包裹 close(stopCh),避免多次调用 Stop() 时 触发 panic: close of closed channel。
-
- 29 Mar, 2026 3 commits
-
-
weak-fox authored
-
刷新失败不代表 access_token 无效,在后台定时刷新(不可重试错误 + 重试耗尽)和前端批量/单次刷新的失败路径中,均利用可能仍有效的 access_token 调用隐私设置。 Co-Authored-By:Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-
- 27 Mar, 2026 1 commit
-
-
QTom authored
刷新失败不代表 access_token 无效,在后台定时刷新(不可重试错误 + 重试耗尽)和前端批量/单次刷新的失败路径中,均利用可能仍有效的 access_token 调用隐私设置。 Co-Authored-By:Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-
- 25 Mar, 2026 2 commits
-
-
QTom authored
- gofmt: 修复 admin_service/antigravity_oauth_service/token_refresh_service 格式 - staticcheck S1009: 移除 SetUserSettingsResponse.IsSuccess 中冗余的 nil 检查 - unused: 将仅测试使用的 applyAntigravitySubscriptionResult 移至测试文件 Made-with: Cursor
-
QTom authored
新增 Antigravity OAuth 隐私设置能力,在账号创建、刷新、导入和后台 Token 刷新路径自动调用 setUserSettings + fetchUserInfo 关闭遥测; 持久化后同步内存 Extra,错误处理改为日志记录。 Made-with: Cursor
-
- 22 Mar, 2026 2 commits
-
-
Wang Lvyuan authored
-
weak-fox authored
-
- 19 Mar, 2026 1 commit
-
-
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
-
- 15 Mar, 2026 2 commits
-
-
erio authored
-
erio authored
Introduce OAuthRefreshAPI as the single entry point for all OAuth token refresh operations, eliminating the race condition where background refresh and inline refresh could simultaneously use the same refresh_token (fixes #1035). Key changes: - Add OAuthRefreshExecutor interface extending TokenRefresher with CacheKey - Add OAuthRefreshAPI.RefreshIfNeeded with lock → DB re-read → double-check flow - Add ProviderRefreshPolicy / BackgroundRefreshPolicy strategy types - Simplify all 4 TokenProviders to delegate to OAuthRefreshAPI - Rewrite TokenRefreshService.refreshWithRetry to use unified API path - Add MergeCredentials and BuildClaudeAccountCredentials helpers - Add 40 unit tests covering all new and modified code paths
-
- 12 Mar, 2026 1 commit
-
-
QTom authored
-
- 03 Mar, 2026 1 commit
-
-
shaw authored
- wire_gen_test.go: 补充 NewTokenRefreshService 缺失的 tempUnschedCache 参数 - config.go, token_refresh_service.go: 修复 gofmt 格式问题
-
- 02 Mar, 2026 1 commit
-
-
zqq61 authored
OAuth 账号收到 401 时,原逻辑同时设置 expires_at=now() 和 SetError(), 但刷新服务只查询 status=active 的账号,导致 error 状态的账号永远无法 被刷新服务拾取,expires_at=now() 实际上是死代码。 修复: - OAuth 401 使用 SetTempUnschedulable 替代 SetError,保持 status=active - 新增 oauth_401_cooldown_minutes 配置项(默认 10 分钟) - 刷新成功后同步清除 DB 和 Redis 中的临时不可调度状态 - 不可重试错误检查(invalid_grant 等)从 Antigravity 推广到所有平台 - 可重试错误耗尽后不再标记 error,下个刷新周期继续重试 恢复流程: OAuth 401 → temp_unschedulable + expires_at=now → 刷新服务拾取 → 成功: 清除 temp_unschedulable → 自动恢复 → invalid_grant: SetError → 永久禁用 → 网络错误: 仅记日志 → 下周期重试
-
- 19 Feb, 2026 1 commit
-
-
yangjianbo authored
- 新增并接通 Sora 专用 OAuth 接口与 ST/RT 换取能力 - 完成前端 Sora 授权、RT/ST 手动导入与账号创建流程 - 强化 Sora token 恢复、转发日志与网关路由隔离行为 - 补充后端服务层与路由层相关测试覆盖 Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
- 12 Feb, 2026 1 commit
-
-
yangjianbo authored
- 将高密度服务与处理器日志迁移到新日志系统(LegacyPrintf/结构化日志) - 增加 stdlog bridge 与兼容测试,保留旧日志捕获能力 - 将 OpenAI 断流告警改为结构化 Warn 并改造对应测试为 sink 捕获 - 补齐后端相关文件 logger 引用并通过全量 go test
-
- 07 Feb, 2026 1 commit
-
-
yangjianbo authored
- GIN Logger 中间件跳过 /health 和 /setup/status 的请求日志 - UsageCleanup 空闲轮询(no_task)日志降级为 slog.Debug - Scheduler 常规 rebuild ok 日志降级为 slog.Debug - DashboardAggregation 常规聚合完成日志降级为 slog.Debug - TokenRefresh 无刷新活动时周期日志降级为 slog.Debug 生产环境(Info 级别)下自动静默,debug 模式下仍可见。 错误、警告类日志保持原有级别不变。 Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
- 02 Feb, 2026 2 commits
- 01 Feb, 2026 1 commit
-
-
yangjianbo authored
实现直连 Sora 客户端、媒体落地与清理策略\n更新网关与前端配置以支持 Sora 平台\n补齐单元测试与契约测试,新增 curl 测试脚本\n\n测试: go test ./... -tags=unit
-
- 31 Jan, 2026 2 commits
-
-
yangjianbo authored
-
yangjianbo authored
新增 Sora 网关路由、账号调度与同步服务\n补充媒体代理与签名 URL、模型列表动态拉取\n完善计费配置、前端支持与相关测试
-
- 30 Jan, 2026 1 commit
-
-
yangjianbo authored
- 新增 sora_accounts 表与 accounts.extra GIN 索引\n- OpenAI OAuth 支持同时创建 Sora 账号并同步配置\n- Token 刷新同步关联 Sora 账号凭证与扩展表\n- 增加 Sora 账号连通性测试与前端开关文案
-
- 24 Jan, 2026 1 commit
-
-
Ubuntu authored
问题描述: 在网络波动环境下,LoadCodeAssist 临时失败会被错误地标记为 "missing_project_id" 不可重试错误,导致账户被禁用。但实际上 账户配置正确,手动刷新后即可恢复。 解决方案: 1. 为 LoadCodeAssist 增加重试机制(最多4次,指数退避) 2. 区分真正的配置缺失和临时网络故障: - 如果之前有 project_id,本次获取失败只保留旧值,不报错 - 只有从未获取过 project_id 且本次也失败时,才标记为缺失 3. 优化错误判断逻辑,避免误报 改进效果: - 提高在复杂网络环境(如家宽代理)下的鲁棒性 - 减少因临时网络波动导致的服务中断 - 保持真正配置错误的检测能力 Co-Authored-By:Claude Sonnet 4.5 <noreply@anthropic.com>
-
- 22 Jan, 2026 1 commit
-
-
shaw authored
- 新增 _token_version 版本号机制,防止过期 token 污染缓存 - TokenRefreshService 刷新成功后写入版本号并清除缓存 - TokenProvider 写入缓存前检查版本,过时则跳过 - ClearError 时同步清除 token 缓存
-
- 16 Jan, 2026 3 commits
- 15 Jan, 2026 1 commit
-
-
yangjianbo authored
新增 OpenAI/Claude TokenProvider 与缓存键生成 扩展 OAuth 缓存失效覆盖更多平台 统一 OAuth 缓存前缀与依赖注入
-
- 14 Jan, 2026 1 commit
-
-
yangjianbo authored
新增 token 缓存失效接口并在刷新后清理 401 限流支持自定义规则与可配置冷却时间 补齐缓存失效与 401 处理测试 测试: make test
-
- 04 Jan, 2026 1 commit
-
-
song authored
- 不可重试错误(invalid_grant等)直接标记 error,不重试 - 其他错误仅记录日志,不标记 error(可能是临时网络问题) - 仅影响 Antigravity 账户,其他平台保持原有逻辑
-
- 28 Dec, 2025 2 commits
- 26 Dec, 2025 2 commits