fix(antigravity): 修复批量刷新令牌不设置隐私模式的问题

- refreshSingleAccount ProjectIDMissing 提前返回前补上 EnsureAntigravityPrivacy 调用
- EnsureAntigravityPrivacy 跳过条件从"有任何值"改为"仅 privacy_set 成功时跳过",
  privacy_set_failed 允许重试,对齐 OpenAI shouldSkipOpenAIPrivacyEnsure 的行为
- 后台 TokenRefreshService.ensureAntigravityPrivacy 同步修改
- ExchangeCode/ValidateRefreshToken 获得令牌后立即调用 setAntigravityPrivacy,
  不依赖后续账号创建流程

Made-with: Cursor
This commit is contained in:
QTom
2026-03-31 15:52:50 +08:00
parent 055c48ab33
commit b155bc564b
4 changed files with 14 additions and 9 deletions

View File

@@ -2783,16 +2783,14 @@ func (s *adminServiceImpl) ForceOpenAIPrivacy(ctx context.Context, account *Acco
}
// EnsureAntigravityPrivacy 检查 Antigravity OAuth 账号隐私状态。
// 如果 Extra["privacy_mode"] 已存在(无论成功或失败),直接跳过
// 仅对从未设置过隐私的账号执行 setUserSettings + fetchUserInfo 流程
// 用户可通过前端 ForceAntigravityPrivacySetPrivacy 按钮)强制重新设置。
// 仅当 privacy_mode 已成功设置("privacy_set")时跳过
// 未设置或之前失败("privacy_set_failed")均会重试
func (s *adminServiceImpl) EnsureAntigravityPrivacy(ctx context.Context, account *Account) string {
if account.Platform != PlatformAntigravity || account.Type != AccountTypeOAuth {
return ""
}
// 已设置过则跳过(无论成功或失败),用户可通过 Force 手动重试
if account.Extra != nil {
if existing, ok := account.Extra["privacy_mode"].(string); ok && existing != "" {
if existing, ok := account.Extra["privacy_mode"].(string); ok && existing == AntigravityPrivacySet {
return existing
}
}