Skip to content

VSCode dev config: exclude .builders/ + node_modules from watch/search; drop Extension Test Runner recommendation #1022

Description

@amrmelsayed

Problem

Opening the repo in VSCode and accepting the recommended extensions installs ms-vscode.extension-test-runner (listed in .vscode/extensions.json). On a workspace that contains agent-farm builder worktrees (.builders/*/), that extension's test discovery runs:

rg --files --hidden --no-require-git --no-ignore --follow -g <wt>/node_modules/.pnpm/node_modules/codev-vscode/out/test/**/*.test.js

Because --no-ignore skips .gitignore (so node_modules/.builders aren't excluded) and --follow chases symlinks, it walks every builder worktree's pnpm symlink farm. With ~15 worktrees this spawns a flood of rg processes and pegs CPU for ~30s at a time, recurring on file changes.

The cost is entirely in the rg walks — an extension-host CPU profile captured during the storm was ~99% idle, so no extension code is the consumer.

Root cause (both pieces are repo-provided)

  1. .vscode/extensions.json recommends the test-runner extension.
  2. .vscode/settings.json has no files.watcherExclude / search.exclude for .builders/ or node_modules, so VSCode (and any tool it drives) traverses the worktree farm.

The repo both creates the .builders/* worktree farm and recommends an extension that walks it — they collide.

Proposed fix

  • Add to .vscode/settings.json:
    "files.watcherExclude": { "**/.builders/**": true, "**/node_modules/**": true },
    "search.exclude":       { "**/.builders/**": true, "**/node_modules/**": true }
  • Remove ms-vscode.extension-test-runner from .vscode/extensions.json recommendations (keep dbaeumer.vscode-eslint and connor4312.esbuild-problem-matchers, which remain useful for the vscode package). Do not delete the file.
  • Optionally update packages/vscode/vsc-extension-quickstart.md, which also references the test-runner extension.

Notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/configArea: .codev/config.json / workspace setup

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions