Files
vscode/build
Robo 47add6dfa5 feat(windows): use crossAppIPC to coordinate update ownership between apps (#307675)
* feat: use crossAppIPC to coordinate update ownership between apps

Introduce CrossAppUpdateCoordinator that uses Electron's crossAppIPC
module to ensure only one update client runs at a time. Whichever app
(VS Code or Agents) launches first becomes the IPC server and owns the
update client. The second app becomes the IPC client, suspends its local
update service, and proxies all update operations to the server.

When the server app quits, the client detects the disconnect, resumes
its local update service, and takes over update ownership. Both apps
show synchronized update UI at all times. "Restart to Update" signals
the peer to quit before applying the update.

- Add crossAppIPC type definitions for custom Electron build
- Add CrossAppUpdateCoordinator (symmetric, role-based coordination)
- Add suspend()/resume() to AbstractUpdateService
- Simplify Agents update UI to use direct update actions

* chore: use temp build

* fix: address review feedback for cross-app update coordination

- Dynamically register/dispose the local state change listener instead
  of filtering by mode, avoids unnecessary event handling
  while in client mode
- Clarify that suspend() blocks all update checks (automatic and manual)
  since the coordinator proxies everything to the server in client mode
- Replace fire-and-forget quit with a proper handshake protocol:
  server sends PrepareForQuit, client responds with QuitConfirmed or
  QuitVetoed, server only proceeds with quitAndInstall on confirmation.
  This prevents one side from quitting while the other's quit is vetoed.

* temp: update build

* fix: disable the crossapp coordinator for stable

* fix: don't restart ipc for client disconnection over quit request

* fix: use proxy exe mutex to detect and relaunch app

* temp: workaround for reconnect on macOS

* chore: move noisy updating state to trace level

* fix: compile error on windows

* fix: ready mutex when running as embedded app

* fix: don't open host app when proxy app is the only client

* chore: only enable cross app updater on windows

macOS needs additional work in the squirrel client.

* chore: revert to upstream electron

* fix: compile error

* fix: lazy resolve custom module
2026-04-10 20:25:41 +09:00
..
2026-04-09 18:03:59 +00:00
2026-04-09 13:37:26 +02:00
2026-04-09 05:12:44 +02:00
2026-04-06 20:18:35 +02:00
2026-03-10 20:56:09 -07:00
2026-04-09 21:56:36 -07:00