From 650f93336773d64142aadc7f2202b87984cc10a5 Mon Sep 17 00:00:00 2001 From: Xzero <108372158+Xzeroone@users.noreply.github.com> Date: Thu, 16 Jul 2026 07:15:41 +0300 Subject: [PATCH] fix(desktop): rename Linux executable to multica-desktop (#5483) The Electron desktop app's Linux packages (deb/rpm/AppImage) installed their launcher binary as `multica`, colliding with the Go CLI binary of the same name. Whichever won PATH resolution silently shadowed the other; hitting the Electron binary from a CLI invocation exits 0 with empty stdout (its own Chromium flags eat args like `--output json`), which reads as a healthy but empty CLI response instead of "wrong binary". Rename the packaged executable to `multica-desktop` so `multica` on PATH is unambiguously the Go CLI. StartupWMClass is unaffected since it derives from app.getName(), not executableName. Fixes #5481 Co-authored-by: Product Engineering Specialist Co-authored-by: multica-agent --- apps/desktop/electron-builder.yml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/apps/desktop/electron-builder.yml b/apps/desktop/electron-builder.yml index f0a0c0f56..90952eba7 100644 --- a/apps/desktop/electron-builder.yml +++ b/apps/desktop/electron-builder.yml @@ -43,9 +43,21 @@ linux: # violates the freedesktop desktop-entry naming guidance, so GNOME / # Ubuntu fail to associate the running window with the `.desktop` entry # and fall back to the theme's default app icon (the Settings gear on - # Yaru). Forcing `multica` makes every Linux identity slot agree and - # matches `StartupWMClass=Multica` (productName-derived). - executableName: multica + # Yaru). + # + # `multica-desktop` (not `multica`) so the deb/rpm/AppImage package never + # installs this Electron binary as `/usr/bin/multica`. The Go CLI is a + # separate artifact (see CLI_INSTALL.md) that agents and scripts expect + # to find at `multica` on PATH; when both packages are installed on the + # same box, a plain electron-builder default collides the two under one + # name. Whichever installs later — or wins the PATH lookup order — silently + # shadows the other. Hitting the Electron binary from a CLI call is the + # worst failure mode: it exits 0 with empty stdout (its own Chromium flags + # eat CLI args like `--output json`), which looks like a healthy CLI that + # returned nothing rather than "wrong binary" (github.com/multica-ai/multica/issues/5481). + # `StartupWMClass=Multica` (productName-derived) is unaffected by this + # rename — it comes from `app.getName()`, not `executableName`. + executableName: multica-desktop # Pin StartupWMClass to the WM_CLASS Electron emits on X11. Electron # derives WM_CLASS from `app.getName()`, which reads the *packaged* # ASAR's `package.json` — `productName` if present, otherwise `name`.