fix(server): Antigravity starts for Linux users without a passwd entry#23386

open4
main
fix/issue-23005
opened2d agobyJJulius Marminge
View on GitHubTwo-way sync enabledPR last imported 2d ago

Problem

Antigravity's bundled runtime exits 255 before ACP initialization for Debian 13 OS Login users when NSS user lookup fails and HOME is under /home. Settings reports an installation failure and removes the downloaded runtime.

Change

Pass the runtime's existing user-information fallback flag on Linux through the shared spawn builder. Installation validation and provider sessions can initialize using the existing process environment when passwd lookup fails.

Scope and approval

Fixes #23002

Triaged bug via the automated issue flow; GitCafe mirror #23005.

Verification

  • Red assertion fails on main because the Linux launch lacks the fallback flag; retained in the existing spawn coverage.
  • vp test run apps/server/src/provider/antigravityAuthSupport.test.ts apps/server/src/provider/Drivers/AntigravityDriver.test.ts: 30 tests passed after merging main.
  • Targeted lint on all three changed files passed; git diff --check passed.
  • Scoped server typecheck did not complete within 30 minutes on the overloaded VM; CI covers it.

The real pinned 1.3.0 runtime was launched using the actual shared spawn builder from each revision in an isolated Debian 13 x86-64 fixture with OS Login NSS libraries. No UI code changes; the visual evidence matrix is empty.

FixtureBefore: 3b95e7831bAfter: 5f585059ab
UID 54321 absent from passwd; existing owned HOME=/home/anythingExit 255, no ACP outputExit 0, 899-byte initialize result
Same UID with a passwd entryExit 0, 899-byte initialize resultExit 0, 899-byte initialize result

Before transcript, after transcript, identity controls, red assertion, final tests.

Reproduction scripts, archive checksum, exact package versions, and evidence index. No render behavior changed. The fixture uses synthetic identities and no credentials. A real GCE identity, Settings installation lifecycle, authenticated turns, and Linux ARM64 were not verified. macOS and Windows launch arguments are unchanged.

Implemented with Claude Opus 5.5 through the Claude Agent SDK harness; triage, runtime evidence, and review with GPT-6.1-Sol through the Codex harness and Claude Opus 5.5 through the Claude Agent SDK harness, orchestrated by T3 Code.

Checks

All checks passed

Added 4 commits

  • fix(server): Antigravity starts for Linux users without a passwd entry0181b79
  • Merge main into fix/issue-230055f58505
  • test(server): Antigravity spawn must survive a failed Linux passwd lookup6e860ba
  • feat(server): webhook filters fan out over arrays with a [] path wildcarda50cd98
Synced from GitHub

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR requires human approval — This is a small Linux-only compatibility fix that adds a user-information fallback flag to both Antigravity validation and session launches. Because the flag is applied unconditionally, it changes the default Linux launch behavior and requires human review under the applicable policy.

You can add or adjust custom eligibility rules. Learn more.

Synced from GitHub

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire5.0 KiB5.0 KiB−7 B (−0.1%)6.8 KiB✅
CodexThread snapshot wire3.8 KiB3.8 KiB0 B (0.0%)4.9 KiB✅
CodexLive turn WebSocket wire1.2 KiB1.2 KiB−7 B (−0.6%)2.0 KiB✅
CodexLive turn WebSocket decoded20.9 KiB20.9 KiB0 B (0.0%)29.3 KiB✅
CodexLive turn messages220 (0.0%)8✅
ClaudeTotal thread wire5.0 KiB5.0 KiB+31 B (+0.6%)6.8 KiB✅
ClaudeThread snapshot wire3.8 KiB3.8 KiB0 B (0.0%)4.9 KiB✅
ClaudeLive turn WebSocket wire1.2 KiB1.2 KiB+31 B (+2.6%)2.0 KiB✅
ClaudeLive turn WebSocket decoded21.2 KiB21.2 KiB+41 B (+0.2%)29.3 KiB✅
ClaudeLive turn messages12+1 (+100.0%)8✅

Baseline: 3b95e78 · PR result: 5f58505 · Source CI: success

Scenario and decoded snapshot size

10 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.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Synced from GitHub

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Team
  • Run ID: e14bdfdd-e2f0-41a5-a71f-f8fbbfc28ce1
📥 Commits

Reviewing files that changed from the base of the PR and between 3b95e7831b11b17627dff16843bc087bfca397ec and 5f585059ab210188feb0010c864b11b030f25caf.

📒 Files selected for processing: 3
  • apps/server/src/provider/Drivers/AntigravityDriver.test.ts
  • apps/server/src/provider/antigravityAuthSupport.test.ts
  • apps/server/src/provider/antigravityAuthSupport.ts

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

📝 Walkthrough

Linux Antigravity ACP launches now include --loas_pwd_fallback_in_corp after --uid=. Non-Linux launches still receive no arguments. Tests reflect these expectations.

Changes: Antigravity Linux launch arguments

Layer / File(s)Summary
Add and verify the Linux fallback flag
apps/server/src/provider/antigravityAuthSupport.ts, apps/server/src/provider/antigravityAuthSupport.test.ts, apps/server/src/provider/Drivers/AntigravityDriver.test.ts
Linux spawn arguments now include --loas_pwd_fallback_in_corp after --uid=. Tests check the Linux arguments and confirm non-Linux platforms still receive no arguments.

Priority: ➖ Normal

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Bug fix · Severity of issue fixed: Medium

Suggested reviewers: t3dotgg

Merge Risk: ⚪ Minimal · up to 5f585

Linux launches now receive the fallback flag, while non-Linux launch arguments remain unchanged. The supplied Debian fixture report shows ACP initialization succeeding for a UID absent from passwd; no concrete merge-blocking issue is evident.

Pre-merge checks: Passed 4
Check nameStatusExplanation
Description checkPassedThe description includes all required sections. It clearly explains the Linux passwd lookup failure, the shared spawn-builder change, issue tracking, focused test results, runtime verification, limita…
Title checkPassedThe title is concise, uses the conventional commit format, and accurately identifies the server fix for Antigravity startup failures affecting Linux users without a passwd entry.
Linked Issues checkPassedIssue [#23002] requires the Antigravity runtime to start and answer ACP initialize for Linux users whose passwd lookup fails. buildAntigravityAcpSpawnInput now adds --loas_pwd_fallback_in_corp w…
Out of Scope Changes checkPassedThe diff changes only the shared Antigravity Linux spawn arguments and the corresponding regression expectations. The changes support issue [#23002]. Non-Linux arguments remain unchanged. No unrelated…
Full details: Description check

Explanation

The description includes all required sections. It clearly explains the Linux passwd lookup failure, the shared spawn-builder change, issue tracking, focused test results, runtime verification, limitations, and unchanged platforms.

Full details: Linked Issues check

Explanation

Issue [#23002] requires the Antigravity runtime to start and answer ACP initialize for Linux users whose passwd lookup fails. buildAntigravityAcpSpawnInput now adds --loas_pwd_fallback_in_corp with --uid= on Linux. The changed tests verify the argument for process-environment and provider launch paths. The PR also reports a Debian 13 fixture changing from exit 255 to a successful initialize result.

Full details: Out of Scope Changes check

Explanation

The diff changes only the shared Antigravity Linux spawn arguments and the corresponding regression expectations. The changes support issue [#23002]. Non-Linux arguments remain unchanged. No unrelated product or UI changes are present.

✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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