Skip to content

feat(accounts): explain Antigravity quota refresh failures - #4401

Draft
lidge-jun wants to merge 2 commits into
devfrom
codex/260912-60plus-accounts-tun
Draft

feat(accounts): explain Antigravity quota refresh failures#4401
lidge-jun wants to merge 2 commits into
devfrom
codex/260912-60plus-accounts-tun

Conversation

@lidge-jun

@lidge-jun lidge-jun commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Summary

  • Distinguish Antigravity account quota failures using closed diagnostic codes for access denial, rate limits, blocked destinations/redirects, DNS, timeout, connection and unusable response outcomes. Successful fallback clears the earlier diagnosis; the exported probe preserves its original null/rejection behavior.
  • Bind diagnostics to the probed credential/project and omit them after same-account reauthentication. Preserve last-good bars independently. API, CLI and GUI share the safe code; no private digest, credential or upstream error text enters the response.
  • This completes the failure-classification portion of [Bug]: Antigravity quota refresh failure — investigate missing canonical Fake-IP handling #3781. Canonical IPv4/IPv6 Fake-IP transport was already merged and is preserved. Authenticated TUN field acceptance remains open; no issue closure or merge is requested.

Verification

  • Local product suites of every size, GUI tests, build, typecheck and install: NOT RUN, per explicit maintainer instruction. Regression sources are written for hosted CI.
  • git diff --check and staged whitespace check passed (source-text checks only).
  • Independent design and A audit passed. Full source/security review passed at 208512f9c984549da44c2ffa12bcb3def1008995, including the diagnostic-specific merge regression correction. Final-head hosted runtime CI remains pending.
  • GUI screenshot will be attached from a hosted dashboard-preview build; this PR remains draft while that evidence is pending.

Checklist

  • Scope stays focused and avoids unrelated cleanup.
  • Docs or release notes were updated when needed.
  • Security-sensitive changes were reviewed for secrets, auth, and unsafe defaults.

@coderabbitai

coderabbitai Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@lidge-jun

Copy link
Copy Markdown
Owner Author

리뷰 · 우선순위 67 / 80

설명

이 PR은 Google Antigravity 계정 쿼터를 새로고침할 때 왜 실패했는지를 안전한 코드만으로 구분해, GUI·CLI·management API가 같은 말을 하게 만듭니다. 지금 dev HEAD db7062c37src/providers/quota.ts fetchAntigravityQuota와 계정 쿼터 경로에는 실패 종류를 밖으로 내보내는 필드가 없고, GUI ProviderAccountQuotaquotaUnavailable일 때 공통 문구(pws.accountQuotaUnavailable)만 보여 줍니다. 그래서 접근 거부·요청 한도·목적지/리다이렉트 차단·DNS·타임아웃·연결 실패·읽을 수 없는 응답이 한 덩어리로 보입니다. 이슈 #3781(Antigravity 쿼터 새로고침 실패 / Fake-IP)의 실패 분류 조각을 여기서 끝내려는 draft입니다.

브랜치 codex/260912-60plus-accounts-tun(+538/−105)은 src/providers/quota-types.ts에 allowlist QuotaFailureCodeparseQuotaFailureCode를 두고, 프로브 결과를 자격증명/프로젝트에 묶은 뒤 재로그인·동일 id 교체·성공 폴백 때 진단을 빼며 last-good 막대는 남깁니다. API/CLI는 그 코드만 노출하고 private digest·업스트림 에러 원문은 응답에 넣지 않습니다. GUI는 아홉 locale에 pws.quotaFailure.*를 추가하고, useProviderAccountPools 병합 로직이 모드 변경·로스터 실패·늦은 enrichment에서 진단을 지우거나 유지하는 규칙을 테스트로 고정합니다. 문서(영/한 providers 가이드)도 access_denied만으로 로그인 만료·플랜 불가를 단정하지 말고, destination_blocked를 Fake-IP 결함 증거로 쓰지 말라고 못 박습니다. Canonical IPv4/IPv6 Fake-IP 전송은 이미 dev에 있고, 인증된 TUN 필드 수락은 이 PR 범위 밖이라고 본문이 명시합니다.

최근 dev의 쿼터 회피 열차(#4368+#4396+#4397+#4398)는 Codex 계정 라우팅 쪽이고, 이 PR은 Antigravity 프로브 UX라 제품 축이 다릅니다. 다만 structure/*.md 여러 파일에 +2줄씩 area-owner 터치가 넓고, 로컬 스위트/빌드는 금지·원격 CI·대시보드 스크린샷 대기라 draft를 유지합니다. 이 시각 label 일부가 CANCELLED이고 resolve-pr 등이 다시 큐에 있습니다.

라인 / 경로 문제

gui/src/components/provider-workspace/ProviderAccountQuota.tsx / types.ts / useProviderAccountPools.ts - GUI가 ../../../../src/providers/quota-types를 직접 import한다. 공유 타입이 맞지만, GUI 번들 경계와 테스트 경로가 깨지지 않는지 hosted GUI 체크를 게이트로 둬야 한다.
src/providers/quota.ts (프로브/캐시 경로) - 진단은 unavailable이고 credential-current일 때만 붙고, isCurrent 전체 무효화와 섞이면 안 된다. PR이 nonenumerable quotaFailureIsCurrent로 가른다고 하니, 머지 전 API JSON에 private 콜백/digest가 새지 않는지 oauth-accounts 테스트로 한 번 더 보면 좋다.
여러 structure/*.md (+2씩) - Antigravity 진단과 무관한 area 파일까지 손댄 패턴이다. inventory/SSOT 규칙상 필요할 수 있으나, 리뷰어가 “관련 없는 문서 노이즈”로 볼 수 있으니 의도(area owner touch)를 PR에 한 줄 더 밝히면 좋다.
PR 본문 - 스크린샷·최종 hosted CI 전 draft 유지, #3781 전체 종료/머지 요청 없음. 인증 TUN 관측은 별도 운영자 증거 필요.
로컬 스위트 NOT RUN - provider-account-quota·GUI loading 테스트가 핵심 회귀이므로 CI 결과가 곧 품질 신호다.

메인테이너의 판단이 필요한 지점

  • #3781을 “실패 분류 완료 / TUN 수락은 후속”으로 부분 클로즈할지, 이슈는 열린 채 서브태스크만 기록할지.
  • GUI 스크린샷이 붙기 전에 ready로 올릴지, 대시보드 preview 증거를 필수로 둘지.
  • 쿼터 회피(Codex) 문서와 Antigravity 진단 문서가 운영자 머릿속에서 섞이지 않게 providers 가이드 배치가 충분한지.

너의 추천

draft를 유지한 채 hosted backend+GUI CI와 대시보드 스크린샷을 기다린다. CI·스크린샷이 모이면 ready 후 dev 머지. #3781에는 “분류 조각 landed, TUN 필드 수락은 남음” 댓글만 남기고 이슈는 닫지 않는다. 문서 area-touch가 의도라면 PR 설명에 한 줄 보강.

이 댓글은 grok-bot이 작성했습니다

@github-actions

Copy link
Copy Markdown
Contributor

Deterministic PR hygiene checks passed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant