refactor: remove sub application support#314409
Merged
deepak1556 merged 6 commits intomainfrom May 7, 2026
Merged
Conversation
Contributor
Screenshot ChangesBase: Errored (20)Fixtures that failed to render — no screenshot was produced.
|
Contributor
There was a problem hiding this comment.
Pull request overview
Removes the legacy “sub application / embedded app” implementation (sibling app launching, cross-app IPC coordination, and embedded-product overlays) and shifts remaining “agents/sessions” behavior to run within the primary VS Code application.
Changes:
- Removed cross-app IPC, sibling-app launching, and embedded product configuration overlays.
- Simplified update, storage, URL handling, and history behavior by eliminating embedded-app special cases.
- Reworked “agents window” responsiveness handling via window config (e.g. disabling background throttling for the agents/sessions window).
Reviewed changes
Copilot reviewed 37 out of 38 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/vs/workbench/test/electron-browser/workbenchTestServices.ts | Removes test native host stub for sibling app launching. |
| src/vs/workbench/services/environment/electron-browser/environmentService.ts | Stops propagating embedded-app state into the workbench environment service. |
| src/vs/platform/workspaces/electron-main/workspacesHistoryMainService.ts | Removes embedded-app exclusions for recent docs/jump list and dock recents. |
| src/vs/platform/windows/electron-main/windowsMainService.ts | Removes embedded-app open flow; adds agents-window creation option wiring. |
| src/vs/platform/windows/electron-main/windows.ts | Removes embedded-app icon override logic on Windows. |
| src/vs/platform/windows/electron-main/windowImpl.ts | Adds isAgentsWindow creation option and uses it to disable background throttling. |
| src/vs/platform/userDataProfile/electron-main/userDataProfile.ts | Removes embedded-app default profile remapping to host resources. |
| src/vs/platform/url/electron-main/electronUrlListener.ts | Removes embedded-app protocol-handler skip on Windows. |
| src/vs/platform/update/electron-main/updateService.win32.ts | Removes embedded-app update path/mutex handling and sibling-exe cleanup args. |
| src/vs/platform/update/electron-main/updateService.darwin.ts | Removes “suspended update” guardrails used for cross-app coordination. |
| src/vs/platform/update/electron-main/crossAppUpdateIpc.ts | Deletes cross-app update coordination implementation. |
| src/vs/platform/update/electron-main/abstractUpdateService.ts | Removes suspend/resume logic used by cross-app update coordination. |
| src/vs/platform/storage/test/electron-main/storageMainService.test.ts | Drops cross-app IPC shared storage tests and related scaffolding. |
| src/vs/platform/storage/electron-main/storageMainService.ts | Removes cross-app IPC dependency from storage main service wiring. |
| src/vs/platform/storage/electron-main/storageMain.ts | Removes cross-app IPC external-change detection wrapper for shared storage DB. |
| src/vs/platform/secrets/electron-main/macOSCrossAppSecretSharing.ts | Deletes macOS cross-app secret sharing/migration implementation. |
| src/vs/platform/native/node/siblingApp.ts | Deletes sibling-app launcher utilities. |
| src/vs/platform/native/electron-main/nativeHostMainService.ts | Removes launchSiblingApp RPC implementation. |
| src/vs/platform/native/common/native.ts | Removes launchSiblingApp from the common native host service contract. |
| src/vs/platform/launch/electron-main/launchMainService.ts | Removes second-instance handling for secret-sharing arg (but leaves unused event fields). |
| src/vs/platform/environment/node/userDataPath.ts | Removes embedded-app dev product name variant. |
| src/vs/platform/environment/node/environmentService.ts | Removes embedded-app gating from “parent app” path derivation. |
| src/vs/platform/environment/node/argv.ts | Removes --open-chat-session option. |
| src/vs/platform/environment/common/environmentService.ts | Removes embedded-app flag from environment service base and always derives “parent app” name from quality. |
| src/vs/platform/environment/common/argv.ts | Removes open-chat-session from parsed args shape. |
| src/vs/platform/encryption/electron-main/encryptionMainService.ts | Removes embedded-app encryption-key reuse from host Local State. |
| src/vs/platform/crossAppIpc/electron-main/crossAppIpcService.ts | Deletes cross-app IPC service implementation. |
| src/vs/code/node/cli.ts | Removes logic that tried to launch a sibling embedded app for --agents. |
| src/vs/code/electron-main/app.ts | Removes embedded-app special protocol handling, cross-app IPC setup, and secret/update coordination. |
| src/vs/base/common/product.ts | Removes sibling/embedded product configuration fields and embedded product type. |
| src/vs/base/common/platform.ts | Removes INodeProcess.isEmbeddedApp typing. |
| src/typings/electron-cross-app-ipc.d.ts | Deletes Electron crossAppIPC custom typings. |
| src/bootstrap-meta.ts | Removes embedded app product/package overlay loading (product.sub.json, package.sub.json). |
| build/win32/code.iss | Removes proxy executable packaging/shortcuts/mutex handling; updates inno_updater args. |
| build/lib/embeddedType.ts | Deletes build-time embedded product type. |
| build/gulpfile.vscode.win32.ts | Removes proxy/embedded setup definitions generation. |
| build/gulpfile.vscode.ts | Removes embedded mini-app packaging streams/assets and unconditional excludes adjusted. |
| build/darwin/sign.ts | Removes embedded app Info.plist usage-description patching. |
Comments suppressed due to low confidence (1)
src/vs/base/common/product.ts:246
- The
parentPolicyConfigdoc comment still refers to “running as an embedded app”, but this PR removes embedded/sub-application support (and the related product config). Please update the comment (or remove the field if it’s no longer used) so the product configuration docs match the new architecture.
/**
* When running as an embedded app, the parent VS Code's policy
* identity (win32RegValueName / darwinBundleIdentifier) so that
* enterprise policies deployed to the parent also apply here.
*/
de7a266 to
c6ebd24
Compare
Contributor
📬 CODENOTIFYThe following users are being notified based on files changed in this PR: @TylerLeonhardtMatched files:
|
a62ca69 to
aa6a52c
Compare
sandy081
previously requested changes
May 7, 2026
Addressing concern about removing agents app user and extension dir in a follow up build.
dmitrivMS
approved these changes
May 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.