From ef6d076271b2f49e1617136a60f487824c405b36 Mon Sep 17 00:00:00 2001 From: Simon Siefke Date: Sat, 18 Jul 2026 11:26:57 +0000 Subject: [PATCH 1/3] test: reproduce flaky notification show e2e --- .github/workflows/pr.yml | 47 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index d38a27ccec..6a2860f0a9 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -6,6 +6,53 @@ on: - main jobs: + diagnose-notification-show: + name: notification-show (attempt ${{ matrix.attempt }}) + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + max-parallel: 1 + matrix: + attempt: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] + timeout-minutes: 30 + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version-file: '.nvmrc' + - name: Compute node modules cache key + id: nodeModulesCacheKey + run: echo "value=$(node scripts/computeNodeModulesCacheKey.js)" >> $GITHUB_OUTPUT + shell: bash + - uses: actions/cache@v6 + id: npm-cache + with: + path: | + **/node_modules + **/.vscode-test + **/.vscode-insiders-versions + **/.vscode-user-data-dir + **/.vscode-ffmpeg + **/.vscode-resolve-source-map-cache + key: ${{ runner.os }}-cacheNodeModules-${{ steps.nodeModulesCacheKey.outputs.value }} + - name: npm ci + run: npm ci --ignore-scripts && npm run postinstall + if: steps.npm-cache.outputs.cache-hit != 'true' + - run: npm run build + - name: Run notification-show diagnostic attempt ${{ matrix.attempt }} + uses: coactions/setup-xvfb@v1 + with: + run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure detached-dom-nodes-with-stack-traces --restart-between --run-skipped-tests-anyway --only ^notification-show.ts --workers 1 --record-video + - uses: actions/upload-artifact@v7 + if: always() + with: + name: notification-show-${{ matrix.attempt }} + path: | + ./.vscode-memory-leak-finder-results + ./.vscode-videos + include-hidden-files: true + if-no-files-found: ignore + pr: runs-on: ${{ matrix.os }} strategy: From ec866a301fba8397324085055d87e5771d168955 Mon Sep 17 00:00:00 2001 From: Simon Siefke Date: Sat, 18 Jul 2026 11:28:03 +0000 Subject: [PATCH 2/3] fix: wait for notification command registration --- packages/e2e/src/notification-show.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/e2e/src/notification-show.ts b/packages/e2e/src/notification-show.ts index 50ab5717b4..7bfe945a34 100644 --- a/packages/e2e/src/notification-show.ts +++ b/packages/e2e/src/notification-show.ts @@ -8,6 +8,7 @@ export const setup = async ({ Extensions }: TestContext) => { } export const run = async ({ Notification, QuickPick }: TestContext): Promise => { + await QuickPick.waitForCommand('Hello World') await QuickPick.showCommands() await QuickPick.type('Hello world') await QuickPick.select('Hello World') From 5fb4209ac784f2862a9b9e67bcf0c2bb27ccf220 Mon Sep 17 00:00:00 2001 From: Simon Siefke Date: Sat, 18 Jul 2026 11:33:21 +0000 Subject: [PATCH 3/3] fix: enable extensions for detached dom e2e --- .github/workflows/ci.yml | 2 +- .github/workflows/pr.yml | 2 +- packages/e2e/src/notification-show.ts | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1feb9ffef5..624bdcb17e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -174,7 +174,7 @@ jobs: - name: worker-count args: --measure worker-count - name: detached-dom-nodes-with-stack-traces - args: --measure detached-dom-nodes-with-stack-traces --runs 37 --restart-between --run-skipped-tests-anyway + args: --measure detached-dom-nodes-with-stack-traces --runs 37 --restart-between --run-skipped-tests-anyway --enable-extensions - name: file-descriptor-count args: --measure file-descriptor-count --runs 37 --restart-between --run-skipped-tests-anyway - name: file-descriptors diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 6a2860f0a9..8fcb2127cd 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -42,7 +42,7 @@ jobs: - name: Run notification-show diagnostic attempt ${{ matrix.attempt }} uses: coactions/setup-xvfb@v1 with: - run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure detached-dom-nodes-with-stack-traces --restart-between --run-skipped-tests-anyway --only ^notification-show.ts --workers 1 --record-video + run: node packages/cli/bin/test.js --cwd packages/e2e --check-leaks --measure-after --measure detached-dom-nodes-with-stack-traces --restart-between --run-skipped-tests-anyway --enable-extensions --only ^notification-show.ts --workers 1 --record-video - uses: actions/upload-artifact@v7 if: always() with: diff --git a/packages/e2e/src/notification-show.ts b/packages/e2e/src/notification-show.ts index 7bfe945a34..50ab5717b4 100644 --- a/packages/e2e/src/notification-show.ts +++ b/packages/e2e/src/notification-show.ts @@ -8,7 +8,6 @@ export const setup = async ({ Extensions }: TestContext) => { } export const run = async ({ Notification, QuickPick }: TestContext): Promise => { - await QuickPick.waitForCommand('Hello World') await QuickPick.showCommands() await QuickPick.type('Hello world') await QuickPick.select('Hello World')