Proposal: a Linux beta, staged like the Windows beta (tested on Ubuntu 24.04)
Maintainers usually reply within 1 day
Assessment
This issue has not been assessed yet.
Description
Summary
The code already works on Linux. I ran the full test suite and a real five-agent office on Ubuntu 24.04, with no failures. The packaging does not work: the AppImage does not start on a stock Ubuntu 24.04 desktop, and neither does npm run dev.
I propose a Linux beta that follows the same three stages as the Windows 11 beta (docs/designs/windows-11-installer.md): a Linux CI job, a .deb that starts on stock Ubuntu, and a release leg that may fail, gated by a LINUX_RELEASE variable.
What I tested
| OS | Ubuntu 24.04.5 LTS, kernel 7.0, GNOME on X11 |
| Toolchain | Node 24.21 / npm 11.19 (CI uses Node 20), gcc 13.3 |
| Agent CLI | Claude Code 2.1.292 |
| Commit | c2427789 (v0.1.3) |
| Step | Result |
|---|---|
npm install |
Pass (1m37s). node-pty and better-sqlite3 compile from source. |
npm run typecheck, npm run build |
Pass |
npm run test:focused |
Pass: 1,953 tests, 1,946 pass, 0 fail, 7 skipped. All 7 skips are macOS-only (RTF and OCR through macOS, src/main/macOcr.ts:72, src/main/docText.ts:342). |
electron-builder --linux |
Pass: Dont-Be-Michael-0.1.3-linux-x86_64.AppImage (168 MB) |
| Start the AppImage | Fail: dlopen(): error loading libfuse.so.2 |
Start it with --appimage-extract-and-run |
Fail: FATAL:setuid_sandbox_host.cc(163)] The SUID sandbox helper binary was found, but is not configured correctly |
npm run dev (stock Electron 32.3.3) |
Fail: the same SUID sandbox error, exit 133 |
npm run dev with ELECTRON_DISABLE_SANDBOX=1 (test only) |
Pass. Setup, a Restaurant team of five claude agents, hive messages, task cards, the cost ledger and the close dialog all work. No errors in the log. After close, no agent or helper process is left. |
Why it fails on Ubuntu 24.04
- FUSE 2. AppImages need
libfuse.so.2. Ubuntu 24.04 installs only FUSE 3, so a new user sees nothing happen. - The Chromium sandbox. Since 23.10, Ubuntu restricts unprivileged user namespaces through AppArmor (
kernel.apparmor_restrict_unprivileged_userns = 1). An app without an AppArmor profile cannot use the user-namespace sandbox, so Electron falls back to the SUID helper and aborts. See the Ubuntu 24.04 release notes and electron/electron#41066. - electron-builder 25.1.8 has no fix for this. Its
.debpost-install script sets the SUID bit only whenunshare --user truefails. On Ubuntu 24.04 that check passes (I got exit 0), so the bit is not set and the app would hit the same error. electron-builder 26 ships an AppArmor profile in the.debpost-install for Ubuntu 24+ (electron-builder#8635). Upstream says the AppImage is still not fixed.
So CONTRIBUTING.md:58 ("macOS, Windows, or Linux to build and run from source") is true for the build and the tests, but not for starting the app on current Ubuntu.
Proposal
Stage 1: Linux in CI (small, can land first)
- Add a
test-linuxjob to.github/workflows/ci.ymlonubuntu-latest. Use the same steps astest-windows:npm ci,npm run build,npm run test:focused. - The suite is already green on Linux, so this job can be a required check from day one.
test-windowsis still advisory.
Stage 2: a .deb that starts with the sandbox on
- Bump
electron-builderfrom^25.1.8to 26.x to get the AppArmor profile in the.debpost-install. - Add a
debtarget besideAppImageinelectron-builder.yml(thelinux:block at line 171). - Make the
.debthe main Linux download. Keep the AppImage as a second option, with a README note: installlibfuse2t64, and the sandbox still needs a workaround. - Let the updater find Linux files:
pickDownloadAssetinsrc/main/updater.ts:189accepts only-linux-x86_64.AppImagetoday.
Stage 3: a release leg that may fail
- Uncomment the
ubuntu-latest/--linuxleg in.github/workflows/release.yml:33. Give itcontinue-on-error, the same as the Windows leg. - In
tools/release-assets.cjs, addshipsLinux()besideshipsWindows()(line 34), gated by aLINUX_RELEASErepository variable. Add.debto thePUBLISHEDpattern (line 29). Rc tags publish Linux files; clean tags do so only when the variable ison. - In
CONTRIBUTING.md, say that on Ubuntu 23.10+npm run devneedsELECTRON_DISABLE_SANDBOX=1, for development only.
Not in scope
- Linux OCR and RTF reading (now macOS-only, the 7 skipped tests).
- The plain-language message when the OS cannot encrypt secrets (
TODOS.md:17). GNOME Keyring worked in my run. - rpm, Flatpak, Snap, arm64, and signing.
Risks and open questions
- electron-builder 25 to 26 is a major version bump. The Mac notarize and Windows NSIS settings need a check on both release legs.
- The product name has spaces and an apostrophe. electron-builder once wrote an invalid AppArmor profile for names with spaces (electron-builder#9230, now closed). The generated profile needs one look.
- I have not installed a
.debfrom electron-builder 26 yet, because that needs root. I can do that on a branch and post the result.
I am happy to open Stage 1 as a pull request first, then Stages 2 and 3 as separate pull requests, one change per PR as CONTRIBUTING.md asks.
- Dominant language
- TypeScript
- Stars
- 273
- Forks
- 211
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 316
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from agentvivekkumar/dontbemichael
-
Windows: a hidden Claude call cannot start when the CLI path has a spacePossibly taken @theshloksschauhan claimed this 12 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
agentvivekkumar/dontbemichael#426 ·
Maintainers usually reply within 1 day
-
Raise Home and Manager setup text to the 14px floorPossibly taken @glenmiracle18 claimed this 11 days ago. Openbug os:windows
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
agentvivekkumar/dontbemichael#416 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 28/100
agentvivekkumar/dontbemichael#607 · 1 comment ·
Maintainers usually reply within 1 day
-
The router's loop guard never fires: nothing counts hopsPossibly taken @Vanshika25developer claimed this 4 days ago. Openos:linux
Difficulty 3/5 1-2 days Newbie friendliness 25/100
agentvivekkumar/dontbemichael#605 · 3 comments ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 1/100
agentvivekkumar/dontbemichael#604 ·
Maintainers usually reply within 1 day
All issues in agentvivekkumar/dontbemichael
Similar issues
-
e2e-failure ready-to-code
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
redhat-developer/rhdh-plugin-export-overlays#4580 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
devdotfast/whiteboard#1415 · 1 comment ·
Maintainers usually reply within 1 day
-
area/sessions comp/desktop desktop/sessions P2 type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
NousResearch/hermes-agent#145383 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
enhancement p2 setup
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 1 day