mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-19 06:39:55 +01:00
47add6dfa5
* 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