Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Proposal: a Linux beta, staged like the Windows beta (tested on Ubuntu 24.04)

Open
#35 2 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@agentvivekkumar is already working on this.

Since Oct 8, 2026.

  • #279 by @ZezinhoGoiano — open

Assessment

This issue has not been assessed yet.

Description

enhancement Require Customer

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

  1. FUSE 2. AppImages need libfuse.so.2. Ubuntu 24.04 installs only FUSE 3, so a new user sees nothing happen.
  2. 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.
  3. electron-builder 25.1.8 has no fix for this. Its .deb post-install script sets the SUID bit only when unshare --user true fails. 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 .deb post-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-linux job to .github/workflows/ci.yml on ubuntu-latest. Use the same steps as test-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-windows is still advisory.
Stage 2: a .deb that starts with the sandbox on
  • Bump electron-builder from ^25.1.8 to 26.x to get the AppArmor profile in the .deb post-install.
  • Add a deb target beside AppImage in electron-builder.yml (the linux: block at line 171).
  • Make the .deb the main Linux download. Keep the AppImage as a second option, with a README note: install libfuse2t64, and the sandbox still needs a workaround.
  • Let the updater find Linux files: pickDownloadAsset in src/main/updater.ts:189 accepts only -linux-x86_64.AppImage today.
Stage 3: a release leg that may fail
  • Uncomment the ubuntu-latest / --linux leg in .github/workflows/release.yml:33. Give it continue-on-error, the same as the Windows leg.
  • In tools/release-assets.cjs, add shipsLinux() beside shipsWindows() (line 34), gated by a LINUX_RELEASE repository variable. Add .deb to the PUBLISHED pattern (line 29). Rc tags publish Linux files; clean tags do so only when the variable is on.
  • In CONTRIBUTING.md, say that on Ubuntu 23.10+ npm run dev needs ELECTRON_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 .deb from 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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from agentvivekkumar/dontbemichael

All issues in agentvivekkumar/dontbemichael

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.