Repository navigation
fix(settings): Antigravity's sign-in reads as an Account line, never an empty box - #30850
Conversation
…an empty box Settings > Chat > Providers showed Antigravity's sign-in as a filled grey box holding only a bright primary "Sign in" button. The host learns whether its chats are signed in only when a chat starts, so after launch the status line had nothing to say and the box sat empty. The area is now a plain row under the provider's name: "Account" on one line, the status on the next, and an outline "Sign in" button. Until the host knows, the status line says chats need an Antigravity sign-in separate from the agy terminal account.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to
|
…ity-signin-account-row
|
Antigravity’s provider settings could show an empty grey box after launch because the host had not learned its chat sign-in state. The row now shows Account, a separate explanation or status beneath it, and an outline Sign in button without the filled panel. Change account keeps its ghost style. Full review completed in one round: correctness, an independent architecture challenge, performance and final readiness found no issues. No review fixes or deferred findings. The final main merge leaves the sign-in implementation and its callers unchanged; the inherited Codex test failure was corrected on main in #30865. Verified on For Brennan’s review Same input after fresh launch: installed Antigravity server, authentication unknown, dark theme. Two intentional choices: the account hierarchy and button emphasis, and the provider-only fallback. The fallback explains the separate chat sign-in instead of the common pattern’s generic sign-in prompt; Accounts remains unchanged. |





ELI5
In Settings › Chat › Providers, Antigravity's sign-in showed up as an empty grey box with a single bright "Sign in" button and nothing saying what it was for. It now reads like a normal settings row: "Account" on one line, the sign-in status underneath, and a quieter "Sign in" button beside it.
What Changed
Before: under the Antigravity provider row there was a filled grey box. Right after Orca starts, its status text was blank, so the box held only a solid white primary "Sign in" button: the loudest thing on the page, with no label and no explanation.
After: the box's fill is gone. Under the provider name there is a plain row:
Mechanism: the computer running the chats learns whether Antigravity is signed in only when a chat starts or asks to sign in, so after launch its answer is "unknown", and the status line had no text for "unknown". The shared sign-in hook (
useAntigravityChatSignInControls) now takes an optionalunansweredline that stands in whenever nothing else applies; the Providers area passes the explanation above. The Settings › Accounts row doesn't pass one and is unchanged.AntigravityProviderSignInAreakeeps the same states and buttons; only its layout and button style changed.Why
The common pattern for a provider's account in settings is a plain row with a title, one status line that always says something ("Sign in on ." when the state isn't known), and an outline button, with no filled panel. This follows that. The other options were to put "· Not signed in" on the provider's own "Installed" line with the button next to the menu, or to make the computer check its sign-in at launch. The first leaves no room to explain that this sign-in is separate from agy in the terminal. The second means starting the Antigravity server just to fill in a label. Neither was chosen.
Difference from the common pattern: the "unknown" line explains why a separate sign-in is needed instead of saying "Sign in on ." Intended: Antigravity's chat sign-in is separate from the
agyCLI's, which users otherwise assume carries over.Linked Issue
N/A (maintainer change from a design review).
Visual Proof
Before vs after, same input: both are hidden test copies on macOS, using the same throwaway profile, freshly launched, in dark theme, at Settings › Chat › Providers, with Antigravity's chat server installed and the sign-in state not yet known.
Before, on


main(b03ac56c00f):After, on this branch (


b2198fe111c):As first reported:

The rest of the sign-in path on this branch:
Sign-in started (link captured, browser open stubbed):

After Cancel:

After a real Google sign-in:

Signed in, light theme:

Whole Providers card, signed in:

A real Antigravity chat reply after signing in:

Testing
AntigravityChatSignInRow.test.tsx: added one test. With the sign-in state unknown, the Providers area shows "Account" and the explanation line with Sign in enabled, then "Not signed in…" once the computer answers. This would have failed before: the status line was empty. The 4 existing tests still pass.Electron QA (macOS, head
b2198fe111c, hidden test copy with a throwaway home and profile): fresh launch; Settings › Chat › Providers; installed Antigravity's chat server from the row. Then the full sign-in path: unknown state, start sign-in, Cancel, Retry, a real Google sign-in that completed through the local redirect, the signed-in state, and a new Antigravity chat that replied to a real message. Also the light theme and the other provider rows. All as shown above.Windows: the area doesn't appear, because Antigravity chats have no Windows server yet. That's unchanged by this PR.
I manually tested these changes locally
Automated tests added/updated, or explained why not below
Review
Agent skill upstream boundary
Notes
Renderer-only layout and copy change. No wire, saved-data or host change, so SSH, mixed versions and mobile are unaffected. New strings are added in all six locales.
Checklist
N/Awith reasonpnpm lint,pnpm typecheck,pnpm test, andpnpm buildpass (or CI will cover; local preferred)