Browse Source

feat(1.106): update patches (#2590)

Baptiste Augrain 1 month ago
parent
commit
ccb2819b25
9 changed files with 199 additions and 191 deletions
  1. 1 1
      .nvmrc
  2. 2 2
      build.sh
  3. 113 86
      patches/brand.patch
  4. 32 37
      patches/disable-copilot.patch
  5. 13 41
      patches/policies.patch
  6. 4 4
      patches/remove-mangle.patch
  7. 13 13
      patches/sourcemaps.patch
  8. 19 5
      product.json
  9. 2 2
      upstream/insider.json

+ 1 - 1
.nvmrc

@@ -1 +1 @@
-22.19.0
+22.20.0

+ 2 - 2
build.sh

@@ -27,7 +27,7 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
     rm -f .build/extensions/ms-vscode.js-debug/src/win32-app-container-tokens.*.node
 
     # generate Group Policy definitions
-    node build/lib/policies darwin
+    node build/lib/policies/policyGenerator build/lib/policies/policyData.jsonc darwin
 
     npm run gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
 
@@ -38,7 +38,7 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
     VSCODE_PLATFORM="darwin"
   elif [[ "${OS_NAME}" == "windows" ]]; then
     # generate Group Policy definitions
-    node build/lib/policies win32
+    node build/lib/policies/policyGenerator build/lib/policies/policyData.jsonc win32
 
     # in CI, packaging will be done by a different job
     if [[ "${CI_BUILD}" == "no" ]]; then

+ 113 - 86
patches/brand.patch

@@ -62,48 +62,48 @@ index 1be4d0e..647b147 100644
 -export const redundantImplicitActivationEvent = l10n.t("This activation event can be removed as VS Code generates these automatically from your package.json contribution declarations.");
 +export const redundantImplicitActivationEvent = l10n.t("This activation event can be removed as !!APP_NAME!! generates these automatically from your package.json contribution declarations.");
 diff --git a/extensions/extension-editing/src/extensionLinter.ts b/extensions/extension-editing/src/extensionLinter.ts
-index be7eea1..0737bab 100644
+index 187100b..7514367 100644
 --- a/extensions/extension-editing/src/extensionLinter.ts
 +++ b/extensions/extension-editing/src/extensionLinter.ts
 @@ -34,4 +34,4 @@ const relativeUrlRequiresHttpsRepository = l10n.t("Relative image URLs require a
  const relativeBadgeUrlRequiresHttpsRepository = l10n.t("Relative badge URLs require a repository with HTTPS protocol to be specified in this package.json.");
 -const apiProposalNotListed = l10n.t("This proposal cannot be used because for this extension the product defines a fixed set of API proposals. You can test your extension but before publishing you MUST reach out to the VS Code team.");
--const bumpEngineForImplicitActivationEvents = l10n.t("This activation event can be removed for extensions targeting engine version ^1.75 as VS Code will generate these automatically from your package.json contribution declarations.");
+-const bumpEngineForImplicitActivationEvents = l10n.t("This activation event can be removed for extensions targeting engine version ^1.75.0 as VS Code will generate these automatically from your package.json contribution declarations.");
 +const apiProposalNotListed = l10n.t("This proposal cannot be used because for this extension the product defines a fixed set of API proposals. You can test your extension but before publishing you MUST reach out to the !!APP_NAME!! team.");
-+const bumpEngineForImplicitActivationEvents = l10n.t("This activation event can be removed for extensions targeting engine version ^1.75 as !!APP_NAME!! will generate these automatically from your package.json contribution declarations.");
++const bumpEngineForImplicitActivationEvents = l10n.t("This activation event can be removed for extensions targeting engine version ^1.75.0 as !!APP_NAME!! will generate these automatically from your package.json contribution declarations.");
  const starActivation = l10n.t("Using '*' activation is usually a bad idea as it impacts performance.");
 diff --git a/extensions/git/package.nls.json b/extensions/git/package.nls.json
-index ae4159e..93d74ae 100644
+index 4d037b4..7d0a991 100644
 --- a/extensions/git/package.nls.json
 +++ b/extensions/git/package.nls.json
-@@ -237,3 +237,3 @@
+@@ -244,3 +244,3 @@
  			"{Locked='](command:git.showOutput'}",
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -265,4 +265,4 @@
+@@ -272,4 +272,4 @@
  	"config.showCommitInput": "Controls whether to show the commit input in the Git source control panel.",
 -	"config.terminalAuthentication": "Controls whether to enable VS Code to be the authentication handler for Git processes spawned in the Integrated Terminal. Note: Terminals need to be restarted to pick up a change in this setting.",
 -	"config.terminalGitEditor": "Controls whether to enable VS Code to be the Git editor for Git processes spawned in the integrated terminal. Note: Terminals need to be restarted to pick up a change in this setting.",
 +	"config.terminalAuthentication": "Controls whether to enable !!APP_NAME!! to be the authentication handler for Git processes spawned in the Integrated Terminal. Note: Terminals need to be restarted to pick up a change in this setting.",
 +	"config.terminalGitEditor": "Controls whether to enable !!APP_NAME!! to be the Git editor for Git processes spawned in the integrated terminal. Note: Terminals need to be restarted to pick up a change in this setting.",
  	"config.timeline.showAuthor": "Controls whether to show the commit author in the Timeline view.",
-@@ -334,3 +334,3 @@
+@@ -341,3 +341,3 @@
  			"{Locked='](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22'}",
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -344,3 +344,3 @@
+@@ -351,3 +351,3 @@
  			"{Locked='](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22'}",
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -354,3 +354,3 @@
+@@ -361,3 +361,3 @@
  			"{Locked='](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22'}",
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -366,6 +366,6 @@
+@@ -373,6 +373,6 @@
  	"view.workbench.scm.disabled": {
 -		"message": "If you would like to use Git features, please enable Git in your [settings](command:workbench.action.openSettings?%5B%22git.enabled%22%5D).\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
 +		"message": "If you would like to use Git features, please enable Git in your [settings](command:workbench.action.openSettings?%5B%22git.enabled%22%5D).\nTo learn more about how to use Git and source control in !!APP_NAME!! [read our docs](https://aka.ms/vscode-scm).",
@@ -112,7 +112,7 @@ index ae4159e..93d74ae 100644
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -374,6 +374,6 @@
+@@ -381,6 +381,6 @@
  	"view.workbench.scm.empty": {
 -		"message": "In order to use Git features, you can open a folder containing a Git repository or clone from a URL.\n[Open Folder](command:vscode.openFolder)\n[Clone Repository](command:git.cloneRecursive)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
 +		"message": "In order to use Git features, you can open a folder containing a Git repository or clone from a URL.\n[Open Folder](command:vscode.openFolder)\n[Clone Repository](command:git.cloneRecursive)\nTo learn more about how to use Git and source control in !!APP_NAME!! [read our docs](https://aka.ms/vscode-scm).",
@@ -121,7 +121,7 @@ index ae4159e..93d74ae 100644
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -382,6 +382,6 @@
+@@ -389,6 +389,6 @@
  	"view.workbench.scm.folder": {
 -		"message": "The folder currently open doesn't have a Git repository. You can initialize a repository which will enable source control features powered by Git.\n[Initialize Repository](command:git.init?%5Btrue%5D)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
 +		"message": "The folder currently open doesn't have a Git repository. You can initialize a repository which will enable source control features powered by Git.\n[Initialize Repository](command:git.init?%5Btrue%5D)\nTo learn more about how to use Git and source control in !!APP_NAME!! [read our docs](https://aka.ms/vscode-scm).",
@@ -130,7 +130,7 @@ index ae4159e..93d74ae 100644
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -390,6 +390,6 @@
+@@ -397,6 +397,6 @@
  	"view.workbench.scm.workspace": {
 -		"message": "The workspace currently open doesn't have any folders containing Git repositories. You can initialize a repository on a folder which will enable source control features powered by Git.\n[Initialize Repository](command:git.init)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
 +		"message": "The workspace currently open doesn't have any folders containing Git repositories. You can initialize a repository on a folder which will enable source control features powered by Git.\n[Initialize Repository](command:git.init)\nTo learn more about how to use Git and source control in !!APP_NAME!! [read our docs](https://aka.ms/vscode-scm).",
@@ -139,7 +139,7 @@ index ae4159e..93d74ae 100644
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -398,6 +398,6 @@
+@@ -405,6 +405,6 @@
  	"view.workbench.scm.emptyWorkspace": {
 -		"message": "The workspace currently open doesn't have any folders containing Git repositories.\n[Add Folder to Workspace](command:workbench.action.addRootFolder)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
 +		"message": "The workspace currently open doesn't have any folders containing Git repositories.\n[Add Folder to Workspace](command:workbench.action.addRootFolder)\nTo learn more about how to use Git and source control in !!APP_NAME!! [read our docs](https://aka.ms/vscode-scm).",
@@ -148,27 +148,27 @@ index ae4159e..93d74ae 100644
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -416,3 +416,3 @@
+@@ -423,3 +423,3 @@
  			"{Locked='](command:workbench.action.openSettings?%5B%22git.openRepositoryInParentFolders%22%5D'}",
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -425,3 +425,3 @@
+@@ -432,3 +432,3 @@
  			"{Locked='](command:workbench.action.openSettings?%5B%22git.openRepositoryInParentFolders%22%5D'}",
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -433,3 +433,3 @@
+@@ -440,3 +440,3 @@
  			"{Locked='](command:git.manageUnsafeRepositories'}",
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -441,3 +441,3 @@
+@@ -448,3 +448,3 @@
  			"{Locked='](command:git.manageUnsafeRepositories'}",
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -446,6 +446,6 @@
+@@ -453,6 +453,6 @@
  	"view.workbench.scm.closedRepository": {
 -		"message": "A Git repository was found that was previously closed.\n[Reopen Closed Repository](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
 +		"message": "A Git repository was found that was previously closed.\n[Reopen Closed Repository](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in !!APP_NAME!! [read our docs](https://aka.ms/vscode-scm).",
@@ -177,7 +177,7 @@ index ae4159e..93d74ae 100644
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -454,6 +454,6 @@
+@@ -461,6 +461,6 @@
  	"view.workbench.scm.closedRepositories": {
 -		"message": "Git repositories were found that were previously closed.\n[Reopen Closed Repositories](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
 +		"message": "Git repositories were found that were previously closed.\n[Reopen Closed Repositories](command:git.reopenClosedRepositories)\nTo learn more about how to use Git and source control in !!APP_NAME!! [read our docs](https://aka.ms/vscode-scm).",
@@ -186,12 +186,12 @@ index ae4159e..93d74ae 100644
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -465,3 +465,3 @@
+@@ -472,3 +472,3 @@
  			"{Locked='](command:git.clone'}",
 -			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for VS Code",
 +			"Do not translate the 'command:*' part inside of the '(..)'. It is an internal command syntax for !!APP_NAME!!",
  			"Please make sure there is no space between the right bracket and left parenthesis:  ]( this is an internal syntax for links"
-@@ -469,3 +469,3 @@
+@@ -476,3 +476,3 @@
  	},
 -	"view.workbench.learnMore": "To learn more about how to use Git and source control in VS Code [read our docs](https://aka.ms/vscode-scm)."
 +	"view.workbench.learnMore": "To learn more about how to use Git and source control in !!APP_NAME!! [read our docs](https://aka.ms/vscode-scm)."
@@ -232,7 +232,7 @@ index 789a579..12e230e 100644
 +	"displayName": "Grunt support for !!APP_NAME!!",
  	"config.grunt.autoDetect": "Controls enablement of Grunt task detection. Grunt task detection can cause files in any open workspace to be executed.",
 diff --git a/extensions/html-language-features/client/src/htmlClient.ts b/extensions/html-language-features/client/src/htmlClient.ts
-index 2b0f961..a316a44 100644
+index 54fc914..77fa09d 100644
 --- a/extensions/html-language-features/client/src/htmlClient.ts
 +++ b/extensions/html-language-features/client/src/htmlClient.ts
 @@ -109,3 +109,3 @@ export async function startClient(context: ExtensionContext, newLanguageClient:
@@ -241,7 +241,7 @@ index 2b0f961..a316a44 100644
 +					const res = await window.showInformationMessage(l10n.t('!!APP_NAME!! now has built-in support for auto-renaming tags. Do you want to enable it?'), configure);
  					if (res === configure) {
 diff --git a/extensions/html-language-features/package.nls.json b/extensions/html-language-features/package.nls.json
-index f36ecf3..0d795cb 100644
+index d839070..b3ea638 100644
 --- a/extensions/html-language-features/package.nls.json
 +++ b/extensions/html-language-features/package.nls.json
 @@ -3,3 +3,3 @@
@@ -249,8 +249,8 @@ index f36ecf3..0d795cb 100644
 -	"html.customData.desc": "A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-html-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its HTML support for the custom HTML tags, attributes and attribute values you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.",
 +	"html.customData.desc": "A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-html-languageservice/blob/master/docs/customData.md).\n\n!!APP_NAME!! loads custom data on startup to enhance its HTML support for the custom HTML tags, attributes and attribute values you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.",
  	"html.format.enable.desc": "Enable/disable default HTML formatter.",
-@@ -25,3 +25,3 @@
- 	"html.suggest.html5.desc": "Controls whether the built-in HTML language support suggests HTML5 tags, properties and values.",
+@@ -26,3 +26,3 @@
+ 	"html.suggest.hideEndTagSuggestions.desc": "Controls whether the built-in HTML language support suggests closing tags. When disabled, end tag completions like `</div>` will not be shown.",
 -	"html.trace.server.desc": "Traces the communication between VS Code and the HTML language server.",
 +	"html.trace.server.desc": "Traces the communication between !!APP_NAME!! and the HTML language server.",
  	"html.validate.scripts": "Controls whether the built-in HTML language support validates embedded scripts.",
@@ -307,34 +307,34 @@ index 920ced7..755a166 100644
 +	"description": "Provides !!APP_NAME!!'s built-in previews for images, audio, and video",
  	"customEditor.audioPreview.displayName": "Audio Preview",
 diff --git a/extensions/media-preview/src/audioPreview.ts b/extensions/media-preview/src/audioPreview.ts
-index 5058f7e..ee1283a 100644
+index 282d579..e3dfb4b 100644
 --- a/extensions/media-preview/src/audioPreview.ts
 +++ b/extensions/media-preview/src/audioPreview.ts
-@@ -82,3 +82,3 @@ class AudioPreview extends MediaPreview {
+@@ -83,3 +83,3 @@ class AudioPreview extends MediaPreview {
  		<p>${vscode.l10n.t("An error occurred while loading the audio file.")}</p>
 -		<a href="#" class="open-file-link">${vscode.l10n.t("Open file using VS Code's standard text/binary editor?")}</a>
 +		<a href="#" class="open-file-link">${vscode.l10n.t("Open file using !!APP_NAME!!'s standard text/binary editor?")}</a>
  	</div>
 diff --git a/extensions/media-preview/src/imagePreview/index.ts b/extensions/media-preview/src/imagePreview/index.ts
-index b405cd6..8eafea3 100644
+index 6c2c8a7..064afc6 100644
 --- a/extensions/media-preview/src/imagePreview/index.ts
 +++ b/extensions/media-preview/src/imagePreview/index.ts
-@@ -209,3 +209,3 @@ class ImagePreview extends MediaPreview {
+@@ -210,3 +210,3 @@ class ImagePreview extends MediaPreview {
  		<p>${vscode.l10n.t("An error occurred while loading the image.")}</p>
 -		<a href="#" class="open-file-link">${vscode.l10n.t("Open file using VS Code's standard text/binary editor?")}</a>
 +		<a href="#" class="open-file-link">${vscode.l10n.t("Open file using !!APP_NAME!!'s standard text/binary editor?")}</a>
  	</div>
 diff --git a/extensions/media-preview/src/videoPreview.ts b/extensions/media-preview/src/videoPreview.ts
-index 6701212..c9f9fb2 100644
+index 1cb74c5..3f5f892 100644
 --- a/extensions/media-preview/src/videoPreview.ts
 +++ b/extensions/media-preview/src/videoPreview.ts
-@@ -86,3 +86,3 @@ class VideoPreview extends MediaPreview {
+@@ -87,3 +87,3 @@ class VideoPreview extends MediaPreview {
  		<p>${vscode.l10n.t("An error occurred while loading the video file.")}</p>
 -		<a href="#" class="open-file-link">${vscode.l10n.t("Open file using VS Code's standard text/binary editor?")}</a>
 +		<a href="#" class="open-file-link">${vscode.l10n.t("Open file using !!APP_NAME!!'s standard text/binary editor?")}</a>
  	</div>
 diff --git a/extensions/notebook-renderers/package.json b/extensions/notebook-renderers/package.json
-index b4a5236..d7e85fc 100644
+index 77c042e..d262ee3 100644
 --- a/extensions/notebook-renderers/package.json
 +++ b/extensions/notebook-renderers/package.json
 @@ -22,3 +22,3 @@
@@ -352,7 +352,7 @@ index 56a77ff..e9f32d1 100644
 +	"displayName": "NPM support for !!APP_NAME!!",
  	"workspaceTrust": "This extension executes tasks, which require trust to run.",
 diff --git a/extensions/swift/syntaxes/swift.tmLanguage.json b/extensions/swift/syntaxes/swift.tmLanguage.json
-index 1d6b18c..20ac362 100644
+index a8bbe5d..00694dc 100644
 --- a/extensions/swift/syntaxes/swift.tmLanguage.json
 +++ b/extensions/swift/syntaxes/swift.tmLanguage.json
 @@ -260,3 +260,3 @@
@@ -415,7 +415,7 @@ index 43a2413..ba7934f 100644
 +				: '') + vscode.l10n.t("Use !!APP_NAME!!'s Version"),
  			description: bundledVersion.displayName,
 diff --git a/extensions/typescript-language-features/src/tsServer/versionProvider.electron.ts b/extensions/typescript-language-features/src/tsServer/versionProvider.electron.ts
-index 239519e..5e58d4d 100644
+index 12cb1cc..bfaa57e 100644
 --- a/extensions/typescript-language-features/src/tsServer/versionProvider.electron.ts
 +++ b/extensions/typescript-language-features/src/tsServer/versionProvider.electron.ts
 @@ -70,3 +70,3 @@ export class DiskTypeScriptVersionProvider implements ITypeScriptVersionProvider
@@ -433,26 +433,26 @@ index 9905fd5..62c2e3c 100644
 +			vscode.l10n.t("Please open a folder in !!APP_NAME!! to use a TypeScript or JavaScript project"));
  		return;
 diff --git a/extensions/typescript-language-features/src/typescriptServiceClient.ts b/extensions/typescript-language-features/src/typescriptServiceClient.ts
-index 57395ce..c2b706a 100644
+index 207698d..9948527 100644
 --- a/extensions/typescript-language-features/src/typescriptServiceClient.ts
 +++ b/extensions/typescript-language-features/src/typescriptServiceClient.ts
-@@ -656,3 +656,3 @@ export default class TypeScriptServiceClient extends Disposable implements IType
+@@ -661,3 +661,3 @@ export default class TypeScriptServiceClient extends Disposable implements IType
  						prompt = vscode.window.showErrorMessage<vscode.MessageItem>(
 -							vscode.l10n.t("The JS/TS language service immediately crashed 5 times. The service will not be restarted.\nThis may be caused by a plugin contributed by one of these extensions: {0}.\nPlease try disabling these extensions before filing an issue against VS Code.", pluginExtensionList));
 +							vscode.l10n.t("The JS/TS language service immediately crashed 5 times. The service will not be restarted.\nThis may be caused by a plugin contributed by one of these extensions: {0}.\nPlease try disabling these extensions before filing an issue against !!APP_NAME!!.", pluginExtensionList));
  					} else {
-@@ -677,3 +677,3 @@ export default class TypeScriptServiceClient extends Disposable implements IType
+@@ -682,3 +682,3 @@ export default class TypeScriptServiceClient extends Disposable implements IType
  							prompt = vscode.window.showWarningMessage<vscode.MessageItem>(
 -								vscode.l10n.t("The JS/TS language service crashed 5 times in the last 5 Minutes.\nThis may be caused by a plugin contributed by one of these extensions: {0}\nPlease try disabling these extensions before filing an issue against VS Code.", pluginExtensionList));
 +								vscode.l10n.t("The JS/TS language service crashed 5 times in the last 5 Minutes.\nThis may be caused by a plugin contributed by one of these extensions: {0}\nPlease try disabling these extensions before filing an issue against !!APP_NAME!!.", pluginExtensionList));
  						} else {
-@@ -691,3 +691,3 @@ export default class TypeScriptServiceClient extends Disposable implements IType
+@@ -696,3 +696,3 @@ export default class TypeScriptServiceClient extends Disposable implements IType
  						prompt = vscode.window.showWarningMessage<vscode.MessageItem>(
 -							vscode.l10n.t("The JS/TS language service crashed.\nThis may be caused by a plugin contributed by one of these extensions: {0}.\nPlease try disabling these extensions before filing an issue against VS Code.", pluginExtensionList));
 +							vscode.l10n.t("The JS/TS language service crashed.\nThis may be caused by a plugin contributed by one of these extensions: {0}.\nPlease try disabling these extensions before filing an issue against !!APP_NAME!!.", pluginExtensionList));
  					} else {
 diff --git a/extensions/vscode-api-tests/package.json b/extensions/vscode-api-tests/package.json
-index 250ec7a..74bdbdf 100644
+index 10eb7e6..10c5a19 100644
 --- a/extensions/vscode-api-tests/package.json
 +++ b/extensions/vscode-api-tests/package.json
 @@ -2,3 +2,3 @@
@@ -539,15 +539,15 @@ index 74d25c6..878e228 100644
 +					progress.report({ message: 'Installing !!APP_NAME!! Server' });
  					serverLocation = await downloadAndUnzipVSCodeServer(updateUrl, commit, quality, serverBin, m => outputChannel.appendLine(m));
 diff --git a/src/main.ts b/src/main.ts
-index deba4c4..d661a63 100644
+index 7b7e1da..f0a4f6c 100644
 --- a/src/main.ts
 +++ b/src/main.ts
-@@ -408,3 +408,3 @@ function createDefaultArgvConfigSync(argvConfigPath: string): void {
+@@ -409,3 +409,3 @@ function createDefaultArgvConfigSync(argvConfigPath: string): void {
  		const defaultArgvConfigContent = [
 -			'// This configuration file allows you to pass permanent command line arguments to VS Code.',
 +			'// This configuration file allows you to pass permanent command line arguments to !!APP_NAME!!.',
  			'// Only a subset of arguments is currently supported to reduce the likelihood of breaking',
-@@ -414,6 +414,6 @@ function createDefaultArgvConfigSync(argvConfigPath: string): void {
+@@ -415,6 +415,6 @@ function createDefaultArgvConfigSync(argvConfigPath: string): void {
  			'//',
 -			'// NOTE: Changing this file requires a restart of VS Code.',
 +			'// NOTE: Changing this file requires a restart of !!APP_NAME!!.',
@@ -557,7 +557,7 @@ index deba4c4..d661a63 100644
 +			'	// This can help in cases where you see rendering issues in !!APP_NAME!!.',
  			'	// "disable-hardware-acceleration": true',
 diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts
-index 9643512..3b5d855 100644
+index 43aba01..23b55ea 100644
 --- a/src/vs/code/electron-main/app.ts
 +++ b/src/vs/code/electron-main/app.ts
 @@ -526,3 +526,3 @@ export class CodeApplication extends Disposable {
@@ -633,10 +633,10 @@ index bbd4bee..ba81c21 100644
 +			description: localize('terminal.integrated.inheritEnv', "Whether new shells should inherit their environment from !!APP_NAME!!, which may source a login shell to ensure $PATH and other development variables are initialized. This has no effect on Windows."),
  			type: 'boolean',
 diff --git a/src/vs/platform/update/common/update.config.contribution.ts b/src/vs/platform/update/common/update.config.contribution.ts
-index d96926b..a787b34 100644
+index e5fb1ab..bd4740b 100644
 --- a/src/vs/platform/update/common/update.config.contribution.ts
 +++ b/src/vs/platform/update/common/update.config.contribution.ts
-@@ -47,3 +47,3 @@ configurationRegistry.registerConfiguration({
+@@ -70,3 +70,3 @@ configurationRegistry.registerConfiguration({
  			title: localize('enableWindowsBackgroundUpdatesTitle', "Enable Background Updates on Windows"),
 -			description: localize('enableWindowsBackgroundUpdates', "Enable to download and install new VS Code versions in the background on Windows."),
 +			description: localize('enableWindowsBackgroundUpdates', "Enable to download and install new !!APP_NAME!! versions in the background on Windows."),
@@ -662,28 +662,28 @@ index b78ebc5..9b0eb56 100644
 +			comment: 'This is used to know how often !!APP_NAME!! has successfully downloaded the update.';
  		};
 diff --git a/src/vs/server/node/server.cli.ts b/src/vs/server/node/server.cli.ts
-index 0535ddd..2478997 100644
+index 69b17e1..eaf400a 100644
 --- a/src/vs/server/node/server.cli.ts
 +++ b/src/vs/server/node/server.cli.ts
 @@ -469,3 +469,3 @@ function asExtensionIdOrVSIX(inputs: string[] | undefined) {
- function fatal(message: string, err: any): void {
+ function fatal(message: string, err: unknown): void {
 -	console.error('Unable to connect to VS Code server: ' + message);
 +	console.error('Unable to connect to !!APP_NAME!! server: ' + message);
  	console.error(err);
 diff --git a/src/vs/workbench/api/browser/mainThreadAuthentication.ts b/src/vs/workbench/api/browser/mainThreadAuthentication.ts
-index f15906e..1d63292 100644
+index af3845c..0f75728 100644
 --- a/src/vs/workbench/api/browser/mainThreadAuthentication.ts
 +++ b/src/vs/workbench/api/browser/mainThreadAuthentication.ts
-@@ -498,3 +498,3 @@ export class MainThreadAuthentication extends Disposable implements MainThreadAu
+@@ -504,3 +504,3 @@ export class MainThreadAuthentication extends Disposable implements MainThreadAu
  				owner: 'TylerLeonhardt';
 -				comment: 'Used to see which extensions are using the VSCode client id override';
 +				comment: 'Used to see which extensions are using the !!APP_NAME!! client id override';
  				extensionId: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'The extension id.' };
 diff --git a/src/vs/workbench/api/browser/viewsExtensionPoint.ts b/src/vs/workbench/api/browser/viewsExtensionPoint.ts
-index 0674b8f..7bf3dd4 100644
+index c0ff40a..5b508f3 100644
 --- a/src/vs/workbench/api/browser/viewsExtensionPoint.ts
 +++ b/src/vs/workbench/api/browser/viewsExtensionPoint.ts
-@@ -43,3 +43,3 @@ const viewsContainerSchema: IJSONSchema = {
+@@ -45,3 +45,3 @@ const viewsContainerSchema: IJSONSchema = {
  		id: {
 -			description: localize({ key: 'vscode.extension.contributes.views.containers.id', comment: ['Contribution refers to those that an extension contributes to VS Code through an extension/contribution point. '] }, "Unique id used to identify the container in which views can be contributed using 'views' contribution point"),
 +			description: localize({ key: 'vscode.extension.contributes.views.containers.id', comment: ['Contribution refers to those that an extension contributes to !!APP_NAME!! through an extension/contribution point. '] }, "Unique id used to identify the container in which views can be contributed using 'views' contribution point"),
@@ -698,7 +698,7 @@ index 436e350..f426464 100644
 +			ApiCommandArgument.String.with('viewId', 'Custom editor view id. This should be the viewType string for custom editors or the notebookType string for notebooks. Use \'default\' to use !!APP_NAME!!\'s default text editor'),
  			new ApiCommandArgument<vscode.ViewColumn | typeConverters.TextEditorOpenOptions | undefined, [vscode.ViewColumn?, ITextEditorOptions?] | undefined>('columnOrOptions', 'Either the column in which to open or editor options, see vscode.TextDocumentShowOptions',
 diff --git a/src/vs/workbench/api/common/extHostCommands.ts b/src/vs/workbench/api/common/extHostCommands.ts
-index d914f21..9bca633 100644
+index 161e19b..b6bfeb2 100644
 --- a/src/vs/workbench/api/common/extHostCommands.ts
 +++ b/src/vs/workbench/api/common/extHostCommands.ts
 @@ -466,4 +466,4 @@ export class ApiCommandArgument<V, O = V> {
@@ -727,7 +727,7 @@ index 2487213..a22b4d1 100644
 +			title: localize2('newsletterSignup', 'Signup for the !!APP_NAME!! Newsletter'),
  			category: Categories.Help,
 diff --git a/src/vs/workbench/browser/web.factory.ts b/src/vs/workbench/browser/web.factory.ts
-index 0ebe271..20974b2 100644
+index e342f83..7c314e6 100644
 --- a/src/vs/workbench/browser/web.factory.ts
 +++ b/src/vs/workbench/browser/web.factory.ts
 @@ -35,3 +35,3 @@ export function create(domElement: HTMLElement, options: IWorkbenchConstructionO
@@ -736,24 +736,24 @@ index 0ebe271..20974b2 100644
 +		throw new Error('Unable to create the !!APP_NAME!! workbench more than once.');
  	} else {
 diff --git a/src/vs/workbench/browser/workbench.contribution.ts b/src/vs/workbench/browser/workbench.contribution.ts
-index d09ab3f..24e5f8d 100644
+index d049eee..d1c4265 100644
 --- a/src/vs/workbench/browser/workbench.contribution.ts
 +++ b/src/vs/workbench/browser/workbench.contribution.ts
-@@ -712,3 +712,3 @@ const registry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Con
+@@ -724,3 +724,3 @@ const registry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Con
  		localize('profileName', "`${profileName}`: name of the profile in which the workspace is opened (e.g. Data Science (Profile)). Ignored if default profile is used."),
 -		localize('appName', "`${appName}`: e.g. VS Code."),
 +		localize('appName', "`${appName}`: e.g. !!APP_NAME!!."),
  		localize('remoteName', "`${remoteName}`: e.g. SSH"),
 diff --git a/src/vs/workbench/contrib/chat/browser/chatSetup.ts b/src/vs/workbench/contrib/chat/browser/chatSetup.ts
-index 4325d48..d4fd731 100644
+index 45215b1..431716c 100644
 --- a/src/vs/workbench/contrib/chat/browser/chatSetup.ts
 +++ b/src/vs/workbench/contrib/chat/browser/chatSetup.ts
-@@ -154,3 +154,3 @@ class SetupAgent extends Disposable implements IChatAgentImplementation {
+@@ -158,3 +158,3 @@ class SetupAgent extends Disposable implements IChatAgentImplementation {
  			// Register VSCode agent
 -			const { disposable: vscodeDisposable } = SetupAgent.doRegisterAgent(instantiationService, chatAgentService, 'setup.vscode', 'vscode', false, localize2('vscodeAgentDescription', "Ask questions about VS Code").value, ChatAgentLocation.Chat, undefined, context, controller);
 +			const { disposable: vscodeDisposable } = SetupAgent.doRegisterAgent(instantiationService, chatAgentService, 'setup.vscode', 'vscode', false, localize2('vscodeAgentDescription', "Ask questions about !!APP_NAME!!").value, ChatAgentLocation.Chat, undefined, context, controller);
  			disposables.add(vscodeDisposable);
-@@ -171,4 +171,4 @@ class SetupAgent extends Disposable implements IChatAgentImplementation {
+@@ -175,4 +175,4 @@ class SetupAgent extends Disposable implements IChatAgentImplementation {
  				displayName: localize('setupToolDisplayName', "New Workspace"),
 -				modelDescription: localize('setupToolsDescription', "Scaffold a new workspace in VS Code"),
 -				userDescription: localize('setupToolsDescription', "Scaffold a new workspace in VS Code"),
@@ -761,7 +761,7 @@ index 4325d48..d4fd731 100644
 +				userDescription: localize('setupToolsDescription', "Scaffold a new workspace in !!APP_NAME!!"),
  				canBeReferencedInPrompt: true,
 diff --git a/src/vs/workbench/contrib/debug/browser/debugAdapterManager.ts b/src/vs/workbench/contrib/debug/browser/debugAdapterManager.ts
-index 0a13063..5a342c0 100644
+index 7504a9c..2e485bb 100644
 --- a/src/vs/workbench/contrib/debug/browser/debugAdapterManager.ts
 +++ b/src/vs/workbench/contrib/debug/browser/debugAdapterManager.ts
 @@ -177,3 +177,3 @@ export class AdapterManager extends Disposable implements IAdapterManager {
@@ -770,30 +770,30 @@ index 0a13063..5a342c0 100644
 +						description: nls.localize('debugServer', "For debug extension development only: if a port is specified !!APP_NAME!! tries to connect to a debug adapter running in server mode"),
  						default: 4711
 diff --git a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
-index 1bc0b4b..89330c0 100644
+index 012c4d3..39dcb1b 100644
 --- a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
 +++ b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
-@@ -338,3 +338,3 @@ CommandsRegistry.registerCommand({
+@@ -346,3 +346,3 @@ CommandsRegistry.registerCommand({
  				description: '(optional) Options for installing the extension. Object with the following properties: ' +
 -					'`installOnlyNewlyAddedFromExtensionPackVSIX`: When enabled, VS Code installs only newly added extensions from the extension pack VSIX. This option is considered only when installing VSIX. ',
 +					'`installOnlyNewlyAddedFromExtensionPackVSIX`: When enabled, !!APP_NAME!! installs only newly added extensions from the extension pack VSIX. This option is considered only when installing VSIX. ',
  				isOptional: true,
-@@ -345,3 +345,3 @@ CommandsRegistry.registerCommand({
+@@ -353,3 +353,3 @@ CommandsRegistry.registerCommand({
  							'type': 'boolean',
 -							'description': localize('workbench.extensions.installExtension.option.installOnlyNewlyAddedFromExtensionPackVSIX', "When enabled, VS Code installs only newly added extensions from the extension pack VSIX. This option is considered only while installing a VSIX."),
 +							'description': localize('workbench.extensions.installExtension.option.installOnlyNewlyAddedFromExtensionPackVSIX', "When enabled, !!APP_NAME!! installs only newly added extensions from the extension pack VSIX. This option is considered only while installing a VSIX."),
  							default: false
-@@ -350,3 +350,3 @@ CommandsRegistry.registerCommand({
+@@ -358,3 +358,3 @@ CommandsRegistry.registerCommand({
  							'type': 'boolean',
 -							'description': localize('workbench.extensions.installExtension.option.installPreReleaseVersion', "When enabled, VS Code installs the pre-release version of the extension if available."),
 +							'description': localize('workbench.extensions.installExtension.option.installPreReleaseVersion', "When enabled, !!APP_NAME!! installs the pre-release version of the extension if available."),
  							default: false
-@@ -355,3 +355,3 @@ CommandsRegistry.registerCommand({
+@@ -363,3 +363,3 @@ CommandsRegistry.registerCommand({
  							'type': 'boolean',
 -							'description': localize('workbench.extensions.installExtension.option.donotSync', "When enabled, VS Code do not sync this extension when Settings Sync is on."),
 +							'description': localize('workbench.extensions.installExtension.option.donotSync', "When enabled, !!APP_NAME!! do not sync this extension when Settings Sync is on."),
  							default: false
-@@ -880,4 +880,4 @@ class ExtensionsContributions extends Disposable implements IWorkbenchContributi
+@@ -888,4 +888,4 @@ class ExtensionsContributions extends Disposable implements IWorkbenchContributi
  						Severity.Info,
 -						vsixs.length > 1 ? localize('InstallVSIXs.successReload', "Completed installing extensions. Please reload Visual Studio Code to enable them.")
 -							: localize('InstallVSIXAction.successReload', "Completed installing extension. Please reload Visual Studio Code to enable it."),
@@ -801,7 +801,7 @@ index 1bc0b4b..89330c0 100644
 +							: localize('InstallVSIXAction.successReload', "Completed installing extension. Please reload VSCodium to enable it."),
  						[{
 diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
-index a84f2db..9df8237 100644
+index 96c8434..cfb1836 100644
 --- a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
 +++ b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
 @@ -109,3 +109,3 @@ export class PromptExtensionInstallFailureAction extends Action {
@@ -825,7 +825,7 @@ index a84f2db..9df8237 100644
 +				this.updateStatus({ icon: warningIcon, message: new MarkdownString(localize('deprecated with alternate settings tooltip', "This extension is deprecated as this functionality is now built-in to !!APP_NAME!!. Configure these {0} to use this functionality.", link)) }, true);
  			} else {
 diff --git a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
-index 700c8ca..4daed93 100644
+index 8574e03..bb1f721 100644
 --- a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
 +++ b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
 @@ -477,3 +477,3 @@ export class Extension implements IExtension {
@@ -894,10 +894,10 @@ index b533feb..112d695 100644
 +	`// ${nls.localize('doc', 'Open !!APP_NAME!! and run "Developer: Inspect Key Mappings (JSON)" from Command Palette.')}`,
  	``,
 diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts
-index 916f7a3..973580f 100644
+index d08a8ee..eb50690 100644
 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts
 +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts
-@@ -3447,3 +3447,3 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
+@@ -3470,3 +3470,3 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
  						if (response.code && response.code === TerminateResponseCode.ProcessNotFound) {
 -							this._notificationService.error(nls.localize('TerminateAction.noProcess', 'The launched process doesn\'t exist anymore. If the task spawned background tasks exiting VS Code might result in orphaned processes.'));
 +							this._notificationService.error(nls.localize('TerminateAction.noProcess', 'The launched process doesn\'t exist anymore. If the task spawned background tasks exiting !!APP_NAME!! might result in orphaned processes.'));
@@ -926,7 +926,7 @@ index d917ab2..bb39d83 100644
 +			description: nls.localize('JsonSchema.tasks.promptOnClose', 'Whether the user is prompted when !!APP_NAME!! closes with a running task.'),
  			default: false
 diff --git a/src/vs/workbench/contrib/terminal/browser/terminalView.ts b/src/vs/workbench/contrib/terminal/browser/terminalView.ts
-index 50bfba8..a2a82bc 100644
+index 7c0f6ba..953be85 100644
 --- a/src/vs/workbench/contrib/terminal/browser/terminalView.ts
 +++ b/src/vs/workbench/contrib/terminal/browser/terminalView.ts
 @@ -212,3 +212,3 @@ export class TerminalViewPane extends ViewPane {
@@ -935,7 +935,7 @@ index 50bfba8..a2a82bc 100644
 +					this._notificationService.prompt(Severity.Warning, nls.localize('terminal.monospaceOnly', "The terminal only supports monospace fonts. Be sure to restart !!APP_NAME!! if this is a newly installed font."), choices);
  				}
 diff --git a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts
-index d92d577..eb868c2 100644
+index bd3ef39..2524d95 100644
 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts
 +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts
 @@ -310,3 +310,3 @@ const terminalConfiguration: IStringDictionary<IConfigurationPropertySchema> = {
@@ -973,12 +973,12 @@ index d92d577..eb868c2 100644
 -		markdownDescription: localize('terminal.integrated.env.windows', "Object with environment variables that will be added to the VS Code process to be used by the terminal on Windows. Set to `null` to delete the environment variable."),
 +		markdownDescription: localize('terminal.integrated.env.windows', "Object with environment variables that will be added to the !!APP_NAME!! process to be used by the terminal on Windows. Set to `null` to delete the environment variable."),
  		type: 'object',
-@@ -482,3 +482,3 @@ const terminalConfiguration: IStringDictionary<IConfigurationPropertySchema> = {
+@@ -471,3 +471,3 @@ const terminalConfiguration: IStringDictionary<IConfigurationPropertySchema> = {
  	[TerminalSettingId.WindowsUseConptyDll]: {
 -		markdownDescription: localize('terminal.integrated.windowsUseConptyDll', "Whether to use the experimental conpty.dll (v1.22.250204002) shipped with VS Code, instead of the one bundled with Windows."),
 +		markdownDescription: localize('terminal.integrated.windowsUseConptyDll', "Whether to use the experimental conpty.dll (v1.22.250204002) shipped with !!APP_NAME!!, instead of the one bundled with Windows."),
  		type: 'boolean',
-@@ -589,3 +589,3 @@ const terminalConfiguration: IStringDictionary<IConfigurationPropertySchema> = {
+@@ -578,3 +578,3 @@ const terminalConfiguration: IStringDictionary<IConfigurationPropertySchema> = {
  		restricted: true,
 -		markdownDescription: localize('terminal.integrated.shellIntegration.enabled', "Determines whether or not shell integration is auto-injected to support features like enhanced command tracking and current working directory detection. \n\nShell integration works by injecting the shell with a startup script. The script gives VS Code insight into what is happening within the terminal.\n\nSupported shells:\n\n- Linux/macOS: bash, fish, pwsh, zsh\n - Windows: pwsh, git bash\n\nThis setting applies only when terminals are created, so you will need to restart your terminals for it to take effect.\n\n Note that the script injection may not work if you have custom arguments defined in the terminal profile, have enabled {1}, have a [complex bash `PROMPT_COMMAND`](https://code.visualstudio.com/docs/editor/integrated-terminal#_complex-bash-promptcommand), or other unsupported setup. To disable decorations, see {0}", '`#terminal.integrated.shellIntegration.decorationsEnabled#`', '`#editor.accessibilitySupport#`'),
 +		markdownDescription: localize('terminal.integrated.shellIntegration.enabled', "Determines whether or not shell integration is auto-injected to support features like enhanced command tracking and current working directory detection. \n\nShell integration works by injecting the shell with a startup script. The script gives !!APP_NAME!! insight into what is happening within the terminal.\n\nSupported shells:\n\n- Linux/macOS: bash, fish, pwsh, zsh\n - Windows: pwsh, git bash\n\nThis setting applies only when terminals are created, so you will need to restart your terminals for it to take effect.\n\n Note that the script injection may not work if you have custom arguments defined in the terminal profile, have enabled {1}, have a [complex bash `PROMPT_COMMAND`](https://code.visualstudio.com/docs/editor/integrated-terminal#_complex-bash-promptcommand), or other unsupported setup. To disable decorations, see {0}", '`#terminal.integrated.shellIntegration.decorationsEnabled#`', '`#editor.accessibilitySupport#`'),
@@ -1023,7 +1023,7 @@ index 393c8c3..9268a6c 100644
 +		content += `// By default, !!APP_NAME!! trusts "localhost".\n`;
  	}
 diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
-index 7df25f0..ef9c492 100644
+index 17258bd..6d4a638 100644
 --- a/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
 +++ b/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.contribution.ts
 @@ -49,3 +49,3 @@ registerAction2(class extends Action2 {
@@ -1031,7 +1031,7 @@ index 7df25f0..ef9c492 100644
 -				description: localize2('minWelcomeDescription', 'Opens a Walkthrough to help you get started in VS Code.')
 +				description: localize2('minWelcomeDescription', 'Opens a Walkthrough to help you get started in !!APP_NAME!!.')
  			}
-@@ -316,3 +316,3 @@ configurationRegistry.registerConfiguration({
+@@ -310,3 +310,3 @@ configurationRegistry.registerConfiguration({
  				localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'workbench.startupEditor.none' }, "Start without an editor."),
 -				localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'workbench.startupEditor.welcomePage' }, "Open the Welcome page, with content to aid in getting started with VS Code and extensions."),
 +				localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'workbench.startupEditor.welcomePage' }, "Open the Welcome page, with content to aid in getting started with !!APP_NAME!! and extensions."),
@@ -1046,7 +1046,7 @@ index 297598e..1fc5b45 100644
 +											description: localize('walkthroughs.steps.completionEvents.onCommand', 'Check off step when a given command is executed anywhere in !!APP_NAME!!.'),
  											body: 'onCommand:${1:commandId}'
 diff --git a/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.ts b/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.ts
-index 2c462d5..5637419 100644
+index 60f47c9..eb2c4b8 100644
 --- a/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.ts
 +++ b/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.ts
 @@ -211,13 +211,2 @@ export const startEntries: GettingStartedStartEntryContent = [
@@ -1068,10 +1068,10 @@ index 2c462d5..5637419 100644
 -const CopilotStepTitle = localize('gettingStarted.copilotSetup.title', "Use AI features with Copilot for free");
 -const CopilotDescription = localize({ key: 'gettingStarted.copilotSetup.description', comment: ['{Locked="["}', '{Locked="]({0})"}'] }, "You can use [Copilot]({0}) to generate code across multiple files, fix errors, ask questions about your code, and much more using natural language.", defaultChat.documentationUrl ?? '');
 -const CopilotTermsString = localize({ key: 'gettingStarted.copilotSetup.terms', comment: ['{Locked="]({2})"}', '{Locked="]({3})"}'] }, "By continuing with {0} Copilot, you agree to {1}'s [Terms]({2}) and [Privacy Statement]({3})", defaultChat.provider.default.name, defaultChat.provider.default.name, defaultChat.termsStatementUrl, defaultChat.privacyStatementUrl);
--const CopilotAnonymousButton = Button(localize('setupCopilotButton.setup', "Set up Copilot"), `command:workbench.action.chat.triggerSetupAnonymousWithoutDialog`);
--const CopilotSignedOutButton = Button(localize('setupCopilotButton.setup', "Set up Copilot"), `command:workbench.action.chat.triggerSetup`);
--const CopilotSignedInButton = Button(localize('setupCopilotButton.setup', "Set up Copilot"), `command:workbench.action.chat.triggerSetup`);
--const CopilotCompleteButton = Button(localize('setupCopilotButton.chatWithCopilot', "Chat with Copilot"), 'command:workbench.action.chat.open');
+-const CopilotAnonymousButton = Button(localize('setupCopilotButton.setup', "Use AI Features"), `command:workbench.action.chat.triggerSetupAnonymousWithoutDialog`);
+-const CopilotSignedOutButton = Button(localize('setupCopilotButton.setup', "Use AI Features"), `command:workbench.action.chat.triggerSetup`);
+-const CopilotSignedInButton = Button(localize('setupCopilotButton.setup', "Use AI Features"), `command:workbench.action.chat.triggerSetup`);
+-const CopilotCompleteButton = Button(localize('setupCopilotButton.chatWithCopilot', "Start to Chat"), 'command:workbench.action.chat.open');
 -
 -function createCopilotSetupStep(id: string, button: string, when: string, includeTerms: boolean): BuiltinGettingStartedStep {
 -	const description = includeTerms ?
@@ -1090,6 +1090,16 @@ index 2c462d5..5637419 100644
 -}
 -
  export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -253,3 +218,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+ 		id: 'Setup',
+-		title: localize('gettingStarted.setup.title', "Get started with VS Code"),
++		title: localize('gettingStarted.setup.title', "Get started with !!APP_NAME!!"),
+ 		description: localize('gettingStarted.setup.description', "Customize your editor, learn the basics, and start coding"),
+@@ -258,3 +223,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+ 		when: '!isWeb',
+-		walkthroughPageTitle: localize('gettingStarted.setup.walkthroughPageTitle', 'Setup VS Code'),
++		walkthroughPageTitle: localize('gettingStarted.setup.walkthroughPageTitle', 'Setup !!APP_NAME!!'),
+ 		next: 'Beginner',
 @@ -263,6 +228,2 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  			steps: [
 -				createCopilotSetupStep('CopilotSetupAnonymous', CopilotAnonymousButton, 'chatAnonymous && !chatSetupInstalled', true),
@@ -1097,6 +1107,18 @@ index 2c462d5..5637419 100644
 -				createCopilotSetupStep('CopilotSetupComplete', CopilotCompleteButton, 'chatSetupInstalled && !chatSetupDisabled && (chatAnonymous || chatPlanPro || chatPlanProPlus || chatPlanBusiness || chatPlanEnterprise || chatPlanFree)', false),
 -				createCopilotSetupStep('CopilotSetupSignedIn', CopilotSignedInButton, '!chatEntitlementSignedOut && (!chatSetupInstalled || chatSetupDisabled || chatPlanCanSignUp)', false),
  				{
+@@ -280,4 +241,4 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+ 					title: localize('gettingStarted.videoTutorial.title', "Watch video tutorials"),
+-					description: localize('gettingStarted.videoTutorial.description.interpolated', "Watch the first in a series of short & practical video tutorials for VS Code's key features.\n{0}", Button(localize('watch', "Watch Tutorial"), 'https://aka.ms/vscode-getting-started-video')),
+-					media: { type: 'svg', altText: 'VS Code Settings', path: 'learn.svg' },
++					description: localize('gettingStarted.videoTutorial.description.interpolated', "Watch the first in a series of short & practical video tutorials for !!APP_NAME!!'s key features.\n{0}", Button(localize('watch', "Watch Tutorial"), 'https://aka.ms/vscode-getting-started-video')),
++					media: { type: 'svg', altText: '!!APP_NAME!! Settings', path: 'learn.svg' },
+ 				}
+@@ -289,3 +250,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+ 		id: 'SetupWeb',
+-		title: localize('gettingStarted.setupWeb.title', "Get Started with VS Code for the Web"),
++		title: localize('gettingStarted.setupWeb.title', "Get Started with !!APP_NAME!! for the Web"),
+ 		description: localize('gettingStarted.setupWeb.description', "Customize your editor, learn the basics, and start coding"),
 @@ -295,3 +256,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  		next: 'Beginner',
 -		walkthroughPageTitle: localize('gettingStarted.setupWeb.walkthroughPageTitle', 'Setup VS Code Web'),
@@ -1149,6 +1171,11 @@ index 2c462d5..5637419 100644
 -					description: localize('gettingStarted.commandPaletteAccessibility.description.interpolated', "Run commands without reaching for your mouse to accomplish any task in VS Code.\n{0}", Button(localize('commandPalette', "Open Command Palette"), 'command:workbench.action.showCommands')),
 +					description: localize('gettingStarted.commandPaletteAccessibility.description.interpolated', "Run commands without reaching for your mouse to accomplish any task in !!APP_NAME!!.\n{0}", Button(localize('commandPalette', "Open Command Palette"), 'command:workbench.action.showCommands')),
  					media: { type: 'markdown', path: 'empty' },
+@@ -492,3 +443,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+ 					title: localize('gettingStarted.settings.title', "Tune your settings"),
+-					description: localize('gettingStarted.settingsAndSync.description.interpolated', "Customize every aspect of VS Code and [sync](command:workbench.userDataSync.actions.turnOn) customizations across devices.\n{0}", Button(localize('tweakSettings', "Open Settings"), 'command:toSide:workbench.action.openSettings')),
++					description: localize('gettingStarted.settingsAndSync.description.interpolated', "Customize every aspect of !!APP_NAME!! and [sync](command:workbench.userDataSync.actions.turnOn) customizations across devices.\n{0}", Button(localize('tweakSettings', "Open Settings"), 'command:toSide:workbench.action.openSettings')),
+ 					when: 'workspacePlatform != \'webworker\' && syncStatus != uninitialized',
 @@ -496,3 +447,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  					media: {
 -						type: 'svg', altText: 'VS Code Settings', path: 'settings.svg'
@@ -1211,7 +1238,7 @@ index df1a6e3..14db691 100644
 +		const productName = localize('!!APP_NAME!! for Web', "{0} for the Web", this.productService.nameLong);
  		const virtualWorkspaceSupport = this.extensionManifestPropertiesService.getExtensionVirtualWorkspaceSupportType(manifest);
 diff --git a/src/vs/workbench/services/extensions/common/extensionsRegistry.ts b/src/vs/workbench/services/extensions/common/extensionsRegistry.ts
-index e1d3d68..3bdf93a 100644
+index c1fc3e3..1a6ff88 100644
 --- a/src/vs/workbench/services/extensions/common/extensionsRegistry.ts
 +++ b/src/vs/workbench/services/extensions/common/extensionsRegistry.ts
 @@ -181,3 +181,3 @@ export const schema: IJSONSchema = {
@@ -1248,22 +1275,22 @@ index e1d3d68..3bdf93a 100644
 -			description: nls.localize('vscode.extension.contributes', 'All contributions of the VS Code extension represented by this package.'),
 +			description: nls.localize('vscode.extension.contributes', 'All contributions of the !!APP_NAME!! extension represented by this package.'),
  			type: 'object',
-@@ -260,3 +260,3 @@ export const schema: IJSONSchema = {
+@@ -261,3 +261,3 @@ export const schema: IJSONSchema = {
  		activationEvents: {
 -			description: nls.localize('vscode.extension.activationEvents', 'Activation events for the VS Code extension.'),
 +			description: nls.localize('vscode.extension.activationEvents', 'Activation events for the !!APP_NAME!! extension.'),
  			type: 'array',
-@@ -427,3 +427,3 @@ export const schema: IJSONSchema = {
+@@ -428,3 +428,3 @@ export const schema: IJSONSchema = {
  						label: '*',
 -						description: nls.localize('vscode.extension.activationEvents.star', 'An activation event emitted on VS Code startup. To ensure a great end user experience, please use this activation event in your extension only when no other activation events combination works in your use-case.'),
 +						description: nls.localize('vscode.extension.activationEvents.star', 'An activation event emitted on !!APP_NAME!! startup. To ensure a great end user experience, please use this activation event in your extension only when no other activation events combination works in your use-case.'),
  						body: '*'
-@@ -599,3 +599,3 @@ export const schema: IJSONSchema = {
+@@ -600,3 +600,3 @@ export const schema: IJSONSchema = {
  				'vscode:prepublish': {
 -					description: nls.localize('vscode.extension.scripts.prepublish', 'Script executed before the package is published as a VS Code extension.'),
 +					description: nls.localize('vscode.extension.scripts.prepublish', 'Script executed before the package is published as a !!APP_NAME!! extension.'),
  					type: 'string'
-@@ -603,3 +603,3 @@ export const schema: IJSONSchema = {
+@@ -604,3 +604,3 @@ export const schema: IJSONSchema = {
  				'vscode:uninstall': {
 -					description: nls.localize('vscode.extension.scripts.uninstall', 'Uninstall hook for VS Code extension. Script that gets executed when the extension is completely uninstalled from VS Code which is when VS Code is restarted (shutdown and start) after the extension is uninstalled. Only Node scripts are supported.'),
 +					description: nls.localize('vscode.extension.scripts.uninstall', 'Uninstall hook for !!APP_NAME!! extension. Script that gets executed when the extension is completely uninstalled from !!APP_NAME!! which is when !!APP_NAME!! is restarted (shutdown and start) after the extension is uninstalled. Only Node scripts are supported.'),

+ 32 - 37
patches/disable-copilot.patch

@@ -1,66 +1,66 @@
 diff --git a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts b/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
-index d5aa998..ea7d567 100644
+index e834924..2f5bdf8 100644
 --- a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
 +++ b/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts
-@@ -183,3 +183,4 @@ abstract class OpenChatGlobalAction extends Action2 {
+@@ -181,3 +181,4 @@ abstract class OpenChatGlobalAction extends Action2 {
  				ChatContextKeys.Setup.hidden.negate(),
 -				ChatContextKeys.Setup.disabled.negate()
 +				ChatContextKeys.Setup.disabled.negate(),
 +				ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
  			)
-@@ -1458,3 +1459,3 @@ export function registerChatActions() {
+@@ -1416,3 +1417,3 @@ export function registerChatActions() {
  				precondition: ContextKeyExpr.and(
 -					ChatContextKeys.Setup.installed,
 +					ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
  					ChatContextKeys.Setup.disabled.negate(),
-@@ -1668,3 +1669,4 @@ MenuRegistry.appendMenuItem(MenuId.CommandCenter, {
+@@ -1631,3 +1632,4 @@ MenuRegistry.appendMenuItem(MenuId.CommandCenter, {
  			ChatContextKeys.Setup.hidden.negate(),
 -			ChatContextKeys.Setup.disabled.negate()
 +			ChatContextKeys.Setup.disabled.negate(),
 +			ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
  		),
-@@ -1685,3 +1687,4 @@ MenuRegistry.appendMenuItem(MenuId.TitleBar, {
+@@ -1648,3 +1650,4 @@ MenuRegistry.appendMenuItem(MenuId.TitleBar, {
  			ChatContextKeys.Setup.hidden.negate(),
 -			ChatContextKeys.Setup.disabled.negate()
 +			ChatContextKeys.Setup.disabled.negate(),
 +			ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
  		),
-@@ -1702,3 +1705,4 @@ registerAction2(class ToggleCopilotControl extends ToggleTitleBarConfigAction {
+@@ -1665,3 +1668,4 @@ registerAction2(class ToggleCopilotControl extends ToggleTitleBarConfigAction {
  					ChatContextKeys.Setup.hidden.negate(),
 -					ChatContextKeys.Setup.disabled.negate()
 +					ChatContextKeys.Setup.disabled.negate(),
 +					ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
  				),
-@@ -1843,3 +1847,4 @@ MenuRegistry.appendMenuItem(MenuId.EditorContext, {
+@@ -1806,3 +1810,4 @@ MenuRegistry.appendMenuItem(MenuId.EditorContext, {
  		ChatContextKeys.Setup.hidden.negate(),
 -		ChatContextKeys.Setup.disabled.negate()
 +		ChatContextKeys.Setup.disabled.negate(),
 +		ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
  	)
-@@ -1876,3 +1881,3 @@ MenuRegistry.appendMenuItem(MenuId.EditorContext, {
+@@ -1839,3 +1844,3 @@ MenuRegistry.appendMenuItem(MenuId.EditorContext, {
  		ChatContextKeys.Setup.disabled.negate(),
 -		ChatContextKeys.Setup.installed.negate(),
 +		ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
  	);
 diff --git a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
-index dbd2125..2f36f7b 100644
+index a7cb31f..fb74640 100644
 --- a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
 +++ b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts
-@@ -174,3 +174,3 @@ configurationRegistry.registerConfiguration({
+@@ -179,3 +179,3 @@ configurationRegistry.registerConfiguration({
  			markdownDescription: nls.localize('chat.commandCenter.enabled', "Controls whether the command center shows a menu for actions to control chat (requires {0}).", '`#window.commandCenter#`'),
 -			default: true
 +			default: false
  		},
-@@ -696,3 +696,3 @@ configurationRegistry.registerConfiguration({
- 			description: nls.localize('chat.disableAIFeatures', "Disable and hide built-in AI features provided by GitHub Copilot, including chat, code completions and next edit suggestions."),
+@@ -705,3 +705,3 @@ configurationRegistry.registerConfiguration({
+ 			description: nls.localize('chat.disableAIFeatures', "Disable and hide built-in AI features provided by GitHub Copilot, including chat and inline suggestions."),
 -			default: false,
 +			default: true,
  			scope: ConfigurationScope.WINDOW
 diff --git a/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts b/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
-index 391a4de..995590c 100644
+index a1c2acb..e41068d 100644
 --- a/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
 +++ b/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.ts
-@@ -67,9 +67,8 @@ const chatViewDescriptor: IViewDescriptor[] = [{
+@@ -67,9 +67,8 @@ const chatViewDescriptor: IViewDescriptor = {
  	ctorDescriptor: new SyncDescriptor(ChatViewPane, [{ location: ChatAgentLocation.Chat }]),
 -	when: ContextKeyExpr.or(
 -		ContextKeyExpr.or(
@@ -76,10 +76,10 @@ index 391a4de..995590c 100644
 +		ChatContextKeys.extensionInvalid.negate()
  	)
 diff --git a/src/vs/workbench/contrib/chat/browser/chatSetup.ts b/src/vs/workbench/contrib/chat/browser/chatSetup.ts
-index 4325d48..53edd2c 100644
+index 45215b1..b485099 100644
 --- a/src/vs/workbench/contrib/chat/browser/chatSetup.ts
 +++ b/src/vs/workbench/contrib/chat/browser/chatSetup.ts
-@@ -953,7 +953,9 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
+@@ -1024,7 +1024,9 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
  					f1: true,
 -					precondition: ContextKeyExpr.or(
 -						ChatContextKeys.Setup.hidden,
@@ -94,35 +94,30 @@ index 4325d48..53edd2c 100644
 +						),
 +						ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
  						ChatContextKeys.Entitlement.canSignUp
-@@ -1069,3 +1071,3 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
+@@ -1140,3 +1142,3 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
  							ChatContextKeys.Setup.hidden.negate(),
 -							ChatContextKeys.Setup.installed.negate(),
 +							ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
  							ChatContextKeys.Entitlement.signedOut
-@@ -1096,2 +1098,3 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
+@@ -1167,2 +1169,3 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
  						ChatContextKeys.Setup.hidden.negate(),
 +						ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
  						ContextKeyExpr.or(
-@@ -1152,2 +1155,3 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
+@@ -1223,2 +1226,3 @@ export class ChatSetupContribution extends Disposable implements IWorkbenchContr
  						ChatContextKeys.Setup.hidden.negate(),
 +						ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
  						ContextKeyExpr.or(
-@@ -1350,3 +1354,3 @@ export class ChatTeardownContribution extends Disposable implements IWorkbenchCo
- 						ChatContextKeys.Setup.hidden.negate(),
--						ChatContextKeys.Setup.installed.negate()
-+						ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
- 					),
-@@ -1356,3 +1360,3 @@ export class ChatTeardownContribution extends Disposable implements IWorkbenchCo
+@@ -1439,3 +1443,3 @@ export class ChatTeardownContribution extends Disposable implements IWorkbenchCo
  						order: 1,
 -						when: ChatContextKeys.Setup.installed.negate()
 +						when: ContextKeyExpr.has('config.chat.disableAIFeatures').negate()
  					}
 diff --git a/src/vs/workbench/contrib/chat/browser/chatStatus.ts b/src/vs/workbench/contrib/chat/browser/chatStatus.ts
-index 05f6f0e..5f7a988 100644
+index 44b987f..0d2bb2c 100644
 --- a/src/vs/workbench/contrib/chat/browser/chatStatus.ts
 +++ b/src/vs/workbench/contrib/chat/browser/chatStatus.ts
-@@ -48,2 +48,3 @@ import { MarkdownRenderer } from '../../../../editor/browser/widget/markdownRend
- import { MarkdownString } from '../../../../base/common/htmlContent.js';
+@@ -48,2 +48,3 @@ import { AGENT_SESSIONS_VIEWLET_ID } from '../common/constants.js';
+ import { ChatUsageWidget } from './chatManagement/chatUsageWidget.js';
 +import { ContextKeyExpr, IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';
  
 @@ -129,2 +130,3 @@ export class ChatStatusBarEntry extends Disposable implements IWorkbenchContribu
@@ -138,10 +133,10 @@ index 05f6f0e..5f7a988 100644
 +
  		this.update();
 diff --git a/src/vs/workbench/contrib/chat/common/chatContextKeys.ts b/src/vs/workbench/contrib/chat/common/chatContextKeys.ts
-index 4877407..d11d315 100644
+index f51121a..db21afb 100644
 --- a/src/vs/workbench/contrib/chat/common/chatContextKeys.ts
 +++ b/src/vs/workbench/contrib/chat/common/chatContextKeys.ts
-@@ -104,4 +104,4 @@ export namespace ChatContextKeyExprs {
+@@ -108,4 +108,4 @@ export namespace ChatContextKeyExprs {
  	 */
 -	export const chatSetupTriggerContext = ContextKeyExpr.or(
 -		ChatContextKeys.Setup.installed.negate(),
@@ -149,33 +144,33 @@ index 4877407..d11d315 100644
 +		ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
  		ChatContextKeys.Entitlement.canSignUp
 diff --git a/src/vs/workbench/contrib/mcp/browser/mcpServersView.ts b/src/vs/workbench/contrib/mcp/browser/mcpServersView.ts
-index 5a12c9d..3e1f23e 100644
+index 7eb3689..be00ca2 100644
 --- a/src/vs/workbench/contrib/mcp/browser/mcpServersView.ts
 +++ b/src/vs/workbench/contrib/mcp/browser/mcpServersView.ts
-@@ -530,3 +530,3 @@ export class McpServersViewsContribution extends Disposable implements IWorkbenc
+@@ -540,3 +540,3 @@ export class McpServersViewsContribution extends Disposable implements IWorkbenc
  				ctorDescriptor: new SyncDescriptor(DefaultBrowseMcpServersView, [{}]),
 -				when: ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext.toNegated(), ChatContextKeys.Setup.hidden.negate(), McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available), ContextKeyExpr.or(ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`), ProductQualityContext.notEqualsTo('stable'), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`))),
 +				when: ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext.toNegated(), ContextKeyExpr.has('config.chat.disableAIFeatures').negate(), ChatContextKeys.Setup.hidden.negate(), McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available), ContextKeyExpr.or(ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`), ProductQualityContext.notEqualsTo('stable'), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`))),
  				weight: 40,
-@@ -545,3 +545,3 @@ export class McpServersViewsContribution extends Disposable implements IWorkbenc
+@@ -555,3 +555,3 @@ export class McpServersViewsContribution extends Disposable implements IWorkbenc
  				ctorDescriptor: new SyncDescriptor(DefaultBrowseMcpServersView, [{ showWelcome: true }]),
 -				when: ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext.toNegated(), ChatContextKeys.Setup.hidden.negate(), McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`).negate(), ProductQualityContext.isEqualTo('stable'), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`).negate()),
 +				when: ContextKeyExpr.and(DefaultViewsContext, HasInstalledMcpServersContext.toNegated(), ContextKeyExpr.has('config.chat.disableAIFeatures').negate(), ChatContextKeys.Setup.hidden.negate(), McpServersGalleryStatusContext.isEqualTo(McpGalleryManifestStatus.Available), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceUrlConfig}`).negate(), ProductQualityContext.isEqualTo('stable'), ContextKeyDefinedExpr.create(`config.${mcpGalleryServiceEnablementConfig}`).negate()),
  				weight: 40,
 diff --git a/src/vs/workbench/contrib/scm/browser/scm.contribution.ts b/src/vs/workbench/contrib/scm/browser/scm.contribution.ts
-index a2d4dc9..3f7a511 100644
+index 8ac7137..aff1630 100644
 --- a/src/vs/workbench/contrib/scm/browser/scm.contribution.ts
 +++ b/src/vs/workbench/contrib/scm/browser/scm.contribution.ts
-@@ -659,3 +659,3 @@ registerAction2(class extends Action2 {
+@@ -685,3 +685,3 @@ registerAction2(class extends Action2 {
  					ChatContextKeys.Setup.disabled.negate(),
 -					ChatContextKeys.Setup.installed.negate(),
 +					ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),
  					ContextKeyExpr.equals('git.activeResourceHasMergeConflicts', true)
 diff --git a/src/vs/workbench/contrib/scm/browser/scmViewPane.ts b/src/vs/workbench/contrib/scm/browser/scmViewPane.ts
-index d32554a..01d3cf6 100644
+index 1b01178..73a7fd4 100644
 --- a/src/vs/workbench/contrib/scm/browser/scmViewPane.ts
 +++ b/src/vs/workbench/contrib/scm/browser/scmViewPane.ts
-@@ -1346,3 +1346,3 @@ registerAction2(class extends Action2 {
+@@ -1360,3 +1360,3 @@ registerAction2(class extends Action2 {
  					ChatContextKeys.Setup.disabled.negate(),
 -					ChatContextKeys.Setup.installed.negate(),
 +					ContextKeyExpr.has('config.chat.disableAIFeatures').negate(),

+ 13 - 41
patches/policies.patch

@@ -1,8 +1,8 @@
 diff --git a/build/.moduleignore b/build/.moduleignore
-index 3e654cf..d9ee9f5 100644
+index 0459b46..49f3c66 100644
 --- a/build/.moduleignore
 +++ b/build/.moduleignore
-@@ -126,9 +126,11 @@ vsda/**
+@@ -128,9 +128,11 @@ vsda/**
  
 -@vscode/policy-watcher/build/**
 -@vscode/policy-watcher/.husky/**
@@ -21,56 +21,28 @@ index 3e654cf..d9ee9f5 100644
 +@vscodium/policy-watcher/index.d.ts
 +!@vscodium/policy-watcher/build/Release/vscodium-policy-watcher.node
  
-diff --git a/build/lib/policies.js b/build/lib/policies.js
-index d2ef760..fa0eea4 100644
---- a/build/lib/policies.js
-+++ b/build/lib/policies.js
-@@ -81,3 +81,3 @@ class BasePolicy {
-         return [
--            `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\Microsoft\\${regKey}" presentation="$(presentation.${this.name})">`,
-+            `<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\!!ORG_NAME!!\\${regKey}" presentation="$(presentation.${this.name})">`,
-             `	<parentCategory ref="${this.category.name.nlsKey}" />`,
-@@ -501,3 +501,3 @@ function renderADMX(regKey, versions, categories, policies) {
- 	<policyNamespaces>
--		<target prefix="${regKey}" namespace="Microsoft.Policies.${regKey}" />
-+		<target prefix="${regKey}" namespace="!!ORG_NAME!!.Policies.${regKey}" />
- 	</policyNamespaces>
-diff --git a/build/lib/policies.ts b/build/lib/policies.ts
-index 381d2f4..9cdec71 100644
---- a/build/lib/policies.ts
-+++ b/build/lib/policies.ts
-@@ -107,3 +107,3 @@ abstract class BasePolicy implements Policy {
- 		return [
--			`<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\Microsoft\\${regKey}" presentation="$(presentation.${this.name})">`,
-+			`<policy name="${this.name}" class="Both" displayName="$(string.${this.name})" explainText="$(string.${this.name}_${this.description.nlsKey.replace(/\./g, '_')})" key="Software\\Policies\\!!ORG_NAME!!\\${regKey}" presentation="$(presentation.${this.name})">`,
- 			`	<parentCategory ref="${this.category.name.nlsKey}" />`,
-@@ -703,3 +703,3 @@ function renderADMX(regKey: string, versions: string[], categories: Category[],
- 	<policyNamespaces>
--		<target prefix="${regKey}" namespace="Microsoft.Policies.${regKey}" />
-+		<target prefix="${regKey}" namespace="!!ORG_NAME!!.Policies.${regKey}" />
- 	</policyNamespaces>
 diff --git a/eslint.config.js b/eslint.config.js
-index 127bb34..44d2b4c 100644
+index 6c74dc2..f721334 100644
 --- a/eslint.config.js
 +++ b/eslint.config.js
-@@ -800,3 +800,3 @@ export default tseslint.config(
+@@ -1854,3 +1854,3 @@ export default tseslint.config(
  						'@vscode/iconv-lite-umd',
 -						'@vscode/policy-watcher',
 +						'@vscodium/policy-watcher',
  						'@vscode/proxy-agent',
 diff --git a/package-lock.json b/package-lock.json
-index 4572a94..9f8c938 100644
+index 34bf479..4345179 100644
 --- a/package-lock.json
 +++ b/package-lock.json
 @@ -18,3 +18,2 @@
-         "@vscode/iconv-lite-umd": "0.7.0",
+         "@vscode/iconv-lite-umd": "0.7.1",
 -        "@vscode/policy-watcher": "^1.3.2",
          "@vscode/proxy-agent": "^0.35.0",
 @@ -29,2 +28,3 @@
          "@vscode/windows-registry": "^1.1.0",
 +        "@vscodium/policy-watcher": "^1.3.2-252465",
-         "@xterm/addon-clipboard": "^0.2.0-beta.102",
-@@ -2960,22 +2960,2 @@
+         "@xterm/addon-clipboard": "^0.2.0-beta.119",
+@@ -2997,22 +2997,2 @@
      },
 -    "node_modules/@vscode/policy-watcher": {
 -      "version": "1.3.2",
@@ -93,7 +65,7 @@ index 4572a94..9f8c938 100644
 -      }
 -    },
      "node_modules/@vscode/proxy-agent": {
-@@ -3372,2 +3352,22 @@
+@@ -3409,2 +3389,22 @@
      },
 +    "node_modules/@vscodium/policy-watcher": {
 +      "version": "1.3.2-252465",
@@ -117,11 +89,11 @@ index 4572a94..9f8c938 100644
 +    },
      "node_modules/@webassemblyjs/ast": {
 diff --git a/package.json b/package.json
-index 8c0fdf3..0817f25 100644
+index 31532a6..d726b8c 100644
 --- a/package.json
 +++ b/package.json
-@@ -79,3 +79,3 @@
-     "@vscode/iconv-lite-umd": "0.7.0",
+@@ -80,3 +80,3 @@
+     "@vscode/iconv-lite-umd": "0.7.1",
 -    "@vscode/policy-watcher": "^1.3.2",
 +    "@vscodium/policy-watcher": "^1.3.2-252465",
      "@vscode/proxy-agent": "^0.35.0",
@@ -238,7 +210,7 @@ index 2a6acba..167d759 100644
 +		assert.ok(typeof watcher.createWatcher === 'function', testErrorMessage('@vscodium/policy-watcher'));
  	});
 diff --git a/src/vs/platform/policy/node/nativePolicyService.ts b/src/vs/platform/policy/node/nativePolicyService.ts
-index 67f7892..840d655 100644
+index 21bb9c4..6a85d60 100644
 --- a/src/vs/platform/policy/node/nativePolicyService.ts
 +++ b/src/vs/platform/policy/node/nativePolicyService.ts
 @@ -8,3 +8,3 @@ import { IStringDictionary } from '../../../base/common/collections.js';

+ 4 - 4
patches/remove-mangle.patch

@@ -1,5 +1,5 @@
 diff --git a/build/lib/compilation.js b/build/lib/compilation.js
-index 61a6d28..831b7c2 100644
+index ac6eae3..45e2610 100644
 --- a/build/lib/compilation.js
 +++ b/build/lib/compilation.js
 @@ -145,24 +145,3 @@ function compileTask(src, out, build, options = {}) {
@@ -28,7 +28,7 @@ index 61a6d28..831b7c2 100644
 -            .pipe(mangleStream)
              .pipe(generator.stream)
 diff --git a/build/lib/compilation.ts b/build/lib/compilation.ts
-index a1de9f1..084fd2f 100644
+index a8b7291..77b2f53 100644
 --- a/build/lib/compilation.ts
 +++ b/build/lib/compilation.ts
 @@ -18,4 +18,2 @@ import File from 'vinyl';
@@ -41,7 +41,7 @@ index a1de9f1..084fd2f 100644
 -		// mangle: TypeScript to TypeScript
 -		let mangleStream = es.through();
 -		if (build && !options.disableMangle) {
--			let ts2tsMangler = new Mangler(compile.projectPath, (...data) => fancyLog(ansiColors.blue('[mangler]'), ...data), { mangleExports: true, manglePrivateFields: true });
+-			let ts2tsMangler: Mangler | undefined = new Mangler(compile.projectPath, (...data) => fancyLog(ansiColors.blue('[mangler]'), ...data), { mangleExports: true, manglePrivateFields: true });
 -			const newContentsByFileName = ts2tsMangler.computeNewFileContents(new Set(['saveState']));
 -			mangleStream = es.through(async function write(data: File & { sourceMap?: RawSourceMap }) {
 -				type TypeScriptExt = typeof ts & { normalizePath(path: string): string };
@@ -57,7 +57,7 @@ index a1de9f1..084fd2f 100644
 -				(await newContentsByFileName).clear();
 -
 -				this.push(null);
--				(<any>ts2tsMangler) = undefined;
+-				ts2tsMangler = undefined;
 -			});
 -		}
 -

+ 13 - 13
patches/sourcemaps.patch

@@ -39,7 +39,7 @@ index 295a977..318ce92 100644
 +	optimize.minifyTask('out-vscode-web', `https://github.com/VSCodium/sourcemaps/releases/download/${product.quality}-${commit}/core`)
  ));
 diff --git a/build/lib/extensions.js b/build/lib/extensions.js
-index c80a1be..25cf259 100644
+index e373688..efa26c9 100644
 --- a/build/lib/extensions.js
 +++ b/build/lib/extensions.js
 @@ -75,4 +75,5 @@ const vzip = require('gulp-vinyl-zip');
@@ -55,7 +55,7 @@ index c80a1be..25cf259 100644
 +                            return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions-${path_1.default.basename(extensionPath).replaceAll('/', '-')}-${relativeOutputPath.replaceAll('/', '-')}-${g1.replaceAll('/', '-')}`;
                          }), 'utf8');
 diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts
-index 9e7cf9f..eed31ca 100644
+index 4779ddb..e19fc36 100644
 --- a/build/lib/extensions.ts
 +++ b/build/lib/extensions.ts
 @@ -30,4 +30,5 @@ const vzip = require('gulp-vinyl-zip');
@@ -71,28 +71,28 @@ index 9e7cf9f..eed31ca 100644
 +								return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions-${path.basename(extensionPath).replaceAll('/', '-')}-${relativeOutputPath.replaceAll('/', '-')}-${g1.replaceAll('/', '-')}`;
  							}), 'utf8');
 diff --git a/build/lib/optimize.js b/build/lib/optimize.js
-index fbc455b..4e7fe85 100644
+index 2ba72a9..4ea70d0 100644
 --- a/build/lib/optimize.js
 +++ b/build/lib/optimize.js
-@@ -186,3 +186,3 @@ function bundleTask(opts) {
+@@ -188,3 +188,3 @@ function bundleTask(opts) {
  function minifyTask(src, sourceMapBaseUrl) {
 -    const sourceMappingURL = sourceMapBaseUrl ? ((f) => `${sourceMapBaseUrl}/${f.relative}.map`) : undefined;
-+    const sourceMappingURL = sourceMapBaseUrl ? ((f) => `${sourceMapBaseUrl}-${f.relative.replaceAll('/', '-')}.map`) : undefined;
-     return cb => {
++	const sourceMappingURL = sourceMapBaseUrl ? ((f) => `${sourceMapBaseUrl}-${f.relative.replaceAll('/', '-')}.map`) : undefined;
+     const target = getBuildTarget();
 diff --git a/build/lib/optimize.ts b/build/lib/optimize.ts
-index d89d0d6..fca30cf 100644
+index 1e824a5..808dbeb 100644
 --- a/build/lib/optimize.ts
 +++ b/build/lib/optimize.ts
-@@ -211,3 +211,3 @@ export function bundleTask(opts: IBundleESMTaskOpts): () => NodeJS.ReadWriteStre
+@@ -225,3 +225,3 @@ export function bundleTask(opts: IBundleESMTaskOpts): () => NodeJS.ReadWriteStre
  export function minifyTask(src: string, sourceMapBaseUrl?: string): (cb: any) => void {
 -	const sourceMappingURL = sourceMapBaseUrl ? ((f: any) => `${sourceMapBaseUrl}/${f.relative}.map`) : undefined;
 +	const sourceMappingURL = sourceMapBaseUrl ? ((f: any) => `${sourceMapBaseUrl}-${f.relative.replaceAll('/', '-')}.map`) : undefined;
- 
+ 	const target = getBuildTarget();
 diff --git a/build/lib/util.js b/build/lib/util.js
-index 389b9e0..f80d8e5 100644
+index 9d2f3b1..62a5afc 100644
 --- a/build/lib/util.js
 +++ b/build/lib/util.js
-@@ -235,4 +235,4 @@ function rewriteSourceMappingURL(sourceMappingURLBase) {
+@@ -237,4 +237,4 @@ function rewriteSourceMappingURL(sourceMappingURLBase) {
          const contents = f.contents.toString('utf8');
 -        const str = `//# sourceMappingURL=${sourceMappingURLBase}/${path_1.default.dirname(f.relative).replace(/\\/g, '/')}/$1`;
 -        f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, str));
@@ -100,10 +100,10 @@ index 389b9e0..f80d8e5 100644
 +        f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, (_m, p) => `//# sourceMappingURL=${sourceMappingURLBase}/${fp}-${p.replaceAll('/', '-')}`));
          return f;
 diff --git a/build/lib/util.ts b/build/lib/util.ts
-index 4931342..833091c 100644
+index 5f3b2f6..7863dd4 100644
 --- a/build/lib/util.ts
 +++ b/build/lib/util.ts
-@@ -285,4 +285,4 @@ export function rewriteSourceMappingURL(sourceMappingURLBase: string): NodeJS.Re
+@@ -286,4 +286,4 @@ export function rewriteSourceMappingURL(sourceMappingURLBase: string): NodeJS.Re
  			const contents = (<Buffer>f.contents).toString('utf8');
 -			const str = `//# sourceMappingURL=${sourceMappingURLBase}/${path.dirname(f.relative).replace(/\\/g, '/')}/$1`;
 -			f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, str));

+ 19 - 5
product.json

@@ -110,7 +110,8 @@
       "terminalShellEnv"
     ],
     "ms-python.vscode-python-envs": [
-      "terminalShellEnv"
+      "terminalShellEnv",
+      "terminalDataWriteEvent"
     ],
     "ms-dotnettools.dotnet-interactive-vscode": [
       "notebookMessaging"
@@ -220,19 +221,25 @@
       "diffCommand",
       "languageModelDataPart",
       "languageModelToolResultAudience",
+      "markdownAlertSyntax",
       "quickDiffProvider",
       "remoteCodingAgents",
       "shareProvider",
       "tabInputTextMerge",
       "tokenInformation",
+      "treeItemMarkdownLabel",
       "treeViewMarkdownMessage"
     ],
     "GitHub.copilot": [
       "inlineCompletionsAdditions",
+      "interactive",
+      "terminalDataWriteEvent",
       "devDeviceId"
     ],
     "GitHub.copilot-nightly": [
       "inlineCompletionsAdditions",
+      "interactive",
+      "terminalDataWriteEvent",
       "devDeviceId"
     ],
     "GitHub.copilot-chat": [
@@ -350,7 +357,6 @@
       "terminalDataWriteEvent",
       "chatParticipantAdditions"
     ],
-    "vscjava.vscode-java-pack": [],
     "ms-dotnettools.csdevkit": [
       "inlineCompletionsAdditions"
     ],
@@ -369,9 +375,6 @@
       "chatParticipantAdditions",
       "languageModelSystem"
     ],
-    "ms-toolsai.datawrangler": [],
-    "ms-vscode.vscode-commander": [],
-    "ms-vscode.vscode-websearchforcopilot": [],
     "ms-vscode.vscode-copilot-vision": [
       "chatReferenceBinaryData",
       "codeActionAI"
@@ -379,6 +382,10 @@
     "ms-autodev.vscode-autodev": [
       "chatParticipantAdditions"
     ],
+    "codetrek.haystack-search": [
+      "fileSearchProvider",
+      "textSearchProvider2"
+    ],
     "vscjava.vscode-java-upgrade": [
       "chatParticipantAdditions",
       "chatParticipantPrivate"
@@ -389,6 +396,13 @@
     "Microsoft.foundry-local-chat": [
       "chatProvider"
     ],
+    "ms-wmcp.windows-mcp-server-extension": [
+      "mcpToolDefinitions"
+    ],
+    "openai.chatgpt": [
+      "languageModelProxy",
+      "chatSessionsProvider"
+    ],
     "jeanp413.open-remote-ssh": [
       "resolvers",
       "tunnels",

+ 2 - 2
upstream/insider.json

@@ -1,4 +1,4 @@
 {
-  "tag": "1.105.0",
-  "commit": "03c265b1adee71ac88f833e065f7bb956b60550a"
+  "tag": "1.106.0",
+  "commit": "13330e1420d478afab7ce453f6d1e307abf7412e"
 }