gaia-init-arch-wayland#1218
Conversation
|
Two targeted fixes for real user-facing failures (AUR/systemd Lemonade invisible to AppImage PATH, Wayland SIGTRAP crash). The logic is sound and the env-var restore is handled correctly via Issues🟡 No tests for the new probe path (
|
|
The probe-before-install approach is the right fix for the Arch/AppImage PATH problem, and the Wayland crash workaround is well-targeted. All blocking paths are covered by tests. A few minor structural issues below. Issues🟢 Minor — Two adjacent
|
|
Two targeted fixes: a probe-before-install path for non-Debian distros and a Wayland crash guard. The Wayland change is clean. The probe logic has one correctness issue and two gaps in its test coverage that matter in the real failure path. Issues🟡 Inner
|
|
@claude check out the changes |
|
@claude review PR. |
Summary
Skip the Ubuntu/PPA Lemonade install when a server is already reachable, and disable the Chromium
WaylandColorManagementfeature on Linux to prevent a SIGTRAP crash on Wayland compositors.Why
gaia inithardcodes anadd-apt-repositorypath that immediately fails on non-Debian distros (Arch, CachyOS, Fedora). Additionally, AppImages launch with a stripped PATH, soshutil.which()cannot see an AUR- or systemd-managedlemonade-servereven when it is actively running - causing a spurious "not found" and a failed PPA install. On Wayland, Electron 35+ triggers a known Chromium crash inwayland_wp_color_manager.ccwhen the compositor advertiseswp_color_managerbut doesn't fully satisfy Chromium's expectations.Linked issue
Closes #1217
Changes
init_command.py- before any install logic, probeLEMONADE_BASE_URL(if set) and thenhttp://127.0.0.1:13305/api/v1; skip installation entirely if either returns a healthy responsemain.cjs- - append--disable-features=WaylandColorManagementto Electron's Chromium flags onprocess.platform === 'linux'Test plan
lemonade-serverrunning via AUR/systemd on port 13305, run the AppImage and confirm[gaia-init]skips the install step and connects successfullyLEMONADE_BASE_URL=http://127.0.0.1:13305/api/v1explicitly and confirm same skip behaviorpython util/lint.py --allpassespytest tests/unit/passesChecklist
Closes #1217).python util/lint.py --all,pytest tests/unit/).