Просмотр исходного кода

feat(1.101): use node-v22.14.0 and update patches (#2387)

Baptiste Augrain 1 неделя назад
Родитель
Сommit
f35cd2e4f9

+ 2 - 2
.github/workflows/insider-linux.yml

@@ -104,7 +104,7 @@ jobs:
       - name: Setup Node.js environment
         uses: actions/setup-node@v4
         with:
-          node-version: '20.19.0'
+          node-version: '22.14.0'
         if: env.SHOULD_BUILD == 'yes'
 
       - name: Setup Python 3
@@ -330,7 +330,7 @@ jobs:
       - name: Setup Node.js environment
         uses: actions/setup-node@v4
         with:
-          node-version: '20.19.0'
+          node-version: '22.14.0'
         if: env.DISABLED != 'yes'
 
       - name: Setup Python 3

+ 1 - 1
.github/workflows/insider-macos.yml

@@ -62,7 +62,7 @@ jobs:
       - name: Setup Node.js environment
         uses: actions/setup-node@v4
         with:
-          node-version: '20.19.0'
+          node-version: '22.14.0'
 
       - name: Setup Python 3
         uses: actions/setup-python@v5

+ 1 - 1
.github/workflows/insider-spearhead.yml

@@ -41,7 +41,7 @@ jobs:
       - name: Setup Node.js environment
         uses: actions/setup-node@v4
         with:
-          node-version: '20.19.0'
+          node-version: '22.14.0'
 
       - name: Clone VSCode repo
         run: . get_repo.sh

+ 2 - 2
.github/workflows/insider-windows.yml

@@ -102,7 +102,7 @@ jobs:
       - name: Setup Node.js environment
         uses: actions/setup-node@v4
         with:
-          node-version: '20.19.0'
+          node-version: '22.14.0'
         if: env.SHOULD_BUILD == 'yes'
 
       - name: Setup Python 3
@@ -183,7 +183,7 @@ jobs:
       - name: Setup Node.js environment
         uses: actions/setup-node@v4
         with:
-          node-version: '20.19.0'
+          node-version: '22.14.0'
         if: env.SHOULD_BUILD == 'yes'
 
       - name: Setup Python 3

+ 2 - 2
.github/workflows/stable-linux.yml

@@ -105,7 +105,7 @@ jobs:
       - name: Setup Node.js environment
         uses: actions/setup-node@v4
         with:
-          node-version: '20.19.0'
+          node-version: '22.14.0'
         if: env.SHOULD_BUILD == 'yes'
 
       - name: Setup Python 3
@@ -331,7 +331,7 @@ jobs:
       - name: Setup Node.js environment
         uses: actions/setup-node@v4
         with:
-          node-version: '20.19.0'
+          node-version: '22.14.0'
         if: env.DISABLED != 'yes'
 
       - name: Setup Python 3

+ 1 - 1
.github/workflows/stable-macos.yml

@@ -61,7 +61,7 @@ jobs:
       - name: Setup Node.js environment
         uses: actions/setup-node@v4
         with:
-          node-version: '20.19.0'
+          node-version: '22.14.0'
 
       - name: Setup Python 3
         uses: actions/setup-python@v5

+ 1 - 1
.github/workflows/stable-spearhead.yml

@@ -36,7 +36,7 @@ jobs:
       - name: Setup Node.js environment
         uses: actions/setup-node@v4
         with:
-          node-version: '20.19.0'
+          node-version: '22.14.0'
 
       - name: Clone VSCode repo
         run: . get_repo.sh

+ 2 - 2
.github/workflows/stable-windows.yml

@@ -101,7 +101,7 @@ jobs:
       - name: Setup Node.js environment
         uses: actions/setup-node@v4
         with:
-          node-version: '20.19.0'
+          node-version: '22.14.0'
         if: env.SHOULD_BUILD == 'yes'
 
       - name: Setup Python 3
@@ -182,7 +182,7 @@ jobs:
       - name: Setup Node.js environment
         uses: actions/setup-node@v4
         with:
-          node-version: '20.19.0'
+          node-version: '22.14.0'
         if: env.SHOULD_BUILD == 'yes'
 
       - name: Setup Python 3

+ 1 - 1
.nvmrc

@@ -1 +1 @@
-20.19.0
+22.14.0

+ 1 - 1
build/linux/package_reh.sh

@@ -18,7 +18,7 @@ cd vscode || { echo "'vscode' dir not found"; exit 1; }
 
 GLIBC_VERSION="2.28"
 GLIBCXX_VERSION="3.4.26"
-NODE_VERSION="20.19.0"
+NODE_VERSION="22.14.0"
 
 export VSCODE_NODEJS_URLROOT='/download/release'
 export VSCODE_NODEJS_URLSUFFIX=''

+ 1 - 1
build/linux/riscv64/electron.sh

@@ -2,5 +2,5 @@
 
 set -ex
 
-export ELECTRON_VERSION="34.5.4"
+export ELECTRON_VERSION="35.4.0"
 export VSCODE_ELECTRON_TAG="v${ELECTRON_VERSION}.riscv1"

+ 11 - 11
build/linux/riscv64/electron.sha256sums

@@ -1,11 +1,11 @@
-b4df0c94e2c9472e78b58610882b356c2d44621d6b9de208317f14641337ff7f *chromedriver-v34.5.4-linux-riscv64.zip
-aca8846305cb2a89d308b6529feb169d17e2a8a22a7f5cbbb42a884752ef3a83 *electron-v34.5.4-linux-riscv64-debug.tar.zst
-69df7d143196fbac6d111648d827a92172f059e268309de7202c0d2122975396 *electron-v34.5.4-linux-riscv64-symbols.tar.zst
-792dfffa0985b478d79264a48a855ba9bbe00d1406d82b0e74013186cbb6b84b *electron-v34.5.4-linux-riscv64.zip
-898df4e8bc7d96f2e9baf2935f4cc8ecc00acb75aa5efcfac3113ed61bd0415e *ffmpeg-v34.5.4-linux-riscv64.zip
-20c9f293ce544af2c0a30f8cecf5428a8001a0b54a874dee37dddcecc4c7c607 *hunspell-dictionaries.zip
-2005156efe24662203f83a9e99459bb9f85b9215678b90cdc275b1d47ce72b50 *libcxx-headers.zip
-c2b7941916618b9538a72417a2231ec3f4c315e07208e9958f51f7518a786be0 *libcxx-objects-v34.5.4-linux-riscv64.zip
-2078a7264654ddf4675a5bade34dee26ad0971480b17899d610e784411968424 *libcxxabi-headers.zip
-4255e0bf4b63857f8be2beb4e226240a20e38810190e0c6be6afb2e293f2bd27 *mksnapshot-v34.5.4-linux-riscv64.zip
-66e001fec2e77ed97099bcd76d1af40e14b3cbadafea7cb1ef52530610061f96 *node-v34.5.4-headers.tar.gz
+62a100f36cb8898ca4df50b6160c5fc72618f4447486a154b3521e2d5ca58a2a *chromedriver-v35.4.0-linux-riscv64.zip
+92408a3b8a0fdb1be0cdf9473b97a4bb5a0ec3351d3519f5a15831b071eaad27 *electron-v35.4.0-linux-riscv64-debug.tar.zst
+7a7fc08874d7dd9f24a27e06ce4f10223d0b81860408a5a6e67441ca7a7a0df9 *electron-v35.4.0-linux-riscv64-symbols.tar.zst
+b61f163296cc498e459a71839d68f7f1e2d9a5e2cb0ac9e85b1e360f437f4ecc *electron-v35.4.0-linux-riscv64.zip
+41cd1f566a422a59370fc8928a73a4255336f7d870f3eeeabed99b56eb482c6d *ffmpeg-v35.4.0-linux-riscv64.zip
+53b80b77c753d06a01349f7cb1c4eec7d4565366a67fd94abb5748f3204b1bd4 *hunspell-dictionaries.zip
+252d1279aeafe27e1e54f10fbf9cf07ef0ae49d5b1ff8c7c9876ebba616a878b *libcxx-headers.zip
+522a5719369b66749cd966963a94db1c5837d5bc4aecf77caf32f99a8978bfaa *libcxx-objects-v35.4.0-linux-riscv64.zip
+48fb04fb8616d48b9a7125e5b6a038b29b5858f170ae65c4e09b576b7931f7ae *libcxxabi-headers.zip
+f2ab79663741550142623e7af5aa0fc62eff200c43a8c42d5476e06ff70858ca *mksnapshot-v35.4.0-linux-riscv64.zip
+2f4c2d4212fd83f284fef12e1feae01d79bbbd1a68ee05128f1717e0ecfb2b17 *node-v35.4.0-headers.tar.gz

+ 7 - 2
dev/update_patches.sh

@@ -24,12 +24,16 @@ check_file() {
   fi
 
   if [[ -f "${1}" ]]; then
+    git apply --reject "../patches/helper/settings.patch"
+    git add .
+    git commit --no-verify -q -m "VSCODIUM HELPER"
+
     echo applying patch: "${1}"
+
     if ! git apply --ignore-whitespace "${1}"; then
       echo failed to apply patch "${1}"
 
       git apply --reject "${1}"
-      git apply --reject "../patches/helper/settings.patch"
 
       read -rp "Press any key when the conflict have been resolved..." -n1 -s
 
@@ -37,8 +41,9 @@ check_file() {
       git add .
       git diff --staged -U1 > "${1}"
     fi
+
     git add .
-    git reset -q --hard HEAD
+    git reset -q --hard HEAD~
   fi
 }
 

+ 1 - 1
patches/alpine/reh/fix-node-docker.patch

@@ -19,5 +19,5 @@ index e12a33e..9300d62 100644
 +
  	log(`Downloading node.js ${nodeVersion} ${platform} ${arch} from docker image ${imageName}`);
 -	const contents = cp.execSync(`docker run --rm ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 100 * 1024 * 1024, encoding: 'buffer' });
-+	const contents = cp.execSync(`docker run --rm ${dockerPlatform} ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 100 * 1024 * 1024, encoding: 'buffer' });
++	const contents = cp.execSync(`docker run --rm ${dockerPlatform} ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 200 * 1024 * 1024, encoding: 'buffer' });
  	return es.readArray([new File({ path: 'node', contents, stat: { mode: parseInt('755', 8) } })]);

+ 74 - 79
patches/brand.patch

@@ -232,10 +232,10 @@ 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 6e66f8d..7c86a69 100644
+index 2b0f961..a316a44 100644
 --- a/extensions/html-language-features/client/src/htmlClient.ts
 +++ b/extensions/html-language-features/client/src/htmlClient.ts
-@@ -108,3 +108,3 @@ export async function startClient(context: ExtensionContext, newLanguageClient:
+@@ -109,3 +109,3 @@ export async function startClient(context: ExtensionContext, newLanguageClient:
  					const configure = l10n.t('Configure');
 -					const res = await window.showInformationMessage(l10n.t('VS Code now has built-in support for auto-renaming tags. Do you want to enable it?'), configure);
 +					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);
@@ -361,31 +361,30 @@ index 7d6694c..83b2599 100644
 +					"comment": "The simpler (?<=\\bProcess\\.|\\bCommandLine\\.) breaks !!APP_NAME!! / Atom, see https://github.com/textmate/swift.tmbundle/issues/29",
  					"name": "support.variable.swift",
 diff --git a/extensions/typescript-language-features/package.nls.json b/extensions/typescript-language-features/package.nls.json
-index 44fa54e..e349c6e 100644
+index 5de96a8..563d7eb 100644
 --- a/extensions/typescript-language-features/package.nls.json
 +++ b/extensions/typescript-language-features/package.nls.json
-@@ -81,4 +81,4 @@
+@@ -80,4 +80,4 @@
  	"configuration.tsserver.experimental.enableProjectDiagnostics": "Enables project wide error reporting.",
 -	"typescript.locale": "Sets the locale used to report JavaScript and TypeScript errors. Defaults to use VS Code's locale.",
 -	"typescript.locale.auto": "Use VS Code's configured display language.",
 +	"typescript.locale": "Sets the locale used to report JavaScript and TypeScript errors. Defaults to use !!APP_NAME!!'s locale.",
 +	"typescript.locale.auto": "Use !!APP_NAME!!'s configured display language.",
  	"configuration.implicitProjectConfig.module": "Sets the module system for the program. See more: https://www.typescriptlang.org/tsconfig#module.",
-@@ -166,3 +166,3 @@
+@@ -163,3 +163,3 @@
  	"typescript.workspaceSymbols.excludeLibrarySymbols": "Exclude symbols that come from library files in `Go to Symbol in Workspace` results. Requires using TypeScript 5.3+ in the workspace.",
 -	"typescript.updateImportsOnFileMove.enabled": "Enable/disable automatic updating of import paths when you rename or move a file in VS Code.",
 +	"typescript.updateImportsOnFileMove.enabled": "Enable/disable automatic updating of import paths when you rename or move a file in !!APP_NAME!!.",
  	"typescript.updateImportsOnFileMove.enabled.prompt": "Prompt on each rename.",
-@@ -173,6 +173,6 @@
+@@ -170,5 +170,5 @@
  	"configuration.suggest.completeJSDocs": "Enable/disable suggestion to complete JSDoc comments.",
 -	"configuration.tsserver.useVsCodeWatcher": "Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace.",
 +	"configuration.tsserver.useVsCodeWatcher": "Use !!APP_NAME!!'s file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace.",
- 	"configuration.tsserver.useVsCodeWatcher.deprecation": "Please use the `#typescript.tsserver.watchOptions#` setting instead.",
  	"configuration.tsserver.watchOptions": "Configure which watching strategies should be used to keep track of files and directories.",
 -	"configuration.tsserver.watchOptions.vscode": "Use VS Code's file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace.",
 +	"configuration.tsserver.watchOptions.vscode": "Use !!APP_NAME!!'s file watchers instead of TypeScript's. Requires using TypeScript 5.4+ in the workspace.",
  	"configuration.tsserver.watchOptions.watchFile": "Strategy for how individual files are watched.",
-@@ -227,6 +227,6 @@
+@@ -222,6 +222,6 @@
  	"configuration.suggest.objectLiteralMethodSnippets.enabled": "Enable/disable snippet completions for methods in object literals.",
 -	"configuration.tsserver.web.projectWideIntellisense.enabled": "Enable/disable project-wide IntelliSense on web. Requires that VS Code is running in a trusted context.",
 +	"configuration.tsserver.web.projectWideIntellisense.enabled": "Enable/disable project-wide IntelliSense on web. Requires that !!APP_NAME!! is running in a trusted context.",
@@ -394,7 +393,7 @@ index 44fa54e..e349c6e 100644
 -	"configuration.tsserver.nodePath": "Run TS Server on a custom Node installation. This can be a path to a Node executable, or 'node' if you want VS Code to detect a Node installation.",
 +	"configuration.tsserver.nodePath": "Run TS Server on a custom Node installation. This can be a path to a Node executable, or 'node' if you want !!APP_NAME!! to detect a Node installation.",
  	"configuration.updateImportsOnPaste": "Automatically update imports when pasting code. Requires TypeScript 5.6+.",
-@@ -242,7 +242,7 @@
+@@ -238,7 +238,7 @@
  	"walkthroughs.nodejsWelcome.debugJsFile.title": "Run and Debug your JavaScript",
 -	"walkthroughs.nodejsWelcome.debugJsFile.description": "Once you've installed Node.js, you can run JavaScript programs at a terminal by entering ``node your-file-name.js``\nAnother easy way to run Node.js programs is by using VS Code's debugger which lets you run your code, pause at different points, and help you understand what's going on step-by-step.\n[Start Debugging](command:javascript-walkthrough.commands.debugJsFile)",
 -	"walkthroughs.nodejsWelcome.debugJsFile.altText": "Debug and run your JavaScript code in Node.js with Visual Studio Code.",
@@ -453,7 +452,7 @@ index 4201d6d..ded6803 100644
 +							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 0d7f87a..6b72fec 100644
+index 440d495..41b94c3 100644
 --- a/extensions/vscode-api-tests/package.json
 +++ b/extensions/vscode-api-tests/package.json
 @@ -2,3 +2,3 @@
@@ -462,7 +461,7 @@ index 0d7f87a..6b72fec 100644
 +  "description": "API tests for !!APP_NAME!!",
    "version": "0.0.1",
 diff --git a/extensions/vscode-colorize-tests/package.json b/extensions/vscode-colorize-tests/package.json
-index b416aee..3f60c26 100644
+index 4959276..41d5ae7 100644
 --- a/extensions/vscode-colorize-tests/package.json
 +++ b/extensions/vscode-colorize-tests/package.json
 @@ -2,3 +2,3 @@
@@ -488,7 +487,7 @@ index 6680753..da1795a 100644
 +		"c": "broken highlighting in !!APP_NAME!!",
  		"t": "source.css.less meta.selector.less meta.group.less meta.property-value.less string.quoted.double.less",
 diff --git a/extensions/vscode-test-resolver/package.json b/extensions/vscode-test-resolver/package.json
-index 8ab2171..0cd1cfb 100644
+index c96c1d5..3288347 100644
 --- a/extensions/vscode-test-resolver/package.json
 +++ b/extensions/vscode-test-resolver/package.json
 @@ -2,3 +2,3 @@
@@ -540,15 +539,15 @@ index 2fab3ec..1195e3d 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 1af3c94..d1a8ea6 100644
+index fc3b6ad..0675813 100644
 --- a/src/main.ts
 +++ b/src/main.ts
-@@ -397,3 +397,3 @@ function createDefaultArgvConfigSync(argvConfigPath: string): void {
+@@ -407,3 +407,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',
-@@ -403,6 +403,6 @@ function createDefaultArgvConfigSync(argvConfigPath: string): void {
+@@ -413,6 +413,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!!.',
@@ -558,7 +557,7 @@ index 1af3c94..d1a8ea6 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 588e1cb..a18f74f 100644
+index d045e6a..f9d8036 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 {
@@ -672,10 +671,10 @@ index 0535ddd..2478997 100644
 +	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 6441394..69955cd 100644
+index db00ad2..299db98 100644
 --- a/src/vs/workbench/api/browser/mainThreadAuthentication.ts
 +++ b/src/vs/workbench/api/browser/mainThreadAuthentication.ts
-@@ -334,3 +334,3 @@ export class MainThreadAuthentication extends Disposable implements MainThreadAu
+@@ -345,3 +345,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';
@@ -690,7 +689,7 @@ index fdf354d..b196297 100644
 +			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"),
  			type: 'string',
 diff --git a/src/vs/workbench/api/common/extHostApiCommands.ts b/src/vs/workbench/api/common/extHostApiCommands.ts
-index 0dc4986..efbe644 100644
+index 436e350..f426464 100644
 --- a/src/vs/workbench/api/common/extHostApiCommands.ts
 +++ b/src/vs/workbench/api/common/extHostApiCommands.ts
 @@ -443,3 +443,3 @@ const newCommands: ApiCommand[] = [
@@ -737,7 +736,7 @@ 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 735e721..0356d59 100644
+index 65d3aa3..1a53779 100644
 --- a/src/vs/workbench/browser/workbench.contribution.ts
 +++ b/src/vs/workbench/browser/workbench.contribution.ts
 @@ -696,3 +696,3 @@ const registry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Con
@@ -746,15 +745,15 @@ index 735e721..0356d59 100644
 +		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 043193f..9311afb 100644
+index 11d1fe3..71751cc 100644
 --- a/src/vs/workbench/contrib/chat/browser/chatSetup.ts
 +++ b/src/vs/workbench/contrib/chat/browser/chatSetup.ts
-@@ -143,3 +143,3 @@ class SetupAgent extends Disposable implements IChatAgentImplementation {
+@@ -141,3 +141,3 @@ class SetupAgent extends Disposable implements IChatAgentImplementation {
  
 -			const { agent, disposable } = SetupAgent.doRegisterAgent(instantiationService, chatAgentService, 'setup.vscode', 'vscode', false, localize2('vscodeAgentDescription', "Ask questions about VS Code").value, ChatAgentLocation.Panel, undefined, context, controller);
 +			const { agent, disposable } = SetupAgent.doRegisterAgent(instantiationService, chatAgentService, 'setup.vscode', 'vscode', false, localize2('vscodeAgentDescription', "Ask questions about !!APP_NAME!!").value, ChatAgentLocation.Panel, undefined, context, controller);
  			disposables.add(disposable);
-@@ -153,4 +153,4 @@ class SetupAgent extends Disposable implements IChatAgentImplementation {
+@@ -149,4 +149,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"),
@@ -771,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 39859b4..5e03ec2 100644
+index 2442c3b..b549091 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({
+@@ -333,3 +333,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({
+@@ -340,3 +340,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({
+@@ -345,3 +345,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({
+@@ -350,3 +350,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
-@@ -879,4 +879,4 @@ class ExtensionsContributions extends Disposable implements IWorkbenchContributi
+@@ -874,4 +874,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."),
@@ -802,7 +801,7 @@ index 39859b4..5e03ec2 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 862d00b..714f0fa 100644
+index 5c24f2d..fafc0d2 100644
 --- a/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
 +++ b/src/vs/workbench/contrib/extensions/browser/extensionsActions.ts
 @@ -108,3 +108,3 @@ export class PromptExtensionInstallFailureAction extends Action {
@@ -826,7 +825,7 @@ index 862d00b..714f0fa 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 8ee497e..41de54a 100644
+index 5aba80e..e7f02ed 100644
 --- a/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
 +++ b/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts
 @@ -468,3 +468,3 @@ export class Extension implements IExtension {
@@ -904,10 +903,10 @@ index 5de0485..177e215 100644
 +								"You can now access this machine anywhere via the secure tunnel [{0}](command:{4}). To connect via a different machine, use the generated [{1}]({2}) link or use the [{6}]({7}) extension in the desktop or web. You can [configure](command:{3}) or [turn off](command:{5}) this access via the !!APP_NAME!! Accounts menu.",
  								connectionInfo.tunnelName, connectionInfo.domain, linkToOpenForMarkdown, RemoteTunnelCommandIds.manage, RemoteTunnelCommandIds.configure, RemoteTunnelCommandIds.turnOff, remoteExtension.friendlyName, 'https://code.visualstudio.com/docs/remote/tunnels'
 diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts
-index 78c67ee..b78fbdc 100644
+index 3205ac9..e258152 100644
 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts
 +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts
-@@ -3199,3 +3199,3 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer
+@@ -3252,3 +3252,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.'));
@@ -927,19 +926,19 @@ index 9db6b8a..cecac9f 100644
 +					description: nls.localize('JsonSchema.promptOnClose', 'Whether the user is prompted when !!APP_NAME!! closes with a running background task.'),
  					default: false
 diff --git a/src/vs/workbench/contrib/tasks/common/jsonSchema_v2.ts b/src/vs/workbench/contrib/tasks/common/jsonSchema_v2.ts
-index 42df6db..99e0383 100644
+index e698eb9..b2a6e63 100644
 --- a/src/vs/workbench/contrib/tasks/common/jsonSchema_v2.ts
 +++ b/src/vs/workbench/contrib/tasks/common/jsonSchema_v2.ts
-@@ -411,3 +411,3 @@ const taskConfiguration: IJSONSchema = {
+@@ -424,3 +424,3 @@ const taskConfiguration: IJSONSchema = {
  			type: 'boolean',
 -			description: nls.localize('JsonSchema.tasks.promptOnClose', 'Whether the user is prompted when VS Code closes with a running task.'),
 +			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/tasks/electron-sandbox/taskService.ts b/src/vs/workbench/contrib/tasks/electron-sandbox/taskService.ts
-index 6a5728c..df166de 100644
+index 71b4a51..7c6a88f 100644
 --- a/src/vs/workbench/contrib/tasks/electron-sandbox/taskService.ts
 +++ b/src/vs/workbench/contrib/tasks/electron-sandbox/taskService.ts
-@@ -213,3 +213,3 @@ export class TaskService extends AbstractTaskService {
+@@ -216,3 +216,3 @@ export class TaskService extends AbstractTaskService {
  						return this._dialogService.confirm({
 -							message: nls.localize('TaskSystem.noProcess', 'The launched task doesn\'t exist anymore. If the task spawned background processes exiting VS Code might result in orphaned processes. To avoid this start the last background process with a wait flag.'),
 +							message: nls.localize('TaskSystem.noProcess', 'The launched task doesn\'t exist anymore. If the task spawned background processes exiting !!APP_NAME!! might result in orphaned processes. To avoid this start the last background process with a wait flag.'),
@@ -954,7 +953,7 @@ index 42ff0ac..8f2f57c 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 28aa98c..a3331fc 100644
+index dca86e0..3547a08 100644
 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts
 +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts
 @@ -314,3 +314,3 @@ const terminalConfiguration: IConfigurationNode = {
@@ -1065,14 +1064,10 @@ index 3f1c098..26bf670 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 949cea7..ccd635d 100644
+index 2381b12..613edff 100644
 --- a/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.ts
 +++ b/src/vs/workbench/contrib/welcomeGettingStarted/common/gettingStartedContent.ts
-@@ -15,3 +15,2 @@ import { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from '../../../../platform/accessi
- import { URI } from '../../../../base/common/uri.js';
--import product from '../../../../platform/product/common/product.js';
- 
-@@ -201,13 +200,2 @@ export const startEntries: GettingStartedStartEntryContent = [
+@@ -203,13 +203,2 @@ export const startEntries: GettingStartedStartEntryContent = [
  	},
 -	{
 -		id: 'topLevelNewWorkspaceChat',
@@ -1086,7 +1081,7 @@ index 949cea7..ccd635d 100644
 -		}
 -	},
  ];
-@@ -216,24 +204,2 @@ const Button = (title: string, href: string) => `[${title}](${href})`;
+@@ -218,24 +207,2 @@ const Button = (title: string, href: string) => `[${title}](${href})`;
  
 -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.", product.defaultChatAgent?.documentationUrl ?? '');
@@ -1111,23 +1106,23 @@ index 949cea7..ccd635d 100644
 -}
 -
  export const walkthroughs: GettingStartedWalkthroughContent = [
-@@ -241,3 +207,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -243,3 +210,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"),
-@@ -246,3 +212,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -248,3 +215,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',
-@@ -251,5 +217,2 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -253,5 +220,2 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  			steps: [
--				createCopilotSetupStep('CopilotSetupSignedOut', CopilotSignedOutButton, 'chatSetupSignedOut', true),
--				createCopilotSetupStep('CopilotSetupComplete', CopilotCompleteButton, 'chatSetupInstalled && (chatPlanPro || chatPlanProPlus || chatPlanBusiness || chatPlanEnterprise || chatPlanLimited)', false),
--				createCopilotSetupStep('CopilotSetupSignedIn', CopilotSignedInButton, '!chatSetupSignedOut && (!chatSetupInstalled || chatPlanCanSignUp)', true),
+-				createCopilotSetupStep('CopilotSetupSignedOut', CopilotSignedOutButton, 'chatEntitlementSignedOut', true),
+-				createCopilotSetupStep('CopilotSetupComplete', CopilotCompleteButton, 'chatSetupInstalled && !chatSetupDisabled && (chatPlanPro || chatPlanProPlus || chatPlanBusiness || chatPlanEnterprise || chatPlanLimited)', false),
+-				createCopilotSetupStep('CopilotSetupSignedIn', CopilotSignedInButton, '!chatEntitlementSignedOut && (!chatSetupInstalled || chatSetupDisabled || chatPlanCanSignUp)', true),
  				{
-@@ -267,6 +230,6 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -269,6 +233,6 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  					title: localize('gettingStarted.extensions.title', "Code with extensions"),
 -					description: localize('gettingStarted.extensionsWeb.description.interpolated', "Extensions are VS Code's power-ups. A growing number are becoming available in the web.\n{0}", Button(localize('browsePopularWeb', "Browse Popular Web Extensions"), 'command:workbench.extensions.action.showPopularExtensions')),
 +					description: localize('gettingStarted.extensionsWeb.description.interpolated', "Extensions are !!APP_NAME!!'s power-ups. A growing number are becoming available in the web.\n{0}", Button(localize('browsePopularWeb', "Browse Popular Web Extensions"), 'command:workbench.extensions.action.showPopularExtensions')),
@@ -1136,7 +1131,7 @@ index 949cea7..ccd635d 100644
 -						type: 'svg', altText: 'VS Code extension marketplace with featured language extensions', path: 'extensions-web.svg'
 +						type: 'svg', altText: '!!APP_NAME!! extension marketplace with featured language extensions', path: 'extensions-web.svg'
  					},
-@@ -282,21 +245,2 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -284,21 +248,2 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  				},
 -				// Hidden in favor of copilot entry (to be revisited when copilot entry moves, if at all)
 -				// {
@@ -1158,17 +1153,17 @@ index 949cea7..ccd635d 100644
 -				// 	},
 -				// },
  				{
-@@ -304,3 +248,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -306,3 +251,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 your extensions to your liking. [Back up and sync](command:workbench.userDataSync.actions.turnOn) your essential customizations across all your 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 your extensions to your liking. [Back up and sync](command:workbench.userDataSync.actions.turnOn) your essential customizations across all your devices.\n{0}", Button(localize('tweakSettings', "Open Settings"), 'command:toSide:workbench.action.openSettings')),
  					when: 'syncStatus != uninitialized',
-@@ -308,3 +252,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -310,3 +255,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  					media: {
 -						type: 'svg', altText: 'VS Code Settings', path: 'settings.svg'
 +						type: 'svg', altText: '!!APP_NAME!! Settings', path: 'settings.svg'
  					},
-@@ -314,24 +258,5 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -316,24 +261,5 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  					title: localize('gettingStarted.commandPalette.title', "Unlock productivity with the Command Palette "),
 -					description: localize('gettingStarted.commandPalette.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.commandPalette.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')),
@@ -1194,24 +1189,24 @@ index 949cea7..ccd635d 100644
 -				// 	}
 -				// },
  				{
-@@ -348,4 +273,4 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -350,4 +276,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' },
  				}
-@@ -357,3 +282,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -359,3 +285,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"),
-@@ -363,3 +288,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -365,3 +291,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  		next: 'Beginner',
 -		walkthroughPageTitle: localize('gettingStarted.setupWeb.walkthroughPageTitle', 'Setup VS Code Web'),
 +		walkthroughPageTitle: localize('gettingStarted.setupWeb.walkthroughPageTitle', 'Setup !!APP_NAME!! Web'),
  		content: {
-@@ -389,6 +314,6 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -391,6 +317,6 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  					title: localize('gettingStarted.extensions.title', "Code with extensions"),
 -					description: localize('gettingStarted.extensionsWeb.description.interpolated', "Extensions are VS Code's power-ups. A growing number are becoming available in the web.\n{0}", Button(localize('browsePopularWeb', "Browse Popular Web Extensions"), 'command:workbench.extensions.action.showPopularExtensions')),
 +					description: localize('gettingStarted.extensionsWeb.description.interpolated', "Extensions are !!APP_NAME!!'s power-ups. A growing number are becoming available in the web.\n{0}", Button(localize('browsePopularWeb', "Browse Popular Web Extensions"), 'command:workbench.extensions.action.showPopularExtensions')),
@@ -1220,7 +1215,7 @@ index 949cea7..ccd635d 100644
 -						type: 'svg', altText: 'VS Code extension marketplace with featured language extensions', path: 'extensions-web.svg'
 +						type: 'svg', altText: '!!APP_NAME!! extension marketplace with featured language extensions', path: 'extensions-web.svg'
  					},
-@@ -404,12 +329,2 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -406,12 +332,2 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  				},
 -				{
 -					id: 'settingsSyncWeb',
@@ -1233,32 +1228,32 @@ index 949cea7..ccd635d 100644
 -					},
 -				},
  				{
-@@ -417,3 +332,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -419,3 +335,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  					title: localize('gettingStarted.commandPalette.title', "Unlock productivity with the Command Palette "),
 -					description: localize('gettingStarted.commandPalette.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.commandPalette.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: 'svg', altText: 'Command Palette overlay for searching and executing commands.', path: 'commandPalette.svg' },
-@@ -423,3 +338,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -425,3 +341,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  					title: localize('gettingStarted.setup.OpenFolder.title', "Open up your code"),
 -					description: localize('gettingStarted.setup.OpenFolderWeb.description.interpolated', "You're all set to start coding. You can open a local project or a remote repository to get your files into VS Code.\n{0}\n{1}", Button(localize('openFolder', "Open Folder"), 'command:workbench.action.addRootFolder'), Button(localize('openRepository', "Open Repository"), 'command:remoteHub.openRepository')),
 +					description: localize('gettingStarted.setup.OpenFolderWeb.description.interpolated', "You're all set to start coding. You can open a local project or a remote repository to get your files into !!APP_NAME!!.\n{0}\n{1}", Button(localize('openFolder', "Open Folder"), 'command:workbench.action.addRootFolder'), Button(localize('openRepository', "Open Repository"), 'command:remoteHub.openRepository')),
  					when: 'workspaceFolderCount == 0',
-@@ -444,3 +359,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -446,3 +362,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  		title: localize('gettingStarted.setupAccessibility.title', "Get Started with Accessibility Features"),
 -		description: localize('gettingStarted.setupAccessibility.description', "Learn the tools and shortcuts that make VS Code accessible. Note that some actions are not actionable from within the context of the walkthrough."),
 +		description: localize('gettingStarted.setupAccessibility.description', "Learn the tools and shortcuts that make !!APP_NAME!! accessible. Note that some actions are not actionable from within the context of the walkthrough."),
  		isFeatured: true,
-@@ -449,3 +364,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -451,3 +367,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  		next: 'Setup',
 -		walkthroughPageTitle: localize('gettingStarted.setupAccessibility.walkthroughPageTitle', 'Setup VS Code Accessibility'),
 +		walkthroughPageTitle: localize('gettingStarted.setupAccessibility.walkthroughPageTitle', 'Setup !!APP_NAME!! Accessibility'),
  		content: {
-@@ -480,3 +395,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -482,3 +398,3 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  					title: localize('gettingStarted.commandPaletteAccessibility.title', "Unlock productivity with the Command Palette "),
 -					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' },
-@@ -553,6 +468,6 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -555,6 +471,6 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  					title: localize('gettingStarted.extensions.title', "Code with extensions"),
 -					description: localize('gettingStarted.extensions.description.interpolated', "Extensions are VS Code's power-ups. They range from handy productivity hacks, expanding out-of-the-box features, to adding completely new capabilities.\n{0}", Button(localize('browsePopular', "Browse Popular Extensions"), 'command:workbench.extensions.action.showPopularExtensions')),
 +					description: localize('gettingStarted.extensions.description.interpolated', "Extensions are !!APP_NAME!!'s power-ups. They range from handy productivity hacks, expanding out-of-the-box features, to adding completely new capabilities.\n{0}", Button(localize('browsePopular', "Browse Popular Extensions"), 'command:workbench.extensions.action.showPopularExtensions')),
@@ -1267,7 +1262,7 @@ index 949cea7..ccd635d 100644
 -						type: 'svg', altText: 'VS Code extension marketplace with featured language extensions', path: 'extensions.svg'
 +						type: 'svg', altText: '!!APP_NAME!! extension marketplace with featured language extensions', path: 'extensions.svg'
  					},
-@@ -670,75 +585,2 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
+@@ -672,75 +588,2 @@ export const walkthroughs: GettingStartedWalkthroughContent = [
  	},
 -	{
 -		id: `${NEW_WELCOME_EXPERIENCE}`,
@@ -1290,18 +1285,18 @@ index 949cea7..ccd635d 100644
 -				},
 -				{
 -					id: 'copilotSetup.inline',
--					title: localize('gettingStarted.nes.title', "Next Edit Suggestions"),
+-					title: localize('gettingStarted.nes.title', "Next edit suggestions"),
 -					description: localize('gettingStarted.nes.description', "Get code suggestions that predict your next edit."),
 -					media: {
--						type: 'svg', altText: 'Next Edit Suggestions', path: 'ai-powered-suggestions.svg'
+-						type: 'svg', altText: 'Next edit suggestions', path: 'ai-powered-suggestions.svg'
 -					},
 -				},
 -				{
 -					id: 'copilotSetup.customize',
 -					title: localize('gettingStarted.customize.title', "Personalized to how you work"),
--					description: localize('gettingStarted.customize.description', "Swap models, add agent mode tools, and create personalized instructions.\n{0}", Button(localize('signUp', "Set up AI"), 'command:workbench.action.chat.triggerSetup')),
+-					description: localize('gettingStarted.customize.description', "Swap models, add agent mode tools, and create personalized instructions.\n{0}", Button(localize('signUp', "Set up AI"), 'command:workbench.action.chat.triggerSetupWithoutDialog')),
 -					media: {
--						type: 'svg', altText: 'Personalize', path: 'multi-file-edits.svg'
+-						type: 'svg', altText: 'Personalize', path: 'customize-ai.svg'
 -					},
 -				},
 -				{
@@ -1382,29 +1377,29 @@ index c512b64..dfa2150 100644
 +				markdownDescription: localize('workspace.trust.emptyWindow.description', "Controls whether or not the empty window is trusted by default within !!APP_NAME!!. When used with `#{0}#`, you can enable the full functionality of !!APP_NAME!! without prompting in an empty window.", WORKSPACE_TRUST_UNTRUSTED_FILES),
  				tags: [WORKSPACE_TRUST_SETTING_TAG],
 diff --git a/src/vs/workbench/electron-sandbox/desktop.contribution.ts b/src/vs/workbench/electron-sandbox/desktop.contribution.ts
-index 88e0091..ec657a1 100644
+index 2d01ada..a8ef64d 100644
 --- a/src/vs/workbench/electron-sandbox/desktop.contribution.ts
 +++ b/src/vs/workbench/electron-sandbox/desktop.contribution.ts
-@@ -364,3 +364,3 @@ import { registerWorkbenchContribution2, WorkbenchPhase } from '../common/contri
+@@ -385,3 +385,3 @@ import { registerWorkbenchContribution2, WorkbenchPhase } from '../common/contri
  		allowTrailingCommas: true,
 -		description: 'VSCode static command line definition file',
 +		description: '!!APP_NAME!! static command line definition file',
  		type: 'object',
-@@ -409,3 +409,3 @@ import { registerWorkbenchContribution2, WorkbenchPhase } from '../common/contri
+@@ -430,3 +430,3 @@ import { registerWorkbenchContribution2, WorkbenchPhase } from '../common/contri
  				type: 'boolean',
 -				description: localize('argv.disableChromiumSandbox', "Disables the Chromium sandbox. This is useful when running VS Code as elevated on Linux and running under Applocker on Windows.")
 +				description: localize('argv.disableChromiumSandbox', "Disables the Chromium sandbox. This is useful when running !!APP_NAME!! as elevated on Linux and running under Applocker on Windows.")
  			},
-@@ -413,3 +413,3 @@ import { registerWorkbenchContribution2, WorkbenchPhase } from '../common/contri
+@@ -434,3 +434,3 @@ import { registerWorkbenchContribution2, WorkbenchPhase } from '../common/contri
  				type: 'boolean',
 -				description: localize('argv.useInMemorySecretStorage', "Ensures that an in-memory store will be used for secret storage instead of using the OS's credential store. This is often used when running VS Code extension tests or when you're experiencing difficulties with the credential store.")
 +				description: localize('argv.useInMemorySecretStorage', "Ensures that an in-memory store will be used for secret storage instead of using the OS's credential store. This is often used when running !!APP_NAME!! extension tests or when you're experiencing difficulties with the credential store.")
  			}
 diff --git a/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts b/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts
-index edfe3a2..71a206f 100644
+index e6805ca..f61cecc 100644
 --- a/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts
 +++ b/src/vs/workbench/services/extensionManagement/common/extensionManagementService.ts
-@@ -1045,3 +1045,3 @@ export class ExtensionManagementService extends CommontExtensionManagementServic
+@@ -1044,3 +1044,3 @@ export class ExtensionManagementService extends CommontExtensionManagementServic
  
 -		const productName = localize('VS Code for Web', "{0} for the Web", this.productService.nameLong);
 +		const productName = localize('!!APP_NAME!! for Web', "{0} for the Web", this.productService.nameLong);
@@ -1468,7 +1463,7 @@ index 859b976..06386e0 100644
 +					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.'),
  					type: 'string'
 diff --git a/src/vs/workbench/services/extensions/electron-sandbox/nativeExtensionService.ts b/src/vs/workbench/services/extensions/electron-sandbox/nativeExtensionService.ts
-index d38ab6b..2469194 100644
+index 0506fdc..cb3c491 100644
 --- a/src/vs/workbench/services/extensions/electron-sandbox/nativeExtensionService.ts
 +++ b/src/vs/workbench/services/extensions/electron-sandbox/nativeExtensionService.ts
 @@ -167,3 +167,3 @@ export class NativeExtensionService extends AbstractExtensionService implements

+ 15 - 10
patches/linux/arch-0-support.patch

@@ -1,5 +1,5 @@
 diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
-index 9410564..c1736f0 100755
+index a148d51..fb2f8ff 100755
 --- a/build/azure-pipelines/linux/setup-env.sh
 +++ b/build/azure-pipelines/linux/setup-env.sh
 @@ -2,3 +2,3 @@
@@ -7,6 +7,11 @@ index 9410564..c1736f0 100755
 -set -e
 +set -ex
  
+@@ -22,3 +22,3 @@ else
+   echo "Downloading remote sysroot"
+-  SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" VSCODE_SYSROOT_PREFIX="-glibc-2.28-gcc-8.5.0" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
++  SYSROOT_ARCH="$SYSROOT_ARCH" VSCODE_SYSROOT_DIR="$VSCODE_REMOTE_SYSROOT_DIR" node -e '(async () => { const { getVSCodeSysroot } = require("./build/linux/debian/install-sysroot.js"); await getVSCodeSysroot(process.env["SYSROOT_ARCH"]); })()'
+ fi
 diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
 index c1d64c0..5ac9f95 100644
 --- a/build/gulpfile.reh.js
@@ -43,10 +48,10 @@ index c1d64c0..5ac9f95 100644
 +			}
  		case 'alpine':
 diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
-index 7046ee0..67cb99a 100644
+index 26a6287..004417f 100644
 --- a/build/gulpfile.vscode.js
 +++ b/build/gulpfile.vscode.js
-@@ -382,2 +382,12 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
+@@ -366,2 +366,12 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
  
 +		const electronOverride = {};
 +		if (process.env.VSCODE_ELECTRON_REPOSITORY) {
@@ -59,31 +64,31 @@ index 7046ee0..67cb99a 100644
 +		}
 +
  		let result = all
-@@ -386,3 +396,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
+@@ -370,3 +380,3 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
  			.pipe(filter(['**', '!**/.github/**'], { dot: true })) // https://github.com/microsoft/vscode/issues/116523
 -			.pipe(electron({ ...config, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false }))
 +			.pipe(electron({ ...config, ...electronOverride, platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: false }))
  			.pipe(filter(['**', '!LICENSE', '!version'], { dot: true }));
 diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
-index 8ac57b9..8580d79 100644
+index 4ef448d..057961c 100644
 --- a/build/linux/debian/dep-lists.js
 +++ b/build/linux/debian/dep-lists.js
-@@ -138,3 +138,3 @@ exports.referenceGeneratedDepsByArch = {
+@@ -140,3 +140,3 @@ exports.referenceGeneratedDepsByArch = {
          'xdg-utils (>= 1.0.2)'
 -    ]
 +    ],
  };
 diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
-index df119e8..91b0ebc 100644
+index 5b7ccd5..707129f 100644
 --- a/build/linux/debian/dep-lists.ts
 +++ b/build/linux/debian/dep-lists.ts
-@@ -138,3 +138,3 @@ export const referenceGeneratedDepsByArch = {
+@@ -140,3 +140,3 @@ export const referenceGeneratedDepsByArch = {
  		'xdg-utils (>= 1.0.2)'
 -	]
 +	],
  };
 diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
-index 16d8d01..532e3d5 100644
+index 612d0a3..8fbdf3d 100644
 --- a/build/linux/debian/install-sysroot.js
 +++ b/build/linux/debian/install-sysroot.js
 @@ -74,3 +74,5 @@ async function fetchUrl(options, retries = 10, retryDelay = 1000) {
@@ -99,7 +104,7 @@ index 16d8d01..532e3d5 100644
 +                    throw new Error(`Could not find asset in release of ${repository} @ ${actualVersion}`);
                  }
 diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
-index aa10e39..6543b49 100644
+index 8a61159..9f3fd15 100644
 --- a/build/linux/debian/install-sysroot.ts
 +++ b/build/linux/debian/install-sysroot.ts
 @@ -83,3 +83,5 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000)

+ 30 - 30
patches/linux/arch-1-ppc64le.patch

@@ -1,24 +1,24 @@
 diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
-index c1736f0..2da5cf9 100755
+index c27358a..3e33f75 100755
 --- a/build/azure-pipelines/linux/setup-env.sh
 +++ b/build/azure-pipelines/linux/setup-env.sh
-@@ -68,2 +68,14 @@ elif [ "$npm_config_arch" == "arm" ]; then
-   export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot -L$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/usr/lib/arm-linux-gnueabihf -L$VSCODE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/lib/arm-linux-gnueabihf"
+@@ -76,2 +76,14 @@ elif [ "$npm_config_arch" == "arm" ]; then
+   export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/usr/lib/arm-linux-gnueabihf -L$VSCODE_REMOTE_SYSROOT_DIR/arm-rpi-linux-gnueabihf/arm-rpi-linux-gnueabihf/sysroot/lib/arm-linux-gnueabihf"
 +elif [ "$npm_config_arch" == "ppc64" ]; then
 +	# Set compiler toolchain for client native modules
-+	export CC=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
-+	export CXX=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
-+	export CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
-+	export LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
++	export CC=$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
++	export CXX=$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
++	export CXXFLAGS="--sysroot=$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
++	export LDFLAGS="--sysroot=$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_CLIENT_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
 +
 +	# Set compiler toolchain for remote server
-+	export VSCODE_REMOTE_CC=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
-+	export VSCODE_REMOTE_CXX=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
-+	export VSCODE_REMOTE_CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
-+	export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
++	export VSCODE_REMOTE_CC=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-gcc
++	export VSCODE_REMOTE_CXX=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/bin/powerpc64le-linux-gnu-g++
++	export VSCODE_REMOTE_CXXFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot"
++	export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
  fi
 diff --git a/build/azure-pipelines/linux/verify-glibc-requirements.sh b/build/azure-pipelines/linux/verify-glibc-requirements.sh
-index c655ce7..c7150f2 100755
+index 5294177..1e33aeb 100755
 --- a/build/azure-pipelines/linux/verify-glibc-requirements.sh
 +++ b/build/azure-pipelines/linux/verify-glibc-requirements.sh
 @@ -9,2 +9,4 @@ elif [ "$VSCODE_ARCH" == "armhf" ]; then
@@ -50,10 +50,10 @@ index aafc64e..484d5f4 100644
 +	{ platform: 'linux', arch: 'ppc64le' },
  ];
 diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
-index 67cb99a..3ed2182 100644
+index 004417f..c38fc1a 100644
 --- a/build/gulpfile.vscode.js
 +++ b/build/gulpfile.vscode.js
-@@ -491,2 +491,3 @@ const BUILD_TARGETS = [
+@@ -475,2 +475,3 @@ const BUILD_TARGETS = [
  	{ platform: 'linux', arch: 'arm64' },
 +	{ platform: 'linux', arch: 'ppc64le' },
  ];
@@ -99,10 +99,10 @@ index addc386..423c415 100644
 +			break;
  	}
 diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
-index 8580d79..a85352e 100644
+index 057961c..ed10661 100644
 --- a/build/linux/debian/dep-lists.js
 +++ b/build/linux/debian/dep-lists.js
-@@ -139,2 +139,41 @@ exports.referenceGeneratedDepsByArch = {
+@@ -141,2 +141,41 @@ exports.referenceGeneratedDepsByArch = {
      ],
 +	'ppc64el': [
 +        'ca-certificates',
@@ -145,10 +145,10 @@ index 8580d79..a85352e 100644
 +    ],
  };
 diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
-index 91b0ebc..0d0f11b 100644
+index 707129f..7fe60be 100644
 --- a/build/linux/debian/dep-lists.ts
 +++ b/build/linux/debian/dep-lists.ts
-@@ -139,2 +139,41 @@ export const referenceGeneratedDepsByArch = {
+@@ -141,2 +141,41 @@ export const referenceGeneratedDepsByArch = {
  	],
 +	'ppc64el': [
 +		'ca-certificates',
@@ -191,7 +191,7 @@ index 91b0ebc..0d0f11b 100644
 +	],
  };
 diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
-index 783db5c..2b63de5 100644
+index 8fbdf3d..011b36f 100644
 --- a/build/linux/debian/install-sysroot.js
 +++ b/build/linux/debian/install-sysroot.js
 @@ -146,2 +146,6 @@ async function getVSCodeSysroot(arch, isMusl = false) {
@@ -202,7 +202,7 @@ index 783db5c..2b63de5 100644
 +            break;
      }
 diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
-index 57cf015..8cfa7f4 100644
+index 9f3fd15..756b7fd 100644
 --- a/build/linux/debian/install-sysroot.ts
 +++ b/build/linux/debian/install-sysroot.ts
 @@ -159,2 +159,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
@@ -235,10 +235,10 @@ index e97485e..43f2434 100644
 +	return ['amd64', 'armhf', 'arm64', 'ppc64el'].includes(s);
  }
 diff --git a/build/linux/rpm/dep-lists.js b/build/linux/rpm/dep-lists.js
-index f45b6f3..4f2ae95 100644
+index 1f19c85..43ac5a0 100644
 --- a/build/linux/rpm/dep-lists.js
 +++ b/build/linux/rpm/dep-lists.js
-@@ -314,2 +314,102 @@ exports.referenceGeneratedDepsByArch = {
+@@ -316,2 +316,102 @@ exports.referenceGeneratedDepsByArch = {
          'xdg-utils'
 +    ],
 +    "ppc64le": [
@@ -342,10 +342,10 @@ index f45b6f3..4f2ae95 100644
 +        'xdg-utils'
      ]
 diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts
-index d277ca7..c6d7761 100644
+index db52338..4231f09 100644
 --- a/build/linux/rpm/dep-lists.ts
 +++ b/build/linux/rpm/dep-lists.ts
-@@ -313,2 +313,102 @@ export const referenceGeneratedDepsByArch = {
+@@ -315,2 +315,102 @@ export const referenceGeneratedDepsByArch = {
  		'xdg-utils'
 +	],
 +	"ppc64le": [
@@ -513,28 +513,28 @@ index 8ea4c0b..b9d3b47 100644
 +    ppc64el) LDCONFIG_ARCH="64bit";;
  esac
 diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
-index f270903..8b028eb 100644
+index e91310f..a28beef 100644
 --- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
 +++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
-@@ -46,2 +46,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
+@@ -47,2 +47,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
  		case TargetPlatform.LINUX_ARMHF: return 'Linux ARM';
 +		case TargetPlatform.LINUX_PPC64LE: return 'Linux PowerPC64';
  
-@@ -69,2 +70,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
+@@ -70,2 +71,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
  		case TargetPlatform.LINUX_ARMHF: return TargetPlatform.LINUX_ARMHF;
 +		case TargetPlatform.LINUX_PPC64LE: return TargetPlatform.LINUX_PPC64LE;
  
-@@ -104,2 +106,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
+@@ -105,2 +107,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
  			}
 +			if (arch === 'ppc64le') {
 +				return TargetPlatform.LINUX_PPC64LE;
 +			}
  			return TargetPlatform.UNKNOWN;
 diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
-index 8e68cbe..23f1bea 100644
+index 0b42527..69d6eb3 100644
 --- a/src/vs/platform/extensions/common/extensions.ts
 +++ b/src/vs/platform/extensions/common/extensions.ts
-@@ -319,2 +319,3 @@ export const enum TargetPlatform {
+@@ -329,2 +329,3 @@ export const enum TargetPlatform {
  	LINUX_ARMHF = 'linux-armhf',
 +	LINUX_PPC64LE = 'linux-ppc64le',
  

+ 31 - 31
patches/linux/arch-4-s390x.patch

@@ -1,27 +1,27 @@
 diff --git a/build/azure-pipelines/linux/setup-env.sh b/build/azure-pipelines/linux/setup-env.sh
-index 2da5cf9..700e199 100755
+index 3e33f75..052b38f 100755
 --- a/build/azure-pipelines/linux/setup-env.sh
 +++ b/build/azure-pipelines/linux/setup-env.sh
-@@ -80,2 +80,14 @@ elif [ "$npm_config_arch" == "ppc64" ]; then
- 	export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
+@@ -88,2 +88,14 @@ elif [ "$npm_config_arch" == "ppc64" ]; then
+ 	export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/usr/lib/powerpc64le-linux-gnu -L$VSCODE_REMOTE_SYSROOT_DIR/powerpc64le-linux-gnu/powerpc64le-linux-gnu/sysroot/lib/powerpc64le-linux-gnu"
 +elif [ "$npm_config_arch" == "s390x" ]; then
 +	# Set compiler toolchain for client native modules
-+	export CC=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-gcc
-+	export CXX=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-g++
-+	export CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot"
-+	export LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/usr/lib/s390x-linux-gnu -L$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/lib/s390x-linux-gnu"
++	export CC=$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-gcc
++	export CXX=$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-g++
++	export CXXFLAGS="--sysroot=$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot"
++	export LDFLAGS="--sysroot=$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot -L$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/usr/lib/s390x-linux-gnu -L$VSCODE_CLIENT_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/lib/s390x-linux-gnu"
 +
 +	# Set compiler toolchain for remote server
-+	export VSCODE_REMOTE_CC=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-gcc
-+	export VSCODE_REMOTE_CXX=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-g++
-+	export VSCODE_REMOTE_CXXFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot"
-+	export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot -L$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/usr/lib/s390x-linux-gnu -L$VSCODE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/lib/s390x-linux-gnu"
++	export VSCODE_REMOTE_CC=$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-gcc
++	export VSCODE_REMOTE_CXX=$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/bin/s390x-linux-gnu-g++
++	export VSCODE_REMOTE_CXXFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot"
++	export VSCODE_REMOTE_LDFLAGS="--sysroot=$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot -L$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/usr/lib/s390x-linux-gnu -L$VSCODE_REMOTE_SYSROOT_DIR/s390x-linux-gnu/s390x-linux-gnu/sysroot/lib/s390x-linux-gnu"
  fi
 diff --git a/build/checksums/vscode-sysroot.txt b/build/checksums/vscode-sysroot.txt
-index db63d02..bbfa533 100644
+index 3fedbe9..3c4e291 100644
 --- a/build/checksums/vscode-sysroot.txt
 +++ b/build/checksums/vscode-sysroot.txt
-@@ -4 +4,2 @@ dbb927408393041664a020661f2641c9785741be3d29b050b9dac58980967784  x86_64-linux-g
+@@ -8 +8,2 @@ f82c8dacbb9dd85819e4801909eb4e842ac12c899632aa75b4839383a18c7501  arm-rpi-linux-
  fa8176d27be18bb0eeb7f55b0fa22255050b430ef68c29136599f02976eb0b1b  powerpc64le-linux-gnu-glibc-2.28.tar.gz
 +7055f3d40e7195fb1e13f0fbaf5ffadf781bddaca5fd5e0d9972f4157a203fb5  s390x-linux-gnu-glibc-2.28.tar.gz
 diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js
@@ -41,10 +41,10 @@ index 8a8c1eb..1ef390b 100644
 +	{ platform: 'linux', arch: 's390x' },
  ];
 diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
-index 1438867..8593b88 100644
+index ee66585..c9f9ceb 100644
 --- a/build/gulpfile.vscode.js
 +++ b/build/gulpfile.vscode.js
-@@ -494,2 +494,3 @@ const BUILD_TARGETS = [
+@@ -478,2 +478,3 @@ const BUILD_TARGETS = [
  	{ platform: 'linux', arch: 'loong64' },
 +	{ platform: 'linux', arch: 's390x' },
  ];
@@ -90,10 +90,10 @@ index 88ee2f0..8037cf2 100644
 +			break;
  	}
 diff --git a/build/linux/debian/dep-lists.js b/build/linux/debian/dep-lists.js
-index 4ccdcd9..ad00020 100644
+index 13cf8f0..9ffd805 100644
 --- a/build/linux/debian/dep-lists.js
 +++ b/build/linux/debian/dep-lists.js
-@@ -218,2 +218,42 @@ exports.referenceGeneratedDepsByArch = {
+@@ -220,2 +220,42 @@ exports.referenceGeneratedDepsByArch = {
      ],
 +    's390x': [
 +        'ca-certificates',
@@ -137,10 +137,10 @@ index 4ccdcd9..ad00020 100644
 +    ],
  };
 diff --git a/build/linux/debian/dep-lists.ts b/build/linux/debian/dep-lists.ts
-index b765492..f7edfda 100644
+index 7e6938a..8a314ec 100644
 --- a/build/linux/debian/dep-lists.ts
 +++ b/build/linux/debian/dep-lists.ts
-@@ -218,2 +218,42 @@ export const referenceGeneratedDepsByArch = {
+@@ -220,2 +220,42 @@ export const referenceGeneratedDepsByArch = {
  	],
 +	's390x': [
 +		'ca-certificates',
@@ -184,10 +184,10 @@ index b765492..f7edfda 100644
 +	],
  };
 diff --git a/build/linux/debian/install-sysroot.js b/build/linux/debian/install-sysroot.js
-index fc2817a..735e42d 100644
+index e510426..ce7c75b 100644
 --- a/build/linux/debian/install-sysroot.js
 +++ b/build/linux/debian/install-sysroot.js
-@@ -148,2 +148,6 @@ async function getVSCodeSysroot(arch) {
+@@ -154,2 +154,6 @@ async function getVSCodeSysroot(arch, isMusl = false) {
  	             break;
 +        case 's390x':
 +            expectedName = `s390x-linux-gnu${prefix}.tar.gz`;
@@ -195,10 +195,10 @@ index fc2817a..735e42d 100644
 +            break;
      }
 diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts
-index 50c28b2..aa30cee 100644
+index 42841f6..cffae59 100644
 --- a/build/linux/debian/install-sysroot.ts
 +++ b/build/linux/debian/install-sysroot.ts
-@@ -162,2 +162,6 @@ export async function getVSCodeSysroot(arch: DebianArchString): Promise<string>
+@@ -167,2 +167,6 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean =
  			break;
 +		case 's390x':
 +			expectedName = `s390x-linux-gnu${prefix}.tar.gz`;
@@ -228,10 +228,10 @@ index 24fe452..9efba5b 100644
 +	return ['amd64', 'armhf', 'arm64', 'ppc64el', 'riscv64', 's390x'].includes(s);
  }
 diff --git a/build/linux/rpm/dep-lists.ts b/build/linux/rpm/dep-lists.ts
-index c6d7761..74c58e0 100644
+index 4231f09..fc70433 100644
 --- a/build/linux/rpm/dep-lists.ts
 +++ b/build/linux/rpm/dep-lists.ts
-@@ -413,2 +413,102 @@ export const referenceGeneratedDepsByArch = {
+@@ -415,2 +415,102 @@ export const referenceGeneratedDepsByArch = {
  		'xdg-utils'
 +	],
 +	"s390x": [
@@ -365,28 +365,28 @@ index 0b7aa4e..e8b7ce0 100644
 +    s390x)   LDCONFIG_ARCH="64bit";;
  esac
 diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts
-index 1a0decd..e657203 100644
+index dedea4c..1043fe4 100644
 --- a/src/vs/platform/extensionManagement/common/extensionManagement.ts
 +++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts
-@@ -47,2 +47,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
+@@ -50,2 +50,3 @@ export function TargetPlatformToString(targetPlatform: TargetPlatform) {
  		case TargetPlatform.LINUX_LOONG64: return 'Linux Loong64';
 +		case TargetPlatform.LINUX_S390X: return 'Linux S390X';
  
-@@ -73,2 +74,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
+@@ -76,2 +77,3 @@ export function toTargetPlatform(targetPlatform: string): TargetPlatform {
  		case TargetPlatform.LINUX_LOONG64: return TargetPlatform.LINUX_LOONG64;
 +		case TargetPlatform.LINUX_S390X: return TargetPlatform.LINUX_S390X;
  
-@@ -117,2 +119,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
+@@ -120,2 +122,5 @@ export function getTargetPlatform(platform: Platform | 'alpine', arch: string |
  			}
 +			if (arch === 's390x') {
 +				return TargetPlatform.LINUX_S390X;
 +			}
  			return TargetPlatform.UNKNOWN;
 diff --git a/src/vs/platform/extensions/common/extensions.ts b/src/vs/platform/extensions/common/extensions.ts
-index 3eb0412..4b5b29b 100644
+index 6d554ce..51d23fa 100644
 --- a/src/vs/platform/extensions/common/extensions.ts
 +++ b/src/vs/platform/extensions/common/extensions.ts
-@@ -322,2 +322,3 @@ export const enum TargetPlatform {
+@@ -332,2 +332,3 @@ export const enum TargetPlatform {
  	LINUX_LOONG64 = 'linux-loong64',
 +	LINUX_S390X = 'linux-s390x',
  

+ 3 - 3
patches/linux/fix-build.patch

@@ -1,19 +1,19 @@
 diff --git a/build/linux/dependencies-generator.js b/build/linux/dependencies-generator.js
-index 448ab38..ffc71f9 100644
+index 7521729..92c0d8e 100644
 --- a/build/linux/dependencies-generator.js
 +++ b/build/linux/dependencies-generator.js
 @@ -27,3 +27,3 @@ const product = require("../../product.json");
  // are valid, are in dep-lists.ts
 -const FAIL_BUILD_FOR_NEW_DEPENDENCIES = true;
 +const FAIL_BUILD_FOR_NEW_DEPENDENCIES = false;
- // Based on https://source.chromium.org/chromium/chromium/src/+/refs/tags/132.0.6834.210:chrome/installer/linux/BUILD.gn;l=64-80
+ // Based on https://source.chromium.org/chromium/chromium/src/+/refs/tags/134.0.6998.205:chrome/installer/linux/BUILD.gn;l=64-80
 @@ -60,3 +60,3 @@ async function getDependencies(packageType, buildDir, applicationName, arch) {
      // Add the tunnel binary.
 -    files.push(path_1.default.join(buildDir, 'bin', product.tunnelApplicationName));
 +    // files.push(path_1.default.join(buildDir, 'bin', product.tunnelApplicationName));
      // Add the main executable.
 diff --git a/build/linux/dependencies-generator.ts b/build/linux/dependencies-generator.ts
-index 6c1f7b7..31cc2a8 100644
+index 9383703..5e6bcf2 100644
 --- a/build/linux/dependencies-generator.ts
 +++ b/build/linux/dependencies-generator.ts
 @@ -25,3 +25,3 @@ import product = require('../../product.json');

+ 5 - 5
patches/policies.patch

@@ -50,16 +50,16 @@ index 34d20e9..8404cdf 100644
 +		<target prefix="${regKey}" namespace="!!ORG_NAME!!.Policies.${regKey}" />
  	</policyNamespaces>
 diff --git a/eslint.config.js b/eslint.config.js
-index f1b01d0..7dca1f1 100644
+index 47aebd4..6c86ef9 100644
 --- a/eslint.config.js
 +++ b/eslint.config.js
-@@ -797,3 +797,3 @@ export default tseslint.config(
+@@ -801,3 +801,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 beb023f..623c8ab 100644
+index d0100d4..2529cad 100644
 --- a/package-lock.json
 +++ b/package-lock.json
 @@ -18,3 +18,2 @@
@@ -69,7 +69,7 @@ index beb023f..623c8ab 100644
 @@ -29,2 +28,3 @@
          "@vscode/windows-registry": "^1.1.0",
 +        "@vscodium/policy-watcher": "^1.3.2-252465",
-         "@xterm/addon-clipboard": "^0.2.0-beta.84",
+         "@xterm/addon-clipboard": "^0.2.0-beta.90",
 @@ -2701,22 +2701,2 @@
      },
 -    "node_modules/@vscode/policy-watcher": {
@@ -117,7 +117,7 @@ index beb023f..623c8ab 100644
 +    },
      "node_modules/@webassemblyjs/ast": {
 diff --git a/package.json b/package.json
-index 8d3443f..e95927c 100644
+index 4be2f9c..657d262 100644
 --- a/package.json
 +++ b/package.json
 @@ -77,3 +77,3 @@

+ 0 - 0
patches/update-electron.patch → patches/update-electron.patch.no


+ 1 - 1
product.json

@@ -228,6 +228,7 @@
       "mappedEditsProvider",
       "aiRelatedInformation",
       "aiSettingsSearch",
+      "chatEditing",
       "codeActionAI",
       "findTextInFiles",
       "findTextInFiles2",
@@ -244,7 +245,6 @@
       "chatReferenceDiagnostic",
       "extensionsAny",
       "authLearnMore",
-      "chatReadonlyPromptReference",
       "testObserver",
       "aiTextSearchProvider",
       "documentFiltersExclusive",

+ 2 - 2
upstream/insider.json

@@ -1,4 +1,4 @@
 {
-  "tag": "1.100.0",
-  "commit": "19e0f9e681ecb8e5c09d8784acaa601316ca4571"
+  "tag": "1.101.0",
+  "commit": "1d7ad01f171443c8b2401f031c2e8f686121515c"
 }