From b8f65166c26a36d7f118171e8349a3cd4be093e9 Mon Sep 17 00:00:00 2001 From: Simon Jensen Date: Wed, 6 May 2026 11:08:33 -0700 Subject: [PATCH 1/2] ignore .claude session dirs and tighten tsconfig excludes Adds .gitignore rules to keep transient .claude/ subdirs (notably .claude/worktrees) out of the repo, while preserving tracked agents/commands/hooks/ops/skills/settings.json. Adds defensive directory excludes to tsconfig.json so build/dist/external/ node_modules/.cache/.claude artifacts are never picked up. The 'include' pattern already scopes compilation to src/**/*.mts; these are belt-and- suspenders. Without these, eslint walks .claude/worktrees/* during 'pnpm check' and descends into nested checkouts, which combined with the type-aware projectService config can hang for many minutes. --- .gitignore | 8 ++++++++ tsconfig.json | 12 +++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index e5349663f..438ef8b7b 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,12 @@ Thumbs.db test/fixtures/commands/fix/e2e-test-js-temp-* test/fixtures/commands/fix/e2e-test-py-temp-* +/.claude/* +!/.claude/agents/ +!/.claude/commands/ +!/.claude/hooks/ +!/.claude/ops/ +!/.claude/settings.json +!/.claude/skills/ + !/.vscode/extensions.json diff --git a/tsconfig.json b/tsconfig.json index 635f5bd0b..18d97a40d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,15 @@ { "extends": "./.config/tsconfig.base.json", "include": ["src/**/*.mts"], - "exclude": ["src/**/*.test.mts"] + "exclude": [ + "src/**/*.test.mts", + ".cache/**", + ".claude/**", + "binaries/**", + "build/**", + "dist/**", + "external/**", + "node_modules/**", + "pkg-binaries/**" + ] } From a2e6870e4766bfabefd00ea3436da5e4db615ad8 Mon Sep 17 00:00:00 2001 From: Simon Jensen Date: Mon, 11 May 2026 13:31:40 +0200 Subject: [PATCH 2/2] Ignore local dev tool worktrees --- .gitignore | 1 + .oxlintignore | 2 ++ biome.json | 2 ++ vitest.config.mts | 2 ++ vitest.e2e.config.mts | 7 +++++++ 5 files changed, 14 insertions(+) diff --git a/.gitignore b/.gitignore index 438ef8b7b..d324ab695 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ Thumbs.db /.env /.env.local /.nvm +/.pnpm-store /.rollup.cache /.type-coverage /.vscode diff --git a/.oxlintignore b/.oxlintignore index d8b83df9c..fe681c9f2 100644 --- a/.oxlintignore +++ b/.oxlintignore @@ -1 +1,3 @@ package-lock.json +.claude/worktrees/ +.pnpm-store/ diff --git a/biome.json b/biome.json index 72e2cc852..c2a5fa11f 100644 --- a/biome.json +++ b/biome.json @@ -10,9 +10,11 @@ "!**/.github", "!**/.husky", "!**/.nvm", + "!.pnpm-store", "!**/.rollup.cache", "!**/.type-coverage", "!**/.vscode", + "!.claude/worktrees", "!**/coverage", "!**/package.json", "!**/package-lock.json" diff --git a/vitest.config.mts b/vitest.config.mts index d658a138f..7e330f00c 100644 --- a/vitest.config.mts +++ b/vitest.config.mts @@ -8,6 +8,8 @@ export default defineConfig({ exclude: [ '**/node_modules/**', '**/dist/**', + '.claude/worktrees/**', + '.pnpm-store/**', '**/.{idea,git,cache,output,temp}/**', '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build,eslint,prettier}.config.*', // Exclude E2E tests from regular test runs. diff --git a/vitest.e2e.config.mts b/vitest.e2e.config.mts index 7429ed023..2bd52b8c0 100644 --- a/vitest.e2e.config.mts +++ b/vitest.e2e.config.mts @@ -9,6 +9,13 @@ export default defineConfig({ // from racing on the npm _npx cache directory. fileParallelism: false, include: ['**/*.e2e.test.mts'], + exclude: [ + '**/node_modules/**', + '**/dist/**', + '.claude/worktrees/**', + '.pnpm-store/**', + '**/.{idea,git,cache,output,temp}/**', + ], coverage: { exclude: [ '**/{eslint,vitest}.config.*',