Repository navigation
fix(fork): show one Antigravity account when a usage hub also lists it - #158
Merged
Merged
Conversation
A local Antigravity login is keyed by its Google-id fingerprint. A usage hub that withholds Google userinfo lists the same account only by e-mail, so the Usage page shows it twice. These cases fail until the login also reports the e-mail it reads with that fingerprint. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The local Antigravity probe now keeps the e-mail from the same Google userinfo answer that gives its fingerprint, as usageLimits.credentialEmail. On clients, an Antigravity report that names its account only by e-mail (a hub that withholds userinfo) takes the fingerprint that e-mail is paired with, so it pools with the local login and with readers that know only the fingerprint. An e-mail that two fingerprints claim stays unbound, other drivers key as before, and the pooled row keeps the hub's e-mail. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Other scenariosAll 64 scenario measurements match All 64 scenario measurements
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request makes the Usage page show one Antigravity account, not two, when the local Antigravity login and a usage hub both read the same Google account.
改了什么行为
Behaviour change: yes, a user whose Google account is signed in to Antigravity on this machine and also listed by a usage hub that refuses Google
userinfosees one row for it in each Antigravity window under Usage → Limits (web, desktop and mobile), where two rows with the same numbers showed before.Why
The local login names its account by a hash of the Google account id. A hub that refuses
userinfonames it only by e-mail. So the two rows got different keys.Checks
New tests over the pooling cover each mix of readers, in both orders, and fail before the fix. A probe test checks that the e-mail comes with the fingerprint and that an answer with no e-mail keeps the fingerprint. The repo's checks for changed files pass. In the web app at desktop and phone width, the account showed once.
How to undo
Revert the two commits. No migration. The next provider status write drops the new field.
Design notes
userinfoanswer it already reads, asusageLimits.credentialEmail, next tocredentialFingerprint. Both travel in one object, so every path that keeps or replaces limits keeps the pair together. The e-mail goes only to the server's own clients.bindAntigravityEmails(fork file inpackages/shared) maps an e-mail to the fingerprint it is paired with. An Antigravity report with only an e-mail then keys by that fingerprint, so it pools with the login and with readers that know only the fingerprint, such as an older T3 or a hub that answersuserinfo. Reports that carry a fingerprint keep their key.auth.email. Enrichment can publish a new e-mail with older limits, and e-mail-first keys would pool two Google accounts that share an e-mail.userinfofails, the probe still falls back to a per-machine hash for the token's life, as before.providerUsageLimits.ts+2,antigravityUsageLimits.ts+20 −5, its test +19 −2,usageLimits.ts+11 −3.