super-productivity/electron/ipc-handlers
Johannes Millan 297aeb30ab fix(electron): harden Snap+Wayland argv wrapper after multi-review
Address findings from code-reviewer + debugger-assistant +
refactor-specialist multi-review on 8e1c47ebc2:

- afterPack: read wrapper source before rename; on writeFile failure,
  roll the rename back so a broken intermediate state can't ship a
  package with no launcher. Strengthen idempotency check to require a
  shebang at binPath (both files alone no longer counts as "installed").
- wrapper: gate the X11 injection on \$SNAP_NAME = "superproductivity",
  not just \$SNAP set. An xdg-open from a sibling snap (e.g. Firefox)
  leaks \$SNAP into the child env, which previously would have silently
  forced XWayland on .deb/.rpm users. Derive BIN_DIR from \$SNAP
  directly when we are our snap, avoiding fragile \$0 resolution
  through snapd's wrapper chain. Stop argv scanning at -- so positional
  args that resemble --ozone-platform aren't misread as a user override.
- app-control: point app.relaunch() execPath at the sibling shell
  wrapper instead of the default process.execPath (which is the renamed
  ELF and would bypass the flag injection on a relaunched Snap+Wayland
  instance).
- Move build/snap-wrapper.sh -> build/linux/snap-wrapper.sh to match
  the existing build/linux/ layout convention.
- Update research doc §18 to reflect the tightened predicate and the
  relaunch fix.
2026-04-21 15:03:42 +02:00
..
app-control.ts fix(electron): harden Snap+Wayland argv wrapper after multi-review 2026-04-21 15:03:42 +02:00
app-data.ts feat(ipc): implement IPC handlers for app control, data, exec, global shortcuts, system, and Jira 2025-11-27 13:44:18 +01:00
exec.ts feat(customWindowTitleBar): add sexy custom window title bar <3 2025-12-02 13:30:36 +01:00
global-shortcuts.ts fix(electron): keep window reachable when show/hide shortcut has no tray 2026-04-20 15:48:40 +02:00
index.ts feat(ipc): improve error handling and streamline IPC initialization 2025-11-27 15:06:26 +01:00
jira.ts feat(ipc): implement IPC handlers for app control, data, exec, global shortcuts, system, and Jira 2025-11-27 13:44:18 +01:00
system.ts feat(ipc): implement IPC handlers for app control, data, exec, global shortcuts, system, and Jira 2025-11-27 13:44:18 +01:00