Skip to content

fix(settings): Antigravity's sign-in reads as an Account line, never an empty box - #30850

Merged
brennanb2025 merged 2 commits into
mainfrom
brennanb2025/antigravity-signin-account-row
Oct 19, 2026
Merged

brennanb2025 merged 2 commits into
mainfrom
brennanb2025/antigravity-signin-account-row

Conversation

@brennanb2025

@brennanb2025 brennanb2025 commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

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:

  • Account (label)
  • the status on the next line: until the computer knows whether chats are signed in, it says "Chats need an Antigravity sign-in, separate from your agy terminal account."; once it knows, "Not signed in. …" or "Signed in on this computer."; during sign-in, the existing steps ("Finish signing in in your browser.", with Copy link and Cancel); after a failure, the reason.
  • an outline "Sign in" / "Retry sign-in" button (it was the solid primary style); "Change account" stays the quieter ghost style.

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 optional unanswered line 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. AntigravityProviderSignInArea keeps 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 agy CLI'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):
before-main-row.png
before-main-window.png

After, on this branch (b2198fe111c):
after-1-unknown-row.png
after-1-unknown-window.png

As first reported:
before-empty-box.png

The rest of the sign-in path on this branch:

Sign-in started (link captured, browser open stubbed):
after-2-waiting-row.png

After Cancel:
after-3-cancelled-row.png

After a real Google sign-in:
after-4-signed-in-row.png

Signed in, light theme:
after-7-light-signed-in-row.png

Whole Providers card, signed in:
after-4-signed-in-window.png

A real Antigravity chat reply after signing in:
after-6-chat-reply.png

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

  • Not applicable, or this change copies or mechanically translates no upstream skill-installer source, tests, fixtures, registry entries, path tables, comments, or documentation.

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

  • This PR is small and focused
  • I explained what changed and why (ELI5, the user-facing before/after, the mechanism, and why over the alternatives)
  • Before/after screenshots or videos attached for UI changes, or N/A with reason
  • Self-reviewed for correctness, security, and performance
  • Cross-platform, SSH/remote, and path/shortcut impact considered (or N/A)
  • pnpm lint, pnpm typecheck, pnpm test, and pnpm build pass (or CI will cover; local preferred)

…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.
@brennanb2025
brennanb2025 marked this pull request as ready for review October 19, 2026 19:58
@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b8700452-528d-463c-94c6-e0a98c2bd1e8
📥 Commits

Reviewing files that changed from the base of the PR and between 2b07f0f and a0ae6bb.

📒 Files selected for processing: 9
  • src/renderer/src/components/settings/AntigravityChatSignInRow.test.tsx
  • src/renderer/src/components/settings/AntigravityChatSignInRow.tsx
  • src/renderer/src/components/settings/AntigravityProviderSignInArea.tsx
  • src/renderer/src/i18n/locales/en.json
  • src/renderer/src/i18n/locales/es.json
  • src/renderer/src/i18n/locales/fr.json
  • src/renderer/src/i18n/locales/ja.json
  • src/renderer/src/i18n/locales/ko.json
  • src/renderer/src/i18n/locales/zh.json

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 5 remain after this review.

📝 Walkthrough

The Antigravity sign-in controls now support an optional message for a host that has not reported its sign-in state. The provider settings area displays an account label and sign-in-required text, with updated layout and button variants. English, Spanish, French, Japanese, Korean, and Chinese translations add the account and sign-in-required strings. A test checks the unanswered state and the later signed-out state.

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to a0ae6

The sign-in-required message is limited to the unanswered state, while signed-in and signed-out states keep their status lines. No actionable merge-blocking risk remains.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly identifies the Antigravity settings sign-in UI change and the removal of the empty state.
Docstring Coverage Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 3 files. (6 skipped: 6 …
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description check Passed The pull request description follows the repository template. It explains the user impact, implementation, rationale, linked-issue exception, visual proof, testing, AI disclosure status, compatibility…
Full details: Docstring Coverage

Explanation

Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 3 files. (6 skipped: 6 unsupported.)

Full details: Description check

Explanation

The pull request description follows the repository template. It explains the user impact, implementation, rationale, linked-issue exception, visual proof, testing, AI disclosure status, compatibility considerations, and checklist completion.

✨ Finishing Touches: 💡 1
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🛠️ Fix failing CI checks: 💡
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@brennanb2025

Copy link
Copy Markdown
Contributor Author

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 b2198fe111c61fc6ed1ec36d703e6d06250734a3: the complete PR workflow and its aggregate passed; no unresolved review threads or conflicts. Real hidden Electron QA on macOS covered installation, unknown account state, starting/cancelling/retrying sign-in, a real Google sign-in, the signed-in row, a real Antigravity chat reply, and light theme. SSH/mobile behavior was reviewed in source; no remote or mobile app was exercised. The pre-existing lack of a Windows Antigravity server is unchanged.

For Brennan’s review

Same input after fresh launch: installed Antigravity server, authentication unknown, dark theme.

Main (b03ac56c00f):
Main: empty filled box

Branch (b2198fe111c):
Branch: labelled Account row

After, before signing in:
Account row before sign-in

After signing in:
Signed-in Providers window

Real reply after sign-in:
Antigravity reply

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.

@brennanb2025
brennanb2025 merged commit 2bdef8d into main Oct 19, 2026
34 checks passed
@brennanb2025
brennanb2025 deleted the brennanb2025/antigravity-signin-account-row branch October 19, 2026 23:37
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