Files
ef2d2b3e48 MUL-8149: patch Node 22.23.4 in web image, Electron 39→44 (#9416)
* fix(web): pin Dockerfile.web to node:22.23.4-alpine for Oct 2026 Node security release (MUL-8149)

Co-authored-by: multica-agent <[email protected]>

* fix(desktop): upgrade Electron 39 (EOL) to 44.9.3 (MUL-8149)

Electron 39 is end-of-life and will not receive the 2026-10-21 Node.js
security fixes. 44.x is a supported line (Node 24.22.0, Chromium 152).

clipboard.writeText now returns a Promise in Electron 44; handle the
rejection in the context menu so it can't become an unhandled rejection.

Co-authored-by: multica-agent <[email protected]>

* fix(desktop): skip auto-update on macOS 12 and older (MUL-8149)

Electron 44 requires macOS 13 (Darwin 22), but electron-builder does not
publish minimumSystemVersion in latest-mac.yml, so electron-updater would
download and install a build that cannot launch on macOS 12, replacing a
working app. Disable background checks/downloads on those hosts and make
a manual check report the OS requirement instead.

Co-authored-by: multica-agent <[email protected]>

* fix(desktop): publish macOS update floor in update metadata (MUL-8149)

Review feedback: installed macOS 12 clients run their old updater code,
so a runtime check in the new build can never stop them from downloading
an Electron 44 build that cannot launch. The guard has to live in the
published latest-mac.yml / latest-x64-mac.yml.

- beforePack hook (scripts/mac-update-floor.cjs) adds
  minimumSystemVersion: 22.0.0 (Darwin kernel, = macOS 13) to the mac
  releaseInfo that electron-builder spreads into update info. The config
  schema rejects the key, so it is set on the packager after validation;
  the hook throws if those internals move.
- mac.minimumSystemVersion: 13.0.0 for every mac bundle; drop the stale
  Intel-only 12.0.0 override in package.mjs.
- Regression test runs electron-updater 6.8.3's real
  checkIfUpdateSupported against the published shape: Darwin 21 skips,
  22/25 update; no floor or a 13.0.0 floor would let Darwin 21 through.
- Revert the in-app updater.ts guard: it is unreachable on macOS 12.

Co-authored-by: multica-agent <[email protected]>

---------

Co-authored-by: Multica Eve <[email protected]>
Co-authored-by: multica-agent <[email protected]>
2026-10-22 13:26:40 +08:00
..