From 885c0a62f81fc804996240b1f231553e6c8a0340 Mon Sep 17 00:00:00 2001 From: cdrci Date: Fri, 25 Sep 2026 16:19:59 +0000 Subject: [PATCH 1/5] Update Code to 1.139.1 --- .node-version | 2 +- CHANGELOG.md | 6 ++++++ lib/vscode | 2 +- patches/copilot.diff | 2 +- patches/display-language.diff | 2 +- patches/getting-started.diff | 6 +++--- patches/local-storage.diff | 4 ++-- patches/marketplace.diff | 2 +- patches/sourcemaps.diff | 2 +- patches/update-check.diff | 2 +- 10 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.node-version b/.node-version index 8dfc5cb1af4f..b7179aed06e8 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -24.18.1 +24.20.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f159ce410f1..33c755fb64a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,12 @@ Code v99.99.999 ## Unreleased +Code v1.139.1 + +### Changed + +- Update to Code 1.139.1 + ### Fixed - `--idle-timeout-seconds` was only validated when passed as `--idle-timeout-seconds=`; diff --git a/lib/vscode b/lib/vscode index 7debcd0e2acd..04c0d99f4fb0 160000 --- a/lib/vscode +++ b/lib/vscode @@ -1 +1 @@ -Subproject commit 7debcd0e2acdea1c52de81bf9ee1620444407dda +Subproject commit 04c0d99f4fb0d8afe6ce4f0c58e31e183ac3e4b1 diff --git a/patches/copilot.diff b/patches/copilot.diff index c66ccdb09cbe..22075a19a478 100644 --- a/patches/copilot.diff +++ b/patches/copilot.diff @@ -44,7 +44,7 @@ Index: code-server/lib/vscode/build/lib/extensions.ts import watcher from './watch/index.ts'; import { createRequire } from 'module'; -@@ -491,6 +492,116 @@ export function packageCopilotExtensionS +@@ -487,6 +488,116 @@ export function packageCopilotExtensionS ).pipe(util2.setExecutableBit(['**/*.sh'])); } diff --git a/patches/display-language.diff b/patches/display-language.diff index ee643972dcee..361bf2f78b05 100644 --- a/patches/display-language.diff +++ b/patches/display-language.diff @@ -56,7 +56,7 @@ Index: code-server/lib/vscode/src/vs/server/node/remoteLanguagePacks.ts import type { INLSConfiguration } from '../../nls.js'; @@ -33,7 +35,94 @@ export async function getNLSConfiguratio if (!result) { - result = resolveNLSConfiguration({ userLocale: language, osLocale: language, commit: product.commit, userDataPath, nlsMetadataPath }); + result = resolveNLSConfiguration({ userLocale: language, osLocale: language, commit: product.commit, nlsMetadataHash: product.nlsMetadataHash, userDataPath, nlsMetadataPath }); nlsConfigurationCache.set(cacheKey, result); + // If the language pack does not yet exist, it defaults to English, which is + // then cached and you have to restart even if you then install the pack. diff --git a/patches/getting-started.diff b/patches/getting-started.diff index a8ba914dfb37..dab9d4144957 100644 --- a/patches/getting-started.diff +++ b/patches/getting-started.diff @@ -19,7 +19,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/welcomeGettingStarted/bro import { renderFormattedText } from '../../../../base/browser/formattedTextRenderer.js'; import { status } from '../../../../base/browser/ui/aria/aria.js'; import { StandardKeyboardEvent } from '../../../../base/browser/keyboardEvent.js'; -@@ -54,7 +54,7 @@ import { IRecentFolder, IRecentWorkspace +@@ -55,7 +55,7 @@ import { IRecentFolder, IRecentWorkspace import { OpenRecentAction } from '../../../browser/actions/windowActions.js'; import { OpenFileFolderAction, OpenFolderAction, OpenFolderViaWorkspaceAction } from '../../../browser/actions/workspaceActions.js'; import { EditorPane } from '../../../browser/parts/editor/editorPane.js'; @@ -28,7 +28,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/welcomeGettingStarted/bro import { IEditorOpenContext, IEditorSerializer } from '../../../common/editor.js'; import { IWebviewElement, IWebviewService } from '../../webview/browser/webview.js'; import './gettingStartedColors.js'; -@@ -928,6 +928,72 @@ export class GettingStartedPage extends +@@ -930,6 +930,72 @@ export class GettingStartedPage extends $('p.subtitle.description', {}, localize({ key: 'gettingStarted.editingEvolved', comment: ['Shown as subtitle on the Welcome page.'] }, "Editing evolved")) ); @@ -101,7 +101,7 @@ Index: code-server/lib/vscode/src/vs/workbench/contrib/welcomeGettingStarted/bro const leftColumn = $('.categories-column.categories-column-left', {},); const rightColumn = $('.categories-column.categories-column-right', {},); -@@ -977,6 +1043,9 @@ export class GettingStartedPage extends +@@ -980,6 +1046,9 @@ export class GettingStartedPage extends recentList.setLimit(5); reset(leftColumn, startList.getDomElement(), recentList.getDomElement()); } diff --git a/patches/local-storage.diff b/patches/local-storage.diff index c42dd189f062..7799e532ed90 100644 --- a/patches/local-storage.diff +++ b/patches/local-storage.diff @@ -66,7 +66,7 @@ Index: code-server/lib/vscode/src/vs/workbench/services/configuration/browser/co =================================================================== --- code-server.orig/lib/vscode/src/vs/workbench/services/configuration/browser/configurationService.ts +++ code-server/lib/vscode/src/vs/workbench/services/configuration/browser/configurationService.ts -@@ -148,8 +148,10 @@ export class WorkspaceService extends Di +@@ -150,8 +150,10 @@ export class WorkspaceService extends Di this.workspaceConfiguration = this._register(new WorkspaceConfiguration(configurationCache, fileService, uriIdentityService, logService)); this._register(this.workspaceConfiguration.onDidUpdateConfiguration(fromCache => { this.onWorkspaceConfigurationChanged(fromCache).then(() => { @@ -79,7 +79,7 @@ Index: code-server/lib/vscode/src/vs/workbench/services/configuration/browser/co }); })); -@@ -561,6 +563,12 @@ export class WorkspaceService extends Di +@@ -563,6 +565,12 @@ export class WorkspaceService extends Di previousFolders = this.workspace.folders; this.workspace.update(workspace); } else { diff --git a/patches/marketplace.diff b/patches/marketplace.diff index efd76c2c01c4..5e867ee61a51 100644 --- a/patches/marketplace.diff +++ b/patches/marketplace.diff @@ -20,7 +20,7 @@ Index: code-server/lib/vscode/src/vs/platform/product/common/product.ts --- code-server.orig/lib/vscode/src/vs/platform/product/common/product.ts +++ code-server/lib/vscode/src/vs/platform/product/common/product.ts @@ -65,6 +65,17 @@ else if (globalThis._VSCODE_PRODUCT_JSON - Object.assign(product, { copilotVersions: { runtime, sdk } }); + Object.assign(product, { copilotVersions: { runtime: packageConfiguration.copilotRuntimeVersion, sdk } }); } } + diff --git a/patches/sourcemaps.diff b/patches/sourcemaps.diff index 22ca7ef04323..fdf69d39a37d 100644 --- a/patches/sourcemaps.diff +++ b/patches/sourcemaps.diff @@ -6,7 +6,7 @@ Index: code-server/lib/vscode/build/gulpfile.reh.ts =================================================================== --- code-server.orig/lib/vscode/build/gulpfile.reh.ts +++ code-server/lib/vscode/build/gulpfile.reh.ts -@@ -344,10 +344,15 @@ function packageTask(type: string, platf +@@ -260,10 +260,15 @@ function packageTask(type: string, platf const destination = path.join(BUILD_ROOT, destinationFolderName); return () => { diff --git a/patches/update-check.diff b/patches/update-check.diff index 682faf18b613..091f787e81c3 100644 --- a/patches/update-check.diff +++ b/patches/update-check.diff @@ -101,7 +101,7 @@ Index: code-server/lib/vscode/src/vs/base/common/product.ts readonly version: string; readonly date?: string; -@@ -145,6 +146,7 @@ export interface IProductConfiguration { +@@ -148,6 +149,7 @@ export interface IProductConfiguration { }; readonly extensionsGallery?: { From f095c524e748bd82750bed7ded90f8a6dc670c06 Mon Sep 17 00:00:00 2001 From: Asher Date: Fri, 25 Sep 2026 12:06:02 -0800 Subject: [PATCH 2/5] Bump proxy-addr to 2.0.8 --- package-lock.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index fe1af8d118f3..91457d08ddbe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5243,9 +5243,9 @@ } }, "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.8.tgz", + "integrity": "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==", "license": "MIT", "dependencies": { "forwarded": "0.2.0", @@ -5253,6 +5253,10 @@ }, "engines": { "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/proxy-agent": { From 03f52fd181418cbc0329b56fd0834933956be83b Mon Sep 17 00:00:00 2001 From: Asher Date: Fri, 25 Sep 2026 12:19:46 -0800 Subject: [PATCH 3/5] Wrap changelog --- CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 33c755fb64a7..04050433c1e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,8 +30,9 @@ Code v1.139.1 ### Fixed -- `--idle-timeout-seconds` was only validated when passed as `--idle-timeout-seconds=`; - values of 60 or less passed as `--idle-timeout-seconds ` were silently accepted. +- `--idle-timeout-seconds` was only validated when passed as + `--idle-timeout-seconds=`; values of 60 or less passed as + `--idle-timeout-seconds ` were silently accepted. ## [4.138.0](https://github.com/coder/code-server/releases/tag/v4.138.0) - 2026-09-19 From 2d12f799b718caf3a1f102cd637c524873788757 Mon Sep 17 00:00:00 2001 From: Asher Date: Fri, 25 Sep 2026 12:52:09 -0800 Subject: [PATCH 4/5] Add preinstall setup to build Already had this in the release build step, not sure why it is not in the main build step. But we started getting errors building native modules in ci, and this might be why. --- .github/workflows/build.yaml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 35208c7c6fb3..fad94320a9f4 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -156,6 +156,7 @@ jobs: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} DISABLE_V8_COMPILE_CACHE: 1 VERSION: 0.0.0 + VSCODE_ARCH: x64 VSCODE_TARGET: linux-x64 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ELECTRON_SKIP_BINARY_DOWNLOAD: 1 @@ -179,13 +180,13 @@ jobs: cache-dependency-path: | package-lock.json test/package-lock.json - - run: SKIP_SUBMODULE_DEPS=1 npm ci - - run: npm run build + # Get Code's git hash. When this changes it means the content is # different and we need to rebuild. - name: Get latest lib/vscode rev id: vscode-rev run: echo "rev=$(git rev-parse HEAD:./lib/vscode)" >> $GITHUB_OUTPUT + # We need to rebuild when we have a new version of Code, when any of the # patches changed, or when the code-server version changes (since it gets # embedded into the code). Use VSCODE_CACHE_VERSION to force a rebuild. @@ -198,10 +199,21 @@ jobs: - name: Build vscode if: steps.cache-vscode.outputs.cache-hit != 'true' run: | - pushd lib/vscode + cd lib/vscode/build + npm ci + cd .. + source ./build/azure-pipelines/linux/setup-env.sh + # Run preinstall script before root dependencies are installed + # so that v8 headers are patched correctly for native modules. + node build/npm/preinstall.ts npm ci - popd + cd ../.. npm run build:vscode + + # Build the code-server wrapper. + - run: SKIP_SUBMODULE_DEPS=1 npm ci + - run: npm run build + # Push up an artifact containing the linux-x64 release. - run: KEEP_MODULES=1 npm run release - run: tar -czf package.tar.gz release From 4f1fd3718e6ac833e1ab7b9539ee0e7709b8557d Mon Sep 17 00:00:00 2001 From: Asher Date: Fri, 25 Sep 2026 14:16:55 -0800 Subject: [PATCH 5/5] Maybe fix quick input It seems to type too quickly before the input is visible. --- test/e2e/extensions.test.ts | 6 +++--- test/e2e/models/CodeServer.ts | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/test/e2e/extensions.test.ts b/test/e2e/extensions.test.ts index 70869c03c062..376bdce3ab5d 100644 --- a/test/e2e/extensions.test.ts +++ b/test/e2e/extensions.test.ts @@ -54,9 +54,9 @@ function runExternalUriTests(proxyEndpointTemplate?: string) { await codeServerPage.waitForTestExtensionLoaded() await codeServerPage.executeCommandViaMenus("code-server: asExternalUri test") - const inputBox = codeServerPage.page.locator(".quick-input-widget input") - await inputBox.fill(input) - await inputBox.press("Enter") + await codeServerPage.page.waitForSelector(".quick-input-widget:focus-within") + await codeServerPage.page.keyboard.type(input) + await codeServerPage.page.keyboard.press("Enter") // The test extension displays URI.toString(), which also encodes query delimiters. const output = `${proxyBase.replace(/\/$/, "")}${suffix}` diff --git a/test/e2e/models/CodeServer.ts b/test/e2e/models/CodeServer.ts index 4017445db752..7423ac9f629a 100644 --- a/test/e2e/models/CodeServer.ts +++ b/test/e2e/models/CodeServer.ts @@ -437,6 +437,7 @@ export class CodeServerPage { async executeCommandViaMenus(command: string) { await this.navigateMenus(["View", "Command Palette..."]) + await this.page.waitForSelector(".quick-input-widget:focus-within") await this.page.keyboard.type(command) await this.page.hover(`text=${command}`)