From 4b57f925494de785716b35b3acabc914e75f1a5d Mon Sep 17 00:00:00 2001 From: Ehab Younes Date: Mon, 20 Apr 2026 18:15:26 +0000 Subject: [PATCH 1/3] chore: upgrade devcontainer to Node 24 on Debian trixie Update the base image from typescript-node:22-bookworm to typescript-node:24-trixie with a pinned digest. Node 24 is backwards compatible and matches the dogfood template. Playwright 1.59+ has full debian13 (trixie) support with correct package names (e.g. libasound2t64). Use --force on pnpm install to suppress the interactive prompt when node_modules needs to be reinstalled from scratch. --- .devcontainer/Dockerfile | 8 +++++--- .devcontainer/README.md | 2 +- .devcontainer/devcontainer.json | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 59f814be..abc32f1f 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,9 +1,11 @@ -FROM mcr.microsoft.com/devcontainers/typescript-node:22-bookworm@sha256:7653612ebf9384fa1cbd32413d8f4fbf7daaf24e39e8664d9fc030de8c0c0af2 +FROM mcr.microsoft.com/devcontainers/typescript-node:24-trixie@sha256:58cdebfe398bd451d5f51a567a00d9880691a17a93236d2be07354b80e6e289e # VS Code/Electron share Chromium's native library requirements; playwright -# install-deps tracks that list upstream. xvfb enables headless test runs. +# install-deps tracks that list upstream. Electron also requires libgtk-3-0t64 +# which Playwright skips (its bundled Chromium doesn't use GTK). +# xvfb enables headless test runs. RUN npx --yes playwright install-deps chromium && \ apt-get update && \ - apt-get install --yes --no-install-recommends xvfb && \ + apt-get install --yes --no-install-recommends libgtk-3-0t64 xauth xvfb && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /root/.npm diff --git a/.devcontainer/README.md b/.devcontainer/README.md index d903d566..458a8bff 100644 --- a/.devcontainer/README.md +++ b/.devcontainer/README.md @@ -2,7 +2,7 @@ [![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/coder/vscode-coder) -A ready-to-code environment matching CI: Node 22, pnpm, and `xvfb` for +A ready-to-code environment with Node 24 on Debian trixie, pnpm, and `xvfb` for headless integration tests. Click the badge above (or run **Dev Containers: Clone Repository in Container Volume…** from the command palette) to spin it up. diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index cc14f5cd..9e388b55 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -14,5 +14,5 @@ ] } }, - "postCreateCommand": "pnpm install --frozen-lockfile" + "postCreateCommand": "pnpm install --frozen-lockfile --force" } From dafe8d2092d248a42c6385264185d21870d7479c Mon Sep 17 00:00:00 2001 From: Ehab Younes Date: Mon, 20 Apr 2026 19:23:18 +0000 Subject: [PATCH 2/3] chore: suppress dbus and GPU warnings in headless tests - Add DBUS_SESSION_BUS_ADDRESS=disabled: in devcontainer containerEnv to prevent Electron from trying to connect to a non-existent D-Bus daemon. - Add --disable-gpu to integration test launchArgs since GPU rendering is unnecessary for automated tests. --- .devcontainer/devcontainer.json | 3 +++ .vscode-test.mjs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 9e388b55..4500d146 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,6 +4,9 @@ "dockerfile": "Dockerfile" }, "remoteUser": "node", + "containerEnv": { + "DBUS_SESSION_BUS_ADDRESS": "disabled:" + }, "customizations": { "vscode": { "extensions": [ diff --git a/.vscode-test.mjs b/.vscode-test.mjs index 8fd4d7e7..7e1e9f66 100644 --- a/.vscode-test.mjs +++ b/.vscode-test.mjs @@ -10,7 +10,7 @@ const baseConfig = { files: "out/test/integration/**/*.test.js", extensionDevelopmentPath: ".", extensionTestsPath: "./out/test", - launchArgs: ["--enable-proposed-api", "coder.coder-remote"], + launchArgs: ["--enable-proposed-api", "coder.coder-remote", "--disable-gpu"], mocha: { ui: "tdd", timeout: 20000, From 92d9f8dee4e86e3bb8ffeda7127082dc287271ff Mon Sep 17 00:00:00 2001 From: Ehab Younes Date: Mon, 20 Apr 2026 19:35:02 +0000 Subject: [PATCH 3/3] chore: revert DBUS_SESSION_BUS_ADDRESS env var The disabled: transport type produces its own parse errors in Chromium, adding noise rather than reducing it. D-Bus warnings in headless containers are harmless cosmetic noise. --- .devcontainer/devcontainer.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4500d146..9e388b55 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,9 +4,6 @@ "dockerfile": "Dockerfile" }, "remoteUser": "node", - "containerEnv": { - "DBUS_SESSION_BUS_ADDRESS": "disabled:" - }, "customizations": { "vscode": { "extensions": [