Change:
I noticed in the launcher that today's Darwin server has a nested subdirectory, . This broke our launcher (I initially assumed we changed something), and after checking I noticed that it also causes remote ssh to fail since the binaries are no longer in the expected locations: On the launcher side I can verify that pulling in yesterday's version by adding to the URL fixes the issue
The SSH issue was a separate local problem. Looking at the directories, the contents seem mostly the same structure wise. Not sure why it's extracting differently, since it does not seem to affect remote SSH. Looking into it.
Okay, that was a fun investigation. Yesterday's server's download path was But today's was We would only pop off the first segment of the path when unzipping if it matched the zip name. While the zip was renamed, its nested directory was not, and therefore we would end up with an extra segment in the path. I'll change our logic to just always pop off the first segment, though I think having the zip name match any nested directory is pretty standard so I'll leave this open in case this is worth a tweak.
Related to and

Discussion:
set -e # package Remote Extension Host <del> pushd .. && mv vscode-reh-darwin-$(VSCODE_ARCH) vscode-server-darwin && zip -Xry vscode-server-darwin-$(VSCODE_ARCH).zip vscode-server-darwin && popd </del> <ins> pushd .. && mv vscode-reh-darwin-$(VSCODE_ARCH) vscode-server-darwin-$(VSCODE_ARCH) && zip -Xry vscode-server-darwin-$(VSCODE_ARCH).zip vscode-server-darwin-$(VSCODE_ARCH) && popd </ins> # package Remote Extension Host (Web) <del> pushd .. && mv vscode-reh-web-darwin-$(VSCODE_ARCH) vscode-server-darwin-web && zip -Xry vscode-server-darwin-$(VSCODE_ARCH)-web.zip vscode-server-darwin-web && popd </del> <ins> pushd .. && mv vscode-reh-web-darwin-$(VSCODE_ARCH) vscode-server-darwin-$(VSCODE_ARCH)-web && zip -Xry vscode-server-darwin-$(VSCODE_ARCH)-web.zip vscode-server-darwin-$(VSCODE_ARCH)-web && popd </ins> displayName: Prepare to publish servers condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'), ne(variables['VSCODE_ARCH'], 'universal'))

- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0 displayName: Generate SBOM (server) inputs: <del> BuildDropPath: $(agent.builddirectory)/vscode-server-darwin </del> <ins> BuildDropPath: $(agent.builddirectory)/vscode-server-darwin-$(VSCODE_ARCH) </ins> PackageName: Visual Studio Code Server condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'), ne(variables['VSCODE_ARCH'], 'universal')) <del> - publish: $(agent.builddirectory)/vscode-server-darwin/_manifest </del> <ins> - publish: $(agent.builddirectory)/vscode-server-darwin-$(VSCODE_ARCH)/_manifest </ins> displayName: Publish SBOM (server) artifact: vscode_server_darwin_$(VSCODE_ARCH)_sbom condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'), ne(variables['VSCODE_ARCH'], 'universal'))

} else { cp.spawnSync('unzip', [vscodeArchivePath, '-d', `${tempDir}`]); } <del> fs.renameSync(path.join(tempDir, process.platform === 'win32' ? 'vscode-server-win32-x64' : 'vscode-server-darwin'), extractDir); </del> <ins> fs.renameSync(path.join(tempDir, process.platform === 'win32' ? 'vscode-server-win32-x64' : 'vscode-server-darwin-x64'), extractDir); </ins> } else { // tar does not create extractDir by default if (!fs.existsSync(extractDir)) {

#### Web There is no support for testing an old version to a new one yet. <del> Instead, simply configure the `--build` command line argument to point to the absolute path of the extracted server web build folder (e.g. `<rest of path here>/vscode-server-darwin-web` for macOS). The server web build is available from the builds page (see previous subsection). </del> <ins> Instead, simply configure the `--build` command line argument to point to the absolute path of the extracted server web build folder (e.g. `<rest of path here>/vscode-server-darwin-x64-web` for macOS). The server web build is available from the builds page (see previous subsection). </ins> **macOS**: if you have downloaded the server with web bits, make sure to run the following command before unzipping it to avoid security issues on startup: