This repository was archived by the owner on Aug 6, 2026. It is now read-only.
Repository navigation
feat(code): add Linux AppImage build target - #2130
Merged
Merged
Conversation
Contributor
Prompt To Fix All With AIFix the following 2 code review issues. Work through them one at a time, proposing concise fixes.
---
### Issue 1 of 2
.github/workflows/code-release.yml:218-222
**Unused matrix variable `arch`**
The `arch` field is declared in the matrix but is never referenced in any step — `electron-forge publish` detects the native architecture from the runner itself. Having a documented-but-unused variable is superfluous and could mislead future readers into thinking something explicit is being passed to the build command.
### Issue 2 of 2
.github/workflows/code-release.yml:219-222
The x64 runner uses `ubuntu-latest` while the arm64 runner pins `ubuntu-24.04-arm`. The `libfuse2t64` package name is Ubuntu 24.04-specific; if `ubuntu-latest` is ever resolved to a different LTS (22.04 uses `libfuse2`, and a future 26.04 may rename it again), this `apt-get install` step will fail. Using an explicit version for both runners makes the build reproducible and avoids the implicit coupling.
```suggestion
- runner: ubuntu-24.04
arch: x64
- runner: ubuntu-24.04-arm
arch: arm64
```
Reviews (1): Last reviewed commit: "Merge branch 'main' into feat/linux-appi..." | Re-trigger Greptile |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a Linux AppImage distribution path for the Electron “Code” app, integrating it into the existing Electron Forge packaging/publishing workflow and CI release pipeline.
Changes:
- Add
@reforged/maker-appimageto Forge config so Linux AppImages are produced (x64 + arm64). - Extend the GitHub Actions release workflow with a Linux publish matrix job and update release finalization dependencies.
- Add a local Docker-based
make:linuxscript and ensure non-macOS window icons are explicitly set at runtime.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| pnpm-lock.yaml | Locks the new AppImage maker dependency and its transitive deps. |
| apps/code/src/main/window.ts | Sets an explicit window icon for Linux/Windows and updates platform window config branching. |
| apps/code/scripts/build-linux-docker.sh | New Docker-based local Linux/AppImage build helper script. |
| apps/code/package.json | Adds make:linux script and @reforged/maker-appimage dependency. |
| apps/code/forge.config.ts | Registers MakerAppImage, ensures icon PNG is shipped as an extra resource, and adds Linux watcher native package copy. |
| .github/workflows/code-release.yml | Adds publish-linux job (x64 + arm64) and makes finalize-release depend on it. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
charlesvien
force-pushed
the
feat/linux-appimage-release
branch
from
May 22, 2026 15:32
063f7bd to
aacb651
Compare
jonathanlab
approved these changes
May 28, 2026
Adds @reforged/maker-appimage so Forge produces x64 and arm64 AppImages
alongside the existing macOS/Windows artifacts. The release workflow gains
a publish-linux matrix job (ubuntu-latest + ubuntu-24.04-arm) which
installs the AppImage tooling (squashfs-tools, zsync, libfuse2t64) before
running electron-forge publish, and finalize-release now depends on it.
Also includes a make:linux script that builds the AppImage from macOS via
Docker for local verification, since electron-forge can't natively
cross-build AppImages from darwin.
Drive-by fix: remove a duplicate `const { isOnline } = useConnectivity()`
in SessionView.tsx that came in via a merge collision between #1971 and
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
gantoine
force-pushed
the
feat/linux-appimage-release
branch
from
May 28, 2026 15:52
aacb651 to
efdf8eb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@reforged/maker-appimageand registers it inforge.config.tsso Forge produces x64 + arm64 Linux AppImages alongside the existing macOS DMG/ZIP and Windows installer.publish-linuxmatrix job (ubuntu-latest+ubuntu-24.04-arm) tocode-release.ymlthat installs the AppImage tooling (squashfs-tools,zsync,libfuse2t64) and runselectron-forge publish.finalize-releasenow depends on this job too.pnpm --filter code make:linuxscript that builds the AppImage from macOS via Docker (tar-streamed source, container-sidenode_modules) for local verification, sinceelectron-forgecan't natively cross-build AppImages from darwin.const { isOnline } = useConnectivity()inSessionView.tsxleft behind by a merge collision between fix(sessions): preserve prompt when sending while offline #1971 and fix(sessions): disable message send when offline #2121 — was failing typecheck onmain.Test plan
v0.0.0-linuxtest1tag and verifypublish-linuxproduces both x64 and arm64 AppImages in the draft GitHub releasefinalize-releasewaits for all three platform jobs before un-draftingpnpm --filter code make:linuxproduces an AppImage underapps/code/out/make/(requires Docker Desktop ≥ 8 GB memory)needswas extended)Notes
libfuse2t64is the Ubuntu 24.04 package name; ifubuntu-latestis bumped past 24.04 in the future, that line may need adjusting.🤖 Generated with Claude Code