feat(antigravity): 手动刷新令牌时自动恢复 missing_project_id 错误账户状态

- 当手动刷新成功获取到 project_id,且之前错误为 missing_project_id 时,自动清除错误状态
- 后台自动刷新时同样支持状态恢复
This commit is contained in:
song
2026-01-16 13:18:00 +08:00
parent 95fe1e818f
commit 821968903c
4 changed files with 29 additions and 1 deletions

View File

@@ -462,7 +462,7 @@ func (h *AccountHandler) Refresh(c *gin.Context) {
return
}
// 标记账户为 error
if setErr := h.adminService.SetAccountError(c.Request.Context(), accountID, "账户缺少project id可能无法使用Antigravity"); setErr != nil {
if setErr := h.adminService.SetAccountError(c.Request.Context(), accountID, "missing_project_id: 账户缺少project id可能无法使用Antigravity"); setErr != nil {
response.InternalError(c, "Failed to set account error: "+setErr.Error())
return
}
@@ -472,6 +472,14 @@ func (h *AccountHandler) Refresh(c *gin.Context) {
})
return
}
// 成功获取到 project_id如果之前是 missing_project_id 错误则清除
if account.Status == service.StatusError && strings.HasPrefix(account.ErrorMessage, "missing_project_id:") {
if _, clearErr := h.adminService.ClearAccountError(c.Request.Context(), accountID); clearErr != nil {
response.InternalError(c, "Failed to clear account error: "+clearErr.Error())
return
}
}
} else {
// Use Anthropic/Claude OAuth service to refresh token
tokenInfo, err := h.oauthService.RefreshAccountToken(c.Request.Context(), account)