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 <support@weekome.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
Xzero
2026-07-16 07:15:41 +03:00
committed by GitHub
parent c5e004700f
commit 650f933367

View File

@@ -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`.