* refactor: remove sub application support
* chore: remove OS entries
* chore: update additional shortcut location on windows
* chore: show one time deprecation banner
* remove other indirect instances of embedded app
---------
Co-authored-by: Sandeep Somavarapu <sasomava@microsoft.com>
* 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
* fix: support rollback to non-versioned layout
* fix: destination for tools in rollback
Location matrix:
1) Version update
a) Background - {app}/versionfolder/tools
b) Non-background - {app}/versionfolder/tools
2) Non version update
a) Background - {app}/tools
b) Non-background - {app}/tools
* feat: enable win11 context menu for stable
* chore: update dll package
* chore: codesign appx for stable
* feat: support system setup
* fix: allow installing appx for system setup
* fix: add -SkipLicense to avoid exception during install
* Drop support for windows versions prior to windows
10
* Prepare for windows 8 eol
* fix typo
* Revert "Prepare for windows 8 eol"
This reverts commit f65a7107280da4328014d4964ba432f3d7462de0.
* untested wip
* cli: fix error starting remote tunnels
Fixes#185585
Output was prefixed which prevented the lines from being split to detect the tunnel status.
* innosetup to start/stop tunnel service
* better messages for tunnel still running
* fix error
* more logs
* add '/log'
* update
* fix
* update
* add kill & timeout wait
* stop service in PrepareToInstall
* non-background: check for tunnel mutex when wizard starts
* polish tunnel mutex names, prompt if tunnel is still running