fix: surface gaia init failures during backend install - #3282
fix: surface gaia init failures during backend install#3282mikemikimike wants to merge 5 commits into
Conversation
Request changesMaking a failed The new test only passes on Windows. It hardcodes the Windows virtualenv layout ( "Click Retry" doesn't actually retry the failed step. The error text tells the user to retry, but retrying re-enters the installer, which sees the GAIA package already installed at the pinned version and immediately reports ready — Worth a maintainer decision alongside that: a user whose model download can't succeed (offline, low disk, unsupported hardware) can now no longer get into the app at all, where before they got in without models. Failing loudly matches project policy, so this is a "confirm it's intended" note, not an objection. Real-world evidenceNo evidence bundle was produced for this PR, and the changed surface is the desktop installer's first-launch flow, which this lane can't exercise end to end — so the verdict rests on static review plus the Electron test suite, which I ran directly: The PR's own validation notes were run on Windows, which is why this didn't show up there. The failure-dialog behaviour (whether Retry recovers) hasn't been exercised on real hardware here and is worth a manual pass on the strix-halo lane before merge. 🔍 Technical detailsIssues🔴 New test is platform-locked and fails CI on Linux (
Verified locally: with the patch below, ( 🟡 The advertised Retry can't re-run Flow: the throw propagates to Options, roughly in order of least churn:
Either way the 🟢 Fatal-vs-degraded is now a hard gate ( Previously an init failure still let the app open (unusable chat, but reachable Settings/docs). Now the only exits are Retry, manual-install docs, or Quit. This is consistent with CLAUDE.md's no-silent-fallbacks rule and is likely intended — flagging it only so the change in first-launch UX for offline/unsupported-hardware machines is a conscious call, and because it interacts with the Retry issue above. Strengths
|
|
CI has now actually run on this (it was queued behind workflow approval) and it's red — but this one is your PR working as intended. The
The fix is either to install that package in the test container, or to drop the PPA dependency from the Linux init path. The second is worth a look — if |
kovtcharov-amd
left a comment
There was a problem hiding this comment.
CI is red — see the comment above. The failure is real, not a flake.
The distro matrix was silently failing `gaia init` in every container and only passing because the installer swallowed the error. With that swallow removed the job goes red, exposing that the matrix was asserting something it can never satisfy. `gaia init` provisions Lemonade, which on Linux ships only via ppa:lemonade-team/stable. That needs `add-apt-repository`, absent from the minimal ubuntu:24.04 fixture, and needs apt at all, absent from the fedora row. Neither container can complete init by construction. The matrix exists to assert AppImage packaging — FUSE mount, bundled Chromium libs, sandbox, and the bundled-uv-not-curl backend install. All of that still runs. The sibling appimage-userns-restricted job already sets GAIA_SKIP_GAIA_INIT for the same reason; this brings the matrix in line. Backend provisioning on minimal images is a real user-facing gap and is tracked separately.
This reverts commit 840d0a0. Installing software-properties-common only unblocks row 1. Row 3 runs on fedora:41, which has no apt and therefore can never provide add-apt-repository, so the matrix would fail on the very next row with the identical error. Row 1 would also then attempt a live PPA install plus a model download inside a curl-less container against a 300s readiness poll. With GAIA_SKIP_GAIA_INIT set the fixture never reaches the PPA path, so the package is dead weight and its comment contradicts the workflow.
|
The red CI here is this PR working. It removed the swallow, and a failure that had been hidden all along came out.
The job can't be made to pass by making init work there, though. Row 3 runs on What I changed: the matrix now sets The real bug is now #3340. First-run 🔍 Technical detailsFailing run: appimage-distro-matrix. Row 1 hit the 300s readiness poll and dumped:
Also corrected the row-1 timeout comment, which justified 300s by the Lemonade + model download that no longer happens. Two commits: the workflow change, and a revert of Verified |
|
Implemented the requested CI-container fix in commit 840d0a0. The appimage-distro-matrix test image now installs software-properties-common before adding the Ubuntu PPA. This restores the add-apt-repository dependency used by the existing gaia init path, while keeping the new init-failure propagation behavior enabled. Validation:
GitHub Actions checks are pending. |
Summary\n- fail the backend installer when gaia init --profile minimal --yes exits non-zero\n- preserve the initialization stage and exit code in InstallError so the existing UI shows its Retry dialog\n- add deterministic Electron regression coverage while retaining the explicit skip-init path\n\n## Issue\nCloses #3206\n\n## Validation\n-
pm test -- --runInBand backend-installer-init.test.cjs (2 passed)\n-
pm test -- --runInBand --testPathIgnorePatterns=backend-installer-network.test.cjs (626 passed, 1 skipped)\n-
ode --check for both changed CommonJS files\n- git diff --check\n\nThe existing �ackend-installer-network.test.cjs suite remains blocked on this Windows environment because its OpenSSL certificate-generation setup exits non-zero; that failure is unrelated to this change.