Repository navigation
fix: ship the AppImage with the static runtime - #548
Conversation
electron-builder 26.15.3 leaves toolsets.appimage unset, which selects the legacy toolset whose runtime links libfuse2 dynamically. Distributions that ship only FUSE 3 — current Arch, Ubuntu 24.04 and later, recent Fedora — refused to mount the image and reported "AppImages require FUSE to run". Pin the toolset to 1.0.3 so packaging embeds the static AppImage/type2-runtime (release 20251108). The host no longer needs libfuse2, and the extraction fallback stops being the price of a modern distribution. 1.0.3 rather than 1.0.2 because that toolset fails the build with a GLIBC mismatch on recent distributions. The artifact keeps its AppImage type 2 magic, so the desktop still resolves application/vnd.appimage, and the block map and latest-linux.yml are produced unchanged, so the electron-updater feed keeps its shape. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01AWAfQdnMPaiEBxraRxAdyA
|
@GabrielKifer is attempting to deploy a commit to the Compozy Team on Vercel. A member of the Team first needs to authorize it. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: ⛔ Files ignored due to path filters (7)
📒 Files selected for processing (1)
Included review availability: Your plan provides up to 8 included reviews per hour; 5 remain after this review. Important Approval pendingCodeRabbit has no unresolved comments, but it could not review the latest commit because the review limit was reached. Follow the review guidance in this comment to continue. WalkthroughThe smoke script adds an optional Linux launch mode. It validates ChangesLinux launch modes
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to Linux AppImage smoke validation now supports explicit mount and extract launch modes, preserving extraction behavior while checking the static-runtime mount path. No current merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
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. Comment |
|
@coderabbitai full review |
|
|
| Filename | Overview |
|---|---|
| desktop/electron-builder.yml | Pins the Linux AppImage toolset to the static-runtime release. |
| .github/workflows/release.yml | Creates a FUSE 3-only smoke environment and validates mounted and extracted launches. |
| scripts/smoke-desktop-release-artifact.sh | Adds explicit Linux launch modes and rejects mount verification when libfuse2 remains available. |
| docs/qa/reports/2026-09-03-appimage-static-runtime.md | Accurately records the local artifact caveats, blocked QA status, and missing canonical teardown evidence. |
| docs/qa/scenarios/APP-appimage-fuseless-launch.md | Adds the FUSE 3-only AppImage scenario while retaining blocked verification status. |
| docs/qa/scenarios/APP-install-first-run-provision.md | Resets Linux first-run verification because the packaging runtime changed. |
| packages/site/content/docs/getting-started/installation.mdx | Removes obsolete libfuse2 installation guidance and preserves the extraction fallback. |
| packages/site/content/docs/operations/desktop-app.mdx | Updates Linux launch troubleshooting for the static AppImage runtime. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
Config[desktop/electron-builder.yml<br/>AppImage toolset 1.0.3] --> Package[Static-runtime AppImage]
Package --> MountSmoke[Mount smoke<br/>FUSE 3, no libfuse2]
Package --> ExtractSmoke[Extraction fallback smoke]
MountSmoke --> Release[Release artifact]
ExtractSmoke --> Release
Package --> Docs[Updated installation and operations guidance]
Reviews (5): Last reviewed commit: "Merge branch 'main' into fix/appimage-st..." | Re-trigger Greptile
Summary
The released Linux AppImage refused to start on any distribution that ships only FUSE 3 — current Arch, Ubuntu 24.04 and later, recent Fedora — and reported
AppImages require FUSE to run. electron-builder 26.15.3 leavestoolsets.appimageunset, which is equivalent to"0.0.0"and selectsbuildLegacyFuse2AppImage, whose runtime links libfuse2 dynamically.1.0.3switches packaging tobuildStaticRuntimeAppImage, which embeds the static AppImage/type2-runtime (release 20251108). The host needs no libfuse2, and--appimage-extract-and-runstops being the price of a modern distribution. The same runtime becomes the electron-builder default in v27.1.0.3, not1.0.2. The 1.0.2 toolset fails the build with a GLIBC mismatch on recent distributions (Runningelectron-builder --appimagewith toolset 1.0.2 on Ubuntu 25.10 fails electron-userland/electron-builder#9598).desktop/src/release/release-config.ts,desktop/scripts/build-e2e-update.ts, andpackage-local.tsall extenddesktop/electron-builder.yml, so release, E2E, and local packaging pick the runtime up without further wiring.getting-started/installation.mdxandoperations/desktop-app.mdxno longer tell operators to installlibfuse2; the extraction fallback stays documented for hosts without kernel FUSE support, such as some containers.Verification
make gatePASS on this head —js-desktoplane, which owns the change (.cache/gate/js-desktop.json).fuse33.18.2, nofuse2, and only/usr/bin/fusermount3present. The AppImage mounted and opened the app twice with no extraction fallback, then provisioned~/.compozy/bin/compozyfrom an empty home and started exactly one daemon;compozy statusreported it running over its socket and HTTP port.ELF 64-bit LSB pie executable, static-pie linkedandnot a dynamic executable;--appimage-offsetis944632;--appimage-mountmounted astype fuse.CompozyOS-0.3.0-linux-x86_64.AppImage.41 49 02, so the desktop still resolvesapplication/vnd.appimageand integration tools such as Gear Lever keep working. The packaged build was installed through Gear Lever and run from the app menu on the affected machine.downloaded label=appimage-tools-runtime-20251108.tar.gzfollowed bybuilding embedded block map, andlatest-linux.ymlis produced as before.docs/qa/reports/2026-09-03-appimage-static-runtime.md.APP-appimage-fuseless-launchadded and walked; the Linux leg ofAPP-install-first-run-provisionre-walked on the new artifact. Lab teardown left no process, mount, or path behind.Compozy Impact Audit
compozy__*ID, toolset, descriptor, I/O schema, digest, risk flag, availability diagnostic, or capability gate appears in the diff, which touchesdesktop/electron-builder.yml, two docs pages, anddocs/qa/only.config.tomlkey changes; the AppImage runtime is chosen at package time and exposes no runtime surface.skills/compozy/carries no AppImage, FUSE, or packaging reference (verified by grep over the skill tree).Decisions for review
appimagetoolset versions are still labelled betas upstream (1.0.2,1.0.3).1.0.3is the only one that both builds on current distributions and drops the libfuse2 dependency, and it becomes the default in electron-builder v27, so the pin is a step toward that default rather than away from it.desktop/scripts/build-runtime.tsdirectly, which skips thewebBuildandwebAssetsCheckhooks the release pipeline runs first. Mount, provisioning, and daemon start were verified on that binary; product-UI behavior was confirmed separately on a build whose web bundle matched this checkout.🤖 Generated with Claude Code
https://claude.ai/code/session_01AWAfQdnMPaiEBxraRxAdyA
Summary by CodeRabbit