Jelajahi Sumber

Merge pull request #252 from deepseek-harness/eslint-project-service

chore(lint): one shared project service; ignore harness-local .claude state
Tianyi Cui 2 bulan lalu
induk
melakukan
ee15a01f61
1 mengubah file dengan 12 tambahan dan 2 penghapusan
  1. 12 2
      eslint.config.mjs

+ 12 - 2
eslint.config.mjs

@@ -22,6 +22,7 @@ export default tseslint.config(
       '**/lib/**',
       '**/node_modules/**',
       '**/.sessions/**',
+      '.claude/**', // harness-local state (worktrees, skills) — other checkouts, not this one's sources
       '**/.doc-typecheck-*/**',
       'vendor/**', // vendored source keeps upstream style and idioms
       '**/*.js',
@@ -38,7 +39,14 @@ export default tseslint.config(
     ],
     languageOptions: {
       parserOptions: {
-        project: ['./packages/*/*/tsconfig.json', './tsconfig.json'],
+        // One shared tsserver-style project service instead of 60+ standalone
+        // per-package programs: the old `project` glob built every package's
+        // full dependency closure (sibling sources via the dev `paths` map +
+        // the vendored Cordis stack) as its own program and kept them all
+        // resident — ~5 GB peak, an OOM past node's default heap. The service
+        // resolves each file to its nearest owning tsconfig and shares the
+        // graph.
+        projectService: true,
         tsconfigRootDir: import.meta.dirname,
       },
     },
@@ -89,7 +97,9 @@ export default tseslint.config(
     ],
     languageOptions: {
       parserOptions: {
-        project: ['./tsconfig.json'],
+        // Same shared project service as the src block: test files resolve
+        // through the root tsconfig (its include covers every tests/ tree).
+        projectService: true,
         tsconfigRootDir: import.meta.dirname,
       },
     },