@lzehrung/codegraph-core 2.2.2 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,6 @@
1
1
  import type { BuildOptions } from "../types.js";
2
+ export declare const PROJECT_CACHE_DIRECTORY = ".codegraph";
3
+ export declare const PROJECT_CACHE_RELATIVE_PATH: string;
2
4
  export type CacheAnchorResolution = {
3
5
  anchor: string;
4
6
  layer: "explicit" | "environment" | "manifest" | "git" | "project" | "user";
@@ -11,8 +13,8 @@ export type CacheLocationResolution = CacheAnchorResolution & {
11
13
  /**
12
14
  * Resolves the effective on-disk cache path along with the anchor/layer that actually
13
15
  * produced it. This can differ from `resolveCacheAnchor`'s intended anchor when that
14
- * anchor is not writable (falls back to the project root) or when an existing legacy
15
- * in-project cache is reused instead of the configured anchor.
16
+ * anchor is not writable (falls back to the project root). Project-local legacy caches
17
+ * are migrated to the consolidated cache directory when possible.
16
18
  */
17
19
  export declare function resolveCacheLocation(projectRoot: string, opts?: BuildOptions): CacheLocationResolution;
18
20
  export declare function cacheRoot(projectRoot: string, opts?: BuildOptions): string;
@@ -1 +1 @@
1
- {"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../../src/indexer/build-cache/location.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;CAC7E,CAAC;AA8CF,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,qBAAqB,CAelG;AAED,MAAM,MAAM,uBAAuB,GAAG,qBAAqB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAwB/E;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,uBAAuB,CAqCtG;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,CAE1E"}
1
+ {"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../../../src/indexer/build-cache/location.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,eAAO,MAAM,uBAAuB,eAAe,CAAC;AACpD,eAAO,MAAM,2BAA2B,QAA0D,CAAC;AAGnG,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;CAC7E,CAAC;AA8CF,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,qBAAqB,CAelG;AAED,MAAM,MAAM,uBAAuB,GAAG,qBAAqB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAuD/E;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,uBAAuB,CAwDtG;AACD,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,CAE1E"}
@@ -3,6 +3,9 @@ import fs from "node:fs";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
5
5
  import { fileIdentityKey } from "../../util/paths.js";
6
+ export const PROJECT_CACHE_DIRECTORY = ".codegraph";
7
+ export const PROJECT_CACHE_RELATIVE_PATH = path.join(PROJECT_CACHE_DIRECTORY, "cache", "index-v1");
8
+ const LEGACY_PROJECT_CACHE_RELATIVE_PATH = path.join(".codegraph-cache", "index-v1");
6
9
  function isWritableDirectory(candidate) {
7
10
  try {
8
11
  return fs.statSync(candidate).isDirectory() && fs.accessSync(candidate, fs.constants.W_OK) === undefined;
@@ -86,13 +89,41 @@ function assertAnchorNotForbidden(resolution) {
86
89
  return;
87
90
  throw new Error(`Cache anchor "${resolution.anchor}" (from ${CONFIGURED_ANCHOR_LAYER_LABELS[resolution.layer]}) is the ` +
88
91
  `home directory or a filesystem root. codegraph refuses to use it as a cache root. Use a subdirectory ` +
89
- `instead, e.g. "${path.join(resolution.anchor, ".codegraph-cache")}".`);
92
+ `instead, e.g. "${path.join(resolution.anchor, PROJECT_CACHE_DIRECTORY)}".`);
93
+ }
94
+ function migrateLegacyProjectCache(candidate, legacyCandidates, logLevel) {
95
+ if (fs.existsSync(candidate))
96
+ return;
97
+ const legacy = legacyCandidates.find(({ path: legacyPath }) => fs.existsSync(legacyPath));
98
+ if (!legacy)
99
+ return;
100
+ try {
101
+ fs.mkdirSync(path.dirname(candidate), { recursive: true });
102
+ fs.renameSync(legacy.path, candidate);
103
+ }
104
+ catch (error) {
105
+ if (logLevel === "debug")
106
+ console.debug(`Unable to migrate legacy cache from ${legacy.path}:`, error);
107
+ return;
108
+ }
109
+ let current = path.dirname(legacy.path);
110
+ for (;;) {
111
+ try {
112
+ fs.rmdirSync(current);
113
+ }
114
+ catch {
115
+ break;
116
+ }
117
+ if (fileIdentityKey(current) === fileIdentityKey(legacy.cleanupBoundary))
118
+ break;
119
+ current = path.dirname(current);
120
+ }
90
121
  }
91
122
  /**
92
123
  * Resolves the effective on-disk cache path along with the anchor/layer that actually
93
124
  * produced it. This can differ from `resolveCacheAnchor`'s intended anchor when that
94
- * anchor is not writable (falls back to the project root) or when an existing legacy
95
- * in-project cache is reused instead of the configured anchor.
125
+ * anchor is not writable (falls back to the project root). Project-local legacy caches
126
+ * are migrated to the consolidated cache directory when possible.
96
127
  */
97
128
  export function resolveCacheLocation(projectRoot, opts) {
98
129
  const root = path.resolve(projectRoot);
@@ -103,27 +134,44 @@ export function resolveCacheLocation(projectRoot, opts) {
103
134
  const anchor = anchorWritable ? resolution.anchor : root;
104
135
  const effectiveLayer = anchorWritable ? resolution.layer : "project";
105
136
  const sameRoot = fileIdentityKey(anchor) === fileIdentityKey(root);
106
- if (sameRoot &&
107
- !opts?.cacheDir &&
108
- !process.env.CODEGRAPH_CACHE_DIR?.trim() &&
109
- (!opts?.cacheLocation || opts.cacheLocation === "project")) {
110
- return { path: path.join(root, ".codegraph-cache", "index-v1"), anchor, layer: effectiveLayer };
137
+ const explicitBase = opts?.cacheDir?.trim() || process.env.CODEGRAPH_CACHE_DIR?.trim();
138
+ if (sameRoot && !explicitBase && (!opts?.cacheLocation || opts.cacheLocation === "project")) {
139
+ const candidate = path.join(root, PROJECT_CACHE_RELATIVE_PATH);
140
+ migrateLegacyProjectCache(candidate, [
141
+ {
142
+ path: path.join(root, LEGACY_PROJECT_CACHE_RELATIVE_PATH),
143
+ cleanupBoundary: path.join(root, ".codegraph-cache"),
144
+ },
145
+ ], opts?.logLevel);
146
+ return { path: candidate, anchor, layer: effectiveLayer };
111
147
  }
112
148
  const namespace = projectCacheNamespace(root, effectiveLayer === "git" || effectiveLayer === "manifest" ? anchor : undefined);
113
- const explicitBase = opts?.cacheDir?.trim() || process.env.CODEGRAPH_CACHE_DIR?.trim();
114
149
  if (explicitBase) {
115
150
  const configured = path.resolve(explicitBase);
116
151
  const configuredPath = path.basename(configured) === namespace ? configured : path.join(configured, namespace);
117
152
  return { path: configuredPath, anchor, layer: effectiveLayer };
118
153
  }
119
- const base = opts?.cacheLocation === "user" ? resolveCodegraphUserCacheRoot() : path.join(anchor, ".codegraph-cache");
120
- const candidate = path.join(path.resolve(base), "index-v1", namespace);
154
+ if (opts?.cacheLocation === "user") {
155
+ return {
156
+ path: path.join(resolveCodegraphUserCacheRoot(), "index-v1", namespace),
157
+ anchor,
158
+ layer: effectiveLayer,
159
+ };
160
+ }
161
+ const candidate = path.join(anchor, PROJECT_CACHE_RELATIVE_PATH, namespace);
162
+ const legacyCandidates = [
163
+ {
164
+ path: path.join(anchor, LEGACY_PROJECT_CACHE_RELATIVE_PATH, namespace),
165
+ cleanupBoundary: path.join(anchor, ".codegraph-cache"),
166
+ },
167
+ ];
121
168
  if (!sameRoot && !opts?.cacheLocation) {
122
- const legacy = path.join(root, ".codegraph-cache", "index-v1");
123
- if (!fs.existsSync(candidate) && fs.existsSync(legacy)) {
124
- return { path: legacy, anchor: root, layer: "project" };
125
- }
169
+ legacyCandidates.push({
170
+ path: path.join(root, LEGACY_PROJECT_CACHE_RELATIVE_PATH),
171
+ cleanupBoundary: path.join(root, ".codegraph-cache"),
172
+ });
126
173
  }
174
+ migrateLegacyProjectCache(candidate, legacyCandidates, opts?.logLevel);
127
175
  return { path: candidate, anchor, layer: effectiveLayer };
128
176
  }
129
177
  export function cacheRoot(projectRoot, opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"location.js","sourceRoot":"","sources":["../../../src/indexer/build-cache/location.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"location.js","sourceRoot":"","sources":["../../../src/indexer/build-cache/location.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,10 @@ import { type LogLevel } from "../logging.js";
5
5
  * hung credential helper cannot pin an MCP request indefinitely.
6
6
  */
7
7
  export declare const DEFAULT_GIT_TIMEOUT_MS = 30000;
8
+ type GitExcludeFile = {
9
+ file: string;
10
+ baseDir: string;
11
+ };
8
12
  /** Decodes Git's optional C-style quoted pathname representation without trimming legal path bytes. */
9
13
  export declare function decodeGitPath(rawPath: string): string;
10
14
  /** Test-only override of the Git executable path. Pass null to restore. */
@@ -19,8 +23,10 @@ export type RunGitOptions = {
19
23
  pid?: number;
20
24
  }) => void) | undefined;
21
25
  };
22
- /** Test-only: drop memoized `isGitRepo` promises. */
26
+ /** Test-only: drop memoized Git repository checks. */
23
27
  export declare function clearGitRepositoryCheckCacheForTests(): void;
28
+ /** Test-only: drop memoized Git discovery facts. */
29
+ export declare function clearGitDiscoveryCacheForTests(): void;
24
30
  /**
25
31
  * Central bounded Git execution: timeout + optional AbortSignal, always kills the child.
26
32
  * Preserves stderr/stdout in rejection messages for diagnosis.
@@ -37,6 +43,11 @@ export declare function getGitHead(projectRoot: string): Promise<string | null>;
37
43
  export declare function isGitRepo(projectRoot: string): Promise<boolean>;
38
44
  export declare function isGitPathTracked(projectRoot: string, file: string): Promise<boolean>;
39
45
  export declare function isGitPathIgnored(projectRoot: string, file: string): Promise<boolean>;
46
+ /**
47
+ * Whether Git ignores the requested project root. This value is static for a root during
48
+ * process lifetime and lets repeated discovery avoid spawning `git check-ignore`.
49
+ */
50
+ export declare function isGitProjectRootIgnored(projectRoot: string): Promise<boolean>;
40
51
  export declare function getGitBlobHashes(projectRoot: string, files: string[], opts?: {
41
52
  gitAvailable?: boolean;
42
53
  logLevel?: LogLevel;
@@ -52,6 +63,59 @@ export declare function listChangedFiles(projectRoot: string, opts: {
52
63
  base?: string | undefined;
53
64
  head?: string | undefined;
54
65
  }): Promise<string[]>;
66
+ /**
67
+ * List files Git tracks under `projectRoot`, as absolute normalized paths.
68
+ *
69
+ * Paired with `listUntrackedFiles` this enumerates exactly the working-tree files
70
+ * Git considers part of the project, which is the indexable candidate set: Git
71
+ * applies ignore rules while walking, so ignored trees are never descended into.
72
+ * A recursive directory scan instead costs O(files on disk), which on trees full
73
+ * of generated artifacts is orders of magnitude larger than the project itself.
74
+ * `recurseSubmodules` also lists files tracked inside initialized submodules, whose
75
+ * contents are otherwise invisible here: a submodule is a separate repository, so the
76
+ * superproject records only a gitlink and reports nothing under it. Paths stay relative
77
+ * to `projectRoot`, so they resolve the same way as the non-recursive listing.
78
+ *
79
+ * Deliberately no pathspec arguments: one argv entry per file hits Windows'
80
+ * ~32,767-character command-line limit past roughly 1,100 files. Full-repo NUL
81
+ * listings can also exceed Node's default 1 MiB stdout buffer on large trees, so
82
+ * this raises `maxBuffer` for the same reason `getGitBlobHashes` does.
83
+ */
84
+ export declare function listTrackedFiles(projectRoot: string, opts?: {
85
+ gitAvailable?: boolean;
86
+ logLevel?: LogLevel;
87
+ recurseSubmodules?: boolean;
88
+ }): Promise<string[]>;
89
+ /**
90
+ * Directories of initialized submodules under `projectRoot`, as absolute paths.
91
+ *
92
+ * Read from the index rather than `.gitmodules` so the result reflects what Git
93
+ * actually tracks: a gitlink entry carries mode 160000. Callers enumerating untracked
94
+ * files need this because `--recurse-submodules` cannot combine with `--others`, so
95
+ * untracked files inside a submodule require a separate listing rooted there.
96
+ *
97
+ * `recurse` descends into each submodule to find gitlinks it records in turn. A
98
+ * superproject's index lists only its own direct submodules, so without this a new
99
+ * file inside a submodule of a submodule is invisible to untracked enumeration even
100
+ * though the tracked listing recurses all the way down.
101
+ */
102
+ export declare function listGitSubmoduleDirectories(projectRoot: string, opts?: {
103
+ gitAvailable?: boolean;
104
+ recurse?: boolean;
105
+ }): Promise<string[]>;
106
+ /**
107
+ * Git's non-`.gitignore` ignore sources for `projectRoot`, paired with the directory
108
+ * their patterns resolve against.
109
+ *
110
+ * Git consults the per-repository exclude file and the user's `core.excludesFile` in
111
+ * addition to `.gitignore`, and matches both as if declared at the repository root.
112
+ * Callers that filter paths Git never listed need these or they apply a strictly
113
+ * narrower rule set than Git did. Missing or unset sources are omitted rather than
114
+ * treated as an error, since neither is required to exist.
115
+ */
116
+ export declare function listGitExcludeFiles(projectRoot: string, opts?: {
117
+ gitAvailable?: boolean;
118
+ }): Promise<GitExcludeFile[]>;
55
119
  /**
56
120
  * List files in the working tree that Git does not track (new, uncommitted files).
57
121
  *
@@ -78,4 +142,5 @@ export declare function getUnifiedDiff(projectRoot: string, opts: {
78
142
  base?: string | undefined;
79
143
  head?: string | undefined;
80
144
  }): Promise<string>;
145
+ export {};
81
146
  //# sourceMappingURL=git.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":"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"}
package/dist/util/git.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { StringDecoder } from "node:string_decoder";
3
+ import fsp from "node:fs/promises";
4
+ import os from "node:os";
3
5
  import path from "node:path";
4
6
  import { stringifyUnknown } from "./ast.js";
5
7
  import { normalizePath } from "./paths.js";
@@ -11,6 +13,8 @@ import { logWithLevel } from "../logging.js";
11
13
  */
12
14
  export const DEFAULT_GIT_TIMEOUT_MS = 30_000;
13
15
  const gitRepositoryChecks = new Map();
16
+ const gitDiscoveryRootIgnoredChecks = new Map();
17
+ const gitExcludeFileChecks = new Map();
14
18
  const MAX_GIT_HASH_OBJECT_ARGUMENT_BYTES = 24 * 1024;
15
19
  let gitExecutableForTests = null;
16
20
  /** Git's C-style path quoting single-character escapes for otherwise-unrepresentable control bytes. */
@@ -65,10 +69,15 @@ export function decodeGitPath(rawPath) {
65
69
  export function setGitExecutableForTests(executable) {
66
70
  gitExecutableForTests = executable;
67
71
  }
68
- /** Test-only: drop memoized `isGitRepo` promises. */
72
+ /** Test-only: drop memoized Git repository checks. */
69
73
  export function clearGitRepositoryCheckCacheForTests() {
70
74
  gitRepositoryChecks.clear();
71
75
  }
76
+ /** Test-only: drop memoized Git discovery facts. */
77
+ export function clearGitDiscoveryCacheForTests() {
78
+ gitDiscoveryRootIgnoredChecks.clear();
79
+ gitExcludeFileChecks.clear();
80
+ }
72
81
  function resolveGitTimeoutMs(timeoutMs) {
73
82
  if (typeof timeoutMs === "number" && Number.isFinite(timeoutMs) && timeoutMs > 0) {
74
83
  return Math.floor(timeoutMs);
@@ -322,6 +331,19 @@ export async function isGitPathTracked(projectRoot, file) {
322
331
  export async function isGitPathIgnored(projectRoot, file) {
323
332
  return await runGitPathPredicate(projectRoot, ["check-ignore", "--quiet", "--no-index", "--", normalizePath(file)]);
324
333
  }
334
+ /**
335
+ * Whether Git ignores the requested project root. This value is static for a root during
336
+ * process lifetime and lets repeated discovery avoid spawning `git check-ignore`.
337
+ */
338
+ export async function isGitProjectRootIgnored(projectRoot) {
339
+ const resolvedRoot = path.resolve(projectRoot);
340
+ const cached = gitDiscoveryRootIgnoredChecks.get(resolvedRoot);
341
+ if (cached)
342
+ return await cached;
343
+ const check = isGitPathIgnored(resolvedRoot, resolvedRoot);
344
+ gitDiscoveryRootIgnoredChecks.set(resolvedRoot, check);
345
+ return await check;
346
+ }
325
347
  async function runGitPathPredicate(projectRoot, args) {
326
348
  try {
327
349
  await runGit(projectRoot, args);
@@ -464,6 +486,156 @@ export async function listChangedFiles(projectRoot, opts) {
464
486
  throw createGitError(projectRoot, args, error);
465
487
  }
466
488
  }
489
+ /**
490
+ * List files Git tracks under `projectRoot`, as absolute normalized paths.
491
+ *
492
+ * Paired with `listUntrackedFiles` this enumerates exactly the working-tree files
493
+ * Git considers part of the project, which is the indexable candidate set: Git
494
+ * applies ignore rules while walking, so ignored trees are never descended into.
495
+ * A recursive directory scan instead costs O(files on disk), which on trees full
496
+ * of generated artifacts is orders of magnitude larger than the project itself.
497
+ * `recurseSubmodules` also lists files tracked inside initialized submodules, whose
498
+ * contents are otherwise invisible here: a submodule is a separate repository, so the
499
+ * superproject records only a gitlink and reports nothing under it. Paths stay relative
500
+ * to `projectRoot`, so they resolve the same way as the non-recursive listing.
501
+ *
502
+ * Deliberately no pathspec arguments: one argv entry per file hits Windows'
503
+ * ~32,767-character command-line limit past roughly 1,100 files. Full-repo NUL
504
+ * listings can also exceed Node's default 1 MiB stdout buffer on large trees, so
505
+ * this raises `maxBuffer` for the same reason `getGitBlobHashes` does.
506
+ */
507
+ export async function listTrackedFiles(projectRoot, opts) {
508
+ if (!(opts?.gitAvailable ?? true))
509
+ return [];
510
+ const args = ["ls-files", "-z"];
511
+ if (opts?.recurseSubmodules)
512
+ args.push("--recurse-submodules");
513
+ try {
514
+ const { stdout } = await runGit(projectRoot, args, { maxBuffer: 64 * 1024 * 1024 });
515
+ // `git ls-files -z` NUL-delimits entries; the trailing split segment is always an
516
+ // empty string rather than a filename, so drop empties without trimming (leading
517
+ // and trailing whitespace can be a legitimate part of a real filename).
518
+ const out = [];
519
+ for (const rel of stdout.split("\0").filter(Boolean)) {
520
+ const abs = normalizePath(path.resolve(projectRoot, rel));
521
+ if (abs)
522
+ out.push(abs);
523
+ }
524
+ return Array.from(new Set(out));
525
+ }
526
+ catch (error) {
527
+ throw createGitError(projectRoot, args, error);
528
+ }
529
+ }
530
+ /**
531
+ * Directories of initialized submodules under `projectRoot`, as absolute paths.
532
+ *
533
+ * Read from the index rather than `.gitmodules` so the result reflects what Git
534
+ * actually tracks: a gitlink entry carries mode 160000. Callers enumerating untracked
535
+ * files need this because `--recurse-submodules` cannot combine with `--others`, so
536
+ * untracked files inside a submodule require a separate listing rooted there.
537
+ *
538
+ * `recurse` descends into each submodule to find gitlinks it records in turn. A
539
+ * superproject's index lists only its own direct submodules, so without this a new
540
+ * file inside a submodule of a submodule is invisible to untracked enumeration even
541
+ * though the tracked listing recurses all the way down.
542
+ */
543
+ export async function listGitSubmoduleDirectories(projectRoot, opts) {
544
+ if (!(opts?.gitAvailable ?? true))
545
+ return [];
546
+ const args = ["ls-files", "--stage", "-z"];
547
+ try {
548
+ const { stdout } = await runGit(projectRoot, args, { maxBuffer: 64 * 1024 * 1024 });
549
+ const direct = [];
550
+ for (const record of stdout.split("\0").filter(Boolean)) {
551
+ // Each record is `<mode> <object> <stage>\t<path>`; 160000 marks a gitlink.
552
+ if (!record.startsWith("160000 "))
553
+ continue;
554
+ const tabIndex = record.indexOf("\t");
555
+ if (tabIndex < 0)
556
+ continue;
557
+ const rel = record.slice(tabIndex + 1);
558
+ if (rel)
559
+ direct.push(normalizePath(path.resolve(projectRoot, rel)));
560
+ }
561
+ if (!opts?.recurse || !direct.length)
562
+ return Array.from(new Set(direct));
563
+ const nested = await Promise.all(direct.map(async (directory) => await listGitSubmoduleDirectories(directory, opts)));
564
+ return Array.from(new Set([...direct, ...nested.flat()]));
565
+ }
566
+ catch (error) {
567
+ throw createGitError(projectRoot, args, error);
568
+ }
569
+ }
570
+ /**
571
+ * Git's non-`.gitignore` ignore sources for `projectRoot`, paired with the directory
572
+ * their patterns resolve against.
573
+ *
574
+ * Git consults the per-repository exclude file and the user's `core.excludesFile` in
575
+ * addition to `.gitignore`, and matches both as if declared at the repository root.
576
+ * Callers that filter paths Git never listed need these or they apply a strictly
577
+ * narrower rule set than Git did. Missing or unset sources are omitted rather than
578
+ * treated as an error, since neither is required to exist.
579
+ */
580
+ export async function listGitExcludeFiles(projectRoot, opts) {
581
+ if (!(opts?.gitAvailable ?? true))
582
+ return [];
583
+ const resolvedRoot = path.resolve(projectRoot);
584
+ const cached = gitExcludeFileChecks.get(resolvedRoot);
585
+ if (cached)
586
+ return await cached;
587
+ const check = listGitExcludeFilesUncached(resolvedRoot);
588
+ gitExcludeFileChecks.set(resolvedRoot, check);
589
+ return await check;
590
+ }
591
+ async function listGitExcludeFilesUncached(projectRoot) {
592
+ let baseDir;
593
+ try {
594
+ const { stdout } = await runGit(projectRoot, ["rev-parse", "--show-toplevel"]);
595
+ baseDir = normalizePath(stdout.trim());
596
+ }
597
+ catch {
598
+ return [];
599
+ }
600
+ if (!baseDir)
601
+ return [];
602
+ const candidates = [];
603
+ try {
604
+ // `--git-path` resolves `info/exclude` correctly when `.git` is a file, as it is in
605
+ // linked worktrees and submodules, where guessing `<root>/.git/info` would miss it.
606
+ const { stdout } = await runGit(projectRoot, ["rev-parse", "--git-path", "info/exclude"]);
607
+ const resolved = stdout.trim();
608
+ if (resolved)
609
+ candidates.push(normalizePath(path.resolve(projectRoot, resolved)));
610
+ }
611
+ catch {
612
+ // No exclude file for this repository layout.
613
+ }
614
+ try {
615
+ const { stdout } = await runGit(projectRoot, ["config", "--get", "core.excludesFile"]);
616
+ const configured = stdout.trim();
617
+ if (configured) {
618
+ const expanded = configured.startsWith("~")
619
+ ? path.join(os.homedir(), configured.slice(1))
620
+ : path.resolve(projectRoot, configured);
621
+ candidates.push(normalizePath(expanded));
622
+ }
623
+ }
624
+ catch {
625
+ // `git config --get` exits non-zero when the key is unset.
626
+ }
627
+ const sources = [];
628
+ for (const file of Array.from(new Set(candidates))) {
629
+ try {
630
+ if ((await fsp.stat(file)).isFile())
631
+ sources.push({ file, baseDir });
632
+ }
633
+ catch {
634
+ // Configured but absent; Git ignores it too.
635
+ }
636
+ }
637
+ return sources;
638
+ }
467
639
  /**
468
640
  * List files in the working tree that Git does not track (new, uncommitted files).
469
641
  *
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/util/git.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export type { ProjectFileDefinition, ProjectFileInfo, ProjectFileKind, ProjectFi
5
5
  export declare const DEFAULT_PROJECT_FILE_IGNORES: string[];
6
6
  export declare const DEFAULT_PROJECT_MANIFESTS: string[];
7
7
  export declare const DEFAULT_PROJECT_PATTERNS: string[];
8
+ export type SymlinkProbeMode = "known" | "git-candidates" | "filesystem";
8
9
  export type ProjectFileDiscoveryOptions = {
9
10
  includeGlobs?: string[];
10
11
  ignoreGlobs?: string[];
@@ -14,13 +15,13 @@ export type ProjectFileDiscoveryOptions = {
14
15
  logLevel?: LogLevel;
15
16
  /**
16
17
  * Previously discovered symlinked directories under the project root. When provided
17
- * (including an empty array), discovery skips the full-tree symlink-directory probe
18
- * and instead re-verifies each entry directly, avoiding a second full recursive walk
19
- * on warm runs. Omit when the symlink-directory set is not yet known; discovery then
20
- * probes once and reports what it found via `onSymlinkDirectoriesDiscovered`.
18
+ * (including an empty array), discovery re-verifies each entry directly and skips the
19
+ * probe on warm runs. Omit it to probe once and report the result through
20
+ * `onSymlinkDirectoriesDiscovered`. The callback mode distinguishes persisted hints,
21
+ * Git candidate screening, and the non-Git filesystem fallback.
21
22
  */
22
23
  knownSymlinkDirectories?: readonly string[];
23
- onSymlinkDirectoriesDiscovered?: (directories: readonly string[]) => void;
24
+ onSymlinkDirectoriesDiscovered?: (directories: readonly string[], mode: SymlinkProbeMode) => void;
24
25
  };
25
26
  export declare function translateGlobRootIgnoreGlobsForScanRoot(scanRoot: string, globRoot: string, ignoreGlobs: readonly string[]): string[];
26
27
  export declare function listProjectFiles(projectRoot: string, patterns?: string[], options?: ProjectFileDiscoveryOptions): Promise<string[]>;
@@ -38,6 +39,6 @@ export declare function filterRealPathsWithinRoot(paths: string[], realRoot: str
38
39
  export declare function discoverProjectFiles(projectRoot: string, options?: {
39
40
  logLevel?: LogLevel;
40
41
  knownSymlinkDirectories?: readonly string[];
41
- onSymlinkDirectoriesDiscovered?: (directories: readonly string[]) => void;
42
+ onSymlinkDirectoriesDiscovered?: (directories: readonly string[], mode: SymlinkProbeMode) => void;
42
43
  }): Promise<ProjectFileInfo[]>;
43
44
  //# sourceMappingURL=projectFiles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectFiles.d.ts","sourceRoot":"","sources":["../../src/util/projectFiles.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK5D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAIvC,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,4BAA4B,UAmBxC,CAAC;AAEF,eAAO,MAAM,yBAAyB,UA8DrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,UAGpC,CAAC;AAIF,MAAM,MAAM,2BAA2B,GAAG;IACxC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,8BAA8B,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3E,CAAC;AAyDF,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,MAAM,EAAE,CAkBV;AA2HD,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,WAA2B,EACnC,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,MAAM,EAAE,CAAC,CAiHnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,CAAC,EAAE,2BAA2B,GACpC,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CA4BnC;AAwHD,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGpG;AAmCD,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,8BAA8B,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3E,GACA,OAAO,CAAC,eAAe,EAAE,CAAC,CAkF5B"}
1
+ {"version":3,"file":"projectFiles.d.ts","sourceRoot":"","sources":["../../src/util/projectFiles.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK5D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAYvC,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,4BAA4B,UAkBxC,CAAC;AAEF,eAAO,MAAM,yBAAyB,UA8DrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,UAGpC,CAAC;AAIF,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAEzE,MAAM,MAAM,2BAA2B,GAAG;IACxC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,8BAA8B,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnG,CAAC;AA0DF,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,MAAM,EAAE,CAkBV;AA4SD,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,WAA2B,EACnC,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,MAAM,EAAE,CAAC,CA+InB;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,CAAC,EAAE,2BAA2B,GACpC,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CA4BnC;AA8ID,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAGpG;AAmCD,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,8BAA8B,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnG,GACA,OAAO,CAAC,eAAe,EAAE,CAAC,CAkF5B"}
@@ -5,19 +5,19 @@ import fg from "fast-glob";
5
5
  import picomatch from "picomatch";
6
6
  import { logWithLevel } from "../logging.js";
7
7
  import { stringifyUnknown } from "./ast.js";
8
- import { isFilePathWithinRoot, normalizePath } from "./paths.js";
8
+ import { fileIdentityKey, isFilePathWithinRoot, normalizePath } from "./paths.js";
9
9
  import { isRelativePathInside, matchesDiscoveryGlob } from "./discoveryPath.js";
10
10
  export { isRelativePathInside, matchesDiscoveryGlob } from "./discoveryPath.js";
11
11
  import { PROJECT_FILE_DEFINITIONS, } from "./projectFiles/definitions.js";
12
12
  import { trimToNull } from "./projectFiles/parsers.js";
13
13
  import { mapLimitSemaphore } from "./concurrency.js";
14
+ import { isGitProjectRootIgnored, isGitRepo, listGitExcludeFiles, listGitSubmoduleDirectories, listTrackedFiles, listUntrackedFiles, } from "./git.js";
14
15
  export const DEFAULT_PROJECT_FILE_IGNORES = [
15
16
  "**/node_modules/**",
16
17
  "**/.git/**",
17
- // Never treat Codegraph's own on-disk state as project input. `.codegraph/` is the
18
- // lifecycle manifest root; `.codegraph-cache/` is the indexer disk cache. Either can
19
- // contain JSON/markdown/source-looking files that would otherwise match discovery
20
- // patterns and create perpetual "new untracked file" / reindex churn.
18
+ // Never treat Codegraph's own on-disk state as project input. `.codegraph/` contains
19
+ // lifecycle metadata and the indexer disk cache. Keep the legacy cache ignore so
20
+ // pre-migration checkouts stay excluded from discovery.
21
21
  "**/.codegraph/**",
22
22
  "**/.codegraph-cache/**",
23
23
  "**/dist/**",
@@ -188,59 +188,125 @@ function parseGitignoreRule(baseDir, rawLine) {
188
188
  matches,
189
189
  };
190
190
  }
191
- async function loadGitignoreRules(projectRoot) {
192
- const gitignoreFiles = await fg(["**/.gitignore"], {
193
- cwd: projectRoot,
194
- absolute: true,
195
- dot: true,
196
- followSymbolicLinks: false,
197
- ignore: DEFAULT_PROJECT_FILE_IGNORES,
191
+ const EMPTY_GITIGNORE_INDEX = { hasRules: false, byBaseDir: new Map() };
192
+ /**
193
+ * Parse `.gitignore` rules from an already-discovered set of `.gitignore` files.
194
+ *
195
+ * Ordered by path depth, not lexically: a directory segment collating before `.` (for
196
+ * example `-vendor` or `!keep`) would otherwise place a child's rule file ahead of its
197
+ * parent's, so a parent could no longer suppress a child whose rules it ignores, and a
198
+ * child negation could re-include files. Depth-first ordering also keeps the "last match
199
+ * wins" order deeper files depend on, and drops the locale sensitivity of `localeCompare`.
200
+ */
201
+ async function buildGitignoreIndex(sources) {
202
+ const sorted = [...sources]
203
+ .map(({ file, baseDir }) => ({ file: normalizePath(file), baseDir: normalizePath(baseDir) }))
204
+ .sort((left, right) => {
205
+ const leftFile = left.file;
206
+ const rightFile = right.file;
207
+ const depthDelta = leftFile.split("/").length - rightFile.split("/").length;
208
+ if (depthDelta !== 0)
209
+ return depthDelta;
210
+ if (leftFile < rightFile)
211
+ return -1;
212
+ return leftFile > rightFile ? 1 : 0;
198
213
  });
199
- gitignoreFiles.sort((left, right) => normalizePath(left).localeCompare(normalizePath(right)));
200
- const rules = [];
201
- for (const gitignoreFile of gitignoreFiles) {
202
- if (isIgnoredByGitignore(gitignoreFile, rules)) {
214
+ const gitignoreIndex = { hasRules: false, byBaseDir: new Map() };
215
+ for (const { file, baseDir } of sorted) {
216
+ if (isIgnoredByGitignore(file, gitignoreIndex)) {
203
217
  continue;
204
218
  }
219
+ let raw;
205
220
  try {
206
- const baseDir = path.dirname(gitignoreFile);
207
- const raw = await fsp.readFile(gitignoreFile, "utf8");
208
- rules.push(...raw
209
- .split(/\r?\n/)
210
- .map((line) => parseGitignoreRule(baseDir, line))
211
- .filter((rule) => !!rule));
221
+ raw = await fsp.readFile(file, "utf8");
212
222
  }
213
223
  catch {
214
224
  continue;
215
225
  }
226
+ const baseKey = fileIdentityKey(baseDir);
227
+ for (const line of raw.split(/\r?\n/)) {
228
+ const rule = parseGitignoreRule(baseDir, line);
229
+ if (!rule)
230
+ continue;
231
+ const existing = gitignoreIndex.byBaseDir.get(baseKey);
232
+ if (existing)
233
+ existing.rules.push(rule);
234
+ else
235
+ gitignoreIndex.byBaseDir.set(baseKey, { baseDir, rules: [rule] });
236
+ gitignoreIndex.hasRules = true;
237
+ }
216
238
  }
217
- return rules;
239
+ return gitignoreIndex;
240
+ }
241
+ async function findGitignoreFiles(projectRoot) {
242
+ return await fg(["**/.gitignore"], {
243
+ cwd: projectRoot,
244
+ absolute: true,
245
+ dot: true,
246
+ followSymbolicLinks: false,
247
+ ignore: DEFAULT_PROJECT_FILE_IGNORES,
248
+ });
218
249
  }
219
- async function loadGitignoreRulesForRootAliases(projectRoot) {
250
+ async function loadGitignoreIndexForRootAliases(projectRoot) {
220
251
  const roots = [projectRoot];
221
252
  const realRoot = await fsp.realpath(projectRoot);
222
253
  if (normalizePath(realRoot) !== normalizePath(projectRoot)) {
223
254
  roots.push(realRoot);
224
255
  }
225
- const rules = [];
256
+ const sources = [];
226
257
  for (const root of roots) {
227
- rules.push(...(await loadGitignoreRules(root)));
258
+ for (const file of await findGitignoreFiles(root)) {
259
+ sources.push({ file, baseDir: path.dirname(file) });
260
+ }
228
261
  }
229
- return rules;
262
+ return await buildGitignoreIndex(sources);
230
263
  }
231
- function isIgnoredByGitignore(absolutePath, rules) {
264
+ /**
265
+ * Whether `.gitignore` rules ignore `absolutePath`.
266
+ *
267
+ * Only a `.gitignore` on the path's own ancestor chain can match it, so this walks that
268
+ * chain rather than testing every rule in the project. The skipped rules are exactly the
269
+ * ones whose relative-path check would have rejected them, and applying the chain
270
+ * shallowest-first reproduces the flat list's ordering, so the answer is unchanged.
271
+ * Testing every rule cost O(files x rules): on an Unreal project that meant 55,983
272
+ * candidates against 2,266 rules from 173 `.gitignore` files, or 253.7M evaluations and
273
+ * roughly 21.7s of a 26.1s discovery.
274
+ *
275
+ * The relative path is computed once per declaring directory rather than once per rule.
276
+ * Every rule in a group shares that directory, so the per-rule form repeated identical
277
+ * `path.relative` and normalization work; on the same project that repetition was the
278
+ * dominant remaining cost, at 2.6s of a 3.8s discovery.
279
+ */
280
+ function isIgnoredByGitignore(absolutePath, gitignoreIndex) {
281
+ if (!gitignoreIndex.hasRules)
282
+ return false;
283
+ const chain = [];
284
+ let current = normalizePath(path.dirname(absolutePath));
285
+ for (;;) {
286
+ const group = gitignoreIndex.byBaseDir.get(fileIdentityKey(current));
287
+ if (group)
288
+ chain.push(group);
289
+ const parent = normalizePath(path.dirname(current));
290
+ if (parent === current)
291
+ break;
292
+ current = parent;
293
+ }
232
294
  let ignored = false;
233
- for (const rule of rules) {
234
- const relativePath = path.relative(rule.baseDir, absolutePath);
295
+ for (let depth = chain.length - 1; depth >= 0; depth -= 1) {
296
+ const group = chain[depth];
297
+ const relativePath = path.relative(group.baseDir, absolutePath);
235
298
  if (!isRelativePathInside(relativePath)) {
236
299
  continue;
237
300
  }
238
301
  const normalizedRelativePath = normalizePath(relativePath);
239
- if (rule.dirOnly && !normalizedRelativePath.includes("/")) {
240
- continue;
241
- }
242
- if (rule.matches(normalizedRelativePath)) {
243
- ignored = !rule.negated;
302
+ const hasSeparator = normalizedRelativePath.includes("/");
303
+ for (const rule of group.rules) {
304
+ if (rule.dirOnly && !hasSeparator) {
305
+ continue;
306
+ }
307
+ if (rule.matches(normalizedRelativePath)) {
308
+ ignored = !rule.negated;
309
+ }
244
310
  }
245
311
  }
246
312
  return ignored;
@@ -259,6 +325,96 @@ async function ensureDirectoryReadable(directoryPath, label) {
259
325
  }
260
326
  return resolvedPath;
261
327
  }
328
+ /**
329
+ * Every directory on the ancestor chain of `files`, up to and including `root`.
330
+ *
331
+ * The ignore matcher only consults rules declared at a path's own ancestors, so this is
332
+ * exactly the set of directories whose `.gitignore` can affect a candidate.
333
+ */
334
+ function collectCandidateAncestorDirectories(root, files) {
335
+ const rootKey = fileIdentityKey(root);
336
+ const seen = new Set([rootKey]);
337
+ const directories = [normalizePath(root)];
338
+ for (const file of files) {
339
+ let current = normalizePath(path.dirname(file));
340
+ while (fileIdentityKey(current) !== rootKey) {
341
+ if (seen.has(fileIdentityKey(current)))
342
+ break;
343
+ seen.add(fileIdentityKey(current));
344
+ directories.push(current);
345
+ const parent = normalizePath(path.dirname(current));
346
+ if (parent === current)
347
+ break;
348
+ current = parent;
349
+ }
350
+ }
351
+ return directories;
352
+ }
353
+ /**
354
+ * Locate the `.gitignore` files that can affect `files`, plus Git's other ignore sources.
355
+ *
356
+ * Filtering the candidate listing for `.gitignore` would miss a `.gitignore` that is
357
+ * itself ignored; Git still reads those, and tracked files matching their rules must
358
+ * still be excluded. Probing the candidates' ancestor directories finds them without
359
+ * reintroducing a full-tree walk. `.git/info/exclude` and `core.excludesFile` are
360
+ * included so the index is authoritative for every source Git consults: paths that do
361
+ * not come from Git, such as entries behind a directory symlink, are then filtered by
362
+ * the same rules Git applied to the candidate listing.
363
+ */
364
+ async function findGitIgnoreSources(root, files) {
365
+ const directories = collectCandidateAncestorDirectories(root, files);
366
+ const present = await mapLimitSemaphore(directories, REALPATH_FILTER_CONCURRENCY, async (directory) => {
367
+ const candidate = normalizePath(path.join(directory, ".gitignore"));
368
+ try {
369
+ return (await fsp.stat(candidate)).isFile() ? { file: candidate, baseDir: directory } : null;
370
+ }
371
+ catch {
372
+ return null;
373
+ }
374
+ });
375
+ const sources = present.filter((entry) => entry !== null);
376
+ sources.push(...(await listGitExcludeFiles(root)));
377
+ return sources;
378
+ }
379
+ /**
380
+ * Enumerate candidate project files through Git, or `null` when Git cannot answer.
381
+ *
382
+ * Tracked plus untracked-but-not-ignored files are exactly the working-tree files Git
383
+ * treats as part of the project. Any Git failure returns `null` and discovery falls back
384
+ * to scanning the filesystem.
385
+ *
386
+ * Submodules need explicit handling or their contents vanish from the index: the
387
+ * superproject records only a gitlink. Tracked files come from `--recurse-submodules`,
388
+ * which cannot combine with `--others`, so untracked files are listed per submodule
389
+ * directory, including submodules nested inside submodules.
390
+ *
391
+ * A root that Git itself ignores falls back to scanning. Enumerating it through Git
392
+ * would return only tracked files and silently drop the rest, which would make a
393
+ * directory the caller named explicitly look nearly empty.
394
+ */
395
+ async function listGitCandidateFiles(root, logLevel) {
396
+ try {
397
+ if (!(await isGitRepo(root)))
398
+ return null;
399
+ if (await isGitProjectRootIgnored(root))
400
+ return null;
401
+ const [tracked, untracked, submoduleDirectories] = await Promise.all([
402
+ listTrackedFiles(root, { recurseSubmodules: true, ...(logLevel === undefined ? {} : { logLevel }) }),
403
+ listUntrackedFiles(root, { respectGitignore: true }),
404
+ listGitSubmoduleDirectories(root, { recurse: true }),
405
+ ]);
406
+ const submoduleUntracked = await Promise.all(submoduleDirectories.map(async (directory) => await listUntrackedFiles(directory, { respectGitignore: true })));
407
+ // Sorted so discovery order is reproducible rather than an artifact of how three
408
+ // separate Git listings happened to be concatenated. Callers that surface results
409
+ // in discovery order then behave the same way on every machine.
410
+ const files = Array.from(new Set([...tracked, ...untracked, ...submoduleUntracked.flat()])).sort();
411
+ return { files, gitignoreFiles: await findGitIgnoreSources(root, files) };
412
+ }
413
+ catch (error) {
414
+ logWithLevel(logLevel, "debug", `Git discovery unavailable for ${root}: ${stringifyUnknown(error)}`);
415
+ return null;
416
+ }
417
+ }
262
418
  export async function listProjectFiles(projectRoot, patterns = DEFAULT_PROJECT_PATTERNS, options) {
263
419
  const root = await ensureDirectoryReadable(projectRoot, "Project root");
264
420
  const globRoot = options?.globRoot ? await ensureDirectoryReadable(options.globRoot, "Glob root") : root;
@@ -284,20 +440,47 @@ export async function listProjectFiles(projectRoot, patterns = DEFAULT_PROJECT_P
284
440
  try {
285
441
  const useGitignore = options?.useGitignore ?? true;
286
442
  const realRoot = await fsp.realpath(root);
287
- const gitignoreRules = !useGitignore
288
- ? []
289
- : await loadGitignoreRulesForRootAliases(options?.gitignoreRoot ? await ensureDirectoryReadable(options.gitignoreRoot, "Gitignore root") : root);
290
- const files = await fg(patterns, {
291
- cwd: root,
292
- absolute: true,
293
- dot: true,
294
- followSymbolicLinks: false,
295
- ignore: fastGlobIgnoreGlobs,
296
- });
443
+ // Enumerate through Git when Git's ignore rules are the ones this call wants anyway.
444
+ // Git applies them while walking, so ignored trees are never descended into and never
445
+ // reach the realpath and gitignore checks below. Scanning instead costs O(files on
446
+ // disk): on an Unreal project holding 100,168 files (818 tracked) the scan produced
447
+ // 55,983 pattern-matching candidates, nearly all generated sources under a gitignored
448
+ // `Intermediate/` tree, and discovery took 26.1s. Git lists 4,010 in about 111ms.
449
+ // An aliased root or a gitignore-root override means Git's notion of the project is
450
+ // not this call's, so those fall back to the scan.
451
+ const gitCandidates = useGitignore && options?.gitignoreRoot === undefined && normalizePath(realRoot) === normalizePath(root)
452
+ ? await listGitCandidateFiles(root, options?.logLevel)
453
+ : null;
454
+ let gitignoreIndex = EMPTY_GITIGNORE_INDEX;
455
+ if (useGitignore && gitCandidates) {
456
+ gitignoreIndex = await buildGitignoreIndex(gitCandidates.gitignoreFiles);
457
+ }
458
+ else if (useGitignore) {
459
+ const gitignoreRoot = options?.gitignoreRoot
460
+ ? await ensureDirectoryReadable(options.gitignoreRoot, "Gitignore root")
461
+ : root;
462
+ gitignoreIndex = await loadGitignoreIndexForRootAliases(gitignoreRoot);
463
+ }
464
+ // Git returns a candidate set, not a filtered result: the pattern, include,
465
+ // default-ignore, and gitignore checks below still decide what is indexable.
466
+ const files = gitCandidates
467
+ ? gitCandidates.files
468
+ : await fg(patterns, {
469
+ cwd: root,
470
+ absolute: true,
471
+ dot: true,
472
+ followSymbolicLinks: false,
473
+ ignore: fastGlobIgnoreGlobs,
474
+ });
297
475
  // Explicit includeGlobs may re-open default-ignored trees (for example vendored
298
476
  // dependency dirs). Scan those include patterns without default ignores, then keep
299
477
  // only paths that still match the project patterns and include globs below.
300
- const includedOverrideFiles = includeGlobs.length
478
+ //
479
+ // Only needed on the scan path. Git never applied this project's default ignores, so
480
+ // its listing already contains those files and the include globs below re-open them.
481
+ // Running the scan anyway would also re-add paths Git excluded through its own
482
+ // exclude files, contradicting the rule that Git's ignores still win here.
483
+ const includedOverrideFiles = includeGlobs.length && !gitCandidates
301
484
  ? await fg(translateGlobRootIgnoreGlobsForScanRoot(root, globRoot, includeGlobs), {
302
485
  cwd: root,
303
486
  absolute: true,
@@ -308,6 +491,7 @@ export async function listProjectFiles(projectRoot, patterns = DEFAULT_PROJECT_P
308
491
  : [];
309
492
  const symlinkOptions = {
310
493
  globRoot,
494
+ ...(gitCandidates ? { candidatePaths: gitCandidates.files } : {}),
311
495
  ...(options?.knownSymlinkDirectories !== undefined
312
496
  ? { knownSymlinkDirectories: options.knownSymlinkDirectories }
313
497
  : {}),
@@ -352,7 +536,11 @@ export async function listProjectFiles(projectRoot, patterns = DEFAULT_PROJECT_P
352
536
  if (ignoredByDefault && !(includeMatchers.length > 0 && matchesInclude)) {
353
537
  return false;
354
538
  }
355
- return !isIgnoredByGitignore(filePath, gitignoreRules) && !isIgnoredByGitignore(realPath, gitignoreRules);
539
+ if (isIgnoredByGitignore(filePath, gitignoreIndex))
540
+ return false;
541
+ // The real path only differs when the entry was reached through a symlink, so
542
+ // testing it again for every ordinary file doubled the matcher work for nothing.
543
+ return normalizePath(realPath) === filePath || !isIgnoredByGitignore(realPath, gitignoreIndex);
356
544
  })
357
545
  .map(({ filePath }) => filePath);
358
546
  }
@@ -399,17 +587,21 @@ export function createDiscoveredFileMatcher(root, globRoot, patterns, options) {
399
587
  return !userIgnoreMatchers.some((matcher) => matchesDiscoveryGlob(absolutePath, globRoot, matcher));
400
588
  };
401
589
  }
590
+ /**
591
+ * Whether `linkPath` is a directory symlink that is safe to crawl for project files.
592
+ *
593
+ * `lstat` runs before `realpath` and `stat` so a candidate that is not a symlink costs
594
+ * one syscall rather than three. That matters for callers screening a broad candidate
595
+ * list, where nearly every entry is an ordinary file, and costs nothing for callers
596
+ * passing entries a walk already identified as links.
597
+ */
402
598
  async function isSafeSymlinkDirectory(root, linkPath, realRoot) {
403
599
  try {
404
600
  if (!isRelativePathInside(path.relative(root, linkPath)))
405
601
  return false;
406
- const [linkStats, realPath, targetStats] = await Promise.all([
407
- fsp.lstat(linkPath),
408
- fsp.realpath(linkPath),
409
- fsp.stat(linkPath),
410
- ]);
411
- if (!linkStats.isSymbolicLink())
602
+ if (!(await fsp.lstat(linkPath)).isSymbolicLink())
412
603
  return false;
604
+ const [realPath, targetStats] = await Promise.all([fsp.realpath(linkPath), fsp.stat(linkPath)]);
413
605
  if (!targetStats.isDirectory())
414
606
  return false;
415
607
  if (!isFilePathWithinRoot(realRoot, realPath))
@@ -424,18 +616,35 @@ async function isSafeSymlinkDirectory(root, linkPath, realRoot) {
424
616
  * Resolve the symlinked directories under `root` that are safe to crawl.
425
617
  *
426
618
  * When `knownSymlinkDirectories` is provided, this re-verifies each previously
427
- * discovered path directly (stat + realpath per entry) instead of walking the
428
- * whole tree again. Otherwise it probes once via a full `fg(["**\/*"])` walk
429
- * and, if `onSymlinkDirectoriesDiscovered` is set, reports what it found so a
430
- * caller can persist the result for future warm runs.
619
+ * discovered path directly. Otherwise a Git-derived `candidatePaths` list avoids a
620
+ * separate full-tree scan: Git already enumerated every tracked and non-ignored
621
+ * untracked entry, including symlinks. Non-Git discovery retains the existing
622
+ * `fg(["**\/*"])` fallback. Every path still passes the same lstat, target-directory,
623
+ * and realpath-confinement checks before it can be crawled.
431
624
  */
432
625
  async function resolveSafeSymlinkDirectories(root, realRoot, ignore, options) {
433
626
  if (options.knownSymlinkDirectories !== undefined) {
434
627
  const verified = await mapLimitSemaphore(Array.from(new Set(options.knownSymlinkDirectories)), REALPATH_FILTER_CONCURRENCY, async (linkPath) => ((await isSafeSymlinkDirectory(root, linkPath, realRoot)) ? linkPath : null));
435
628
  const resolved = verified.filter((entry) => entry !== null);
436
- options.onSymlinkDirectoriesDiscovered?.(resolved);
629
+ options.onSymlinkDirectoriesDiscovered?.(resolved, "known");
437
630
  return resolved;
438
631
  }
632
+ if (options.candidatePaths !== undefined) {
633
+ const ignoreMatchers = ignore
634
+ .map(normalizeGlobPattern)
635
+ .filter(Boolean)
636
+ .map((pattern) => picomatch(pattern, { dot: true }));
637
+ const candidatePaths = Array.from(new Set(options.candidatePaths)).filter((candidatePath) => {
638
+ const relativePath = normalizePath(path.relative(root, candidatePath));
639
+ if (!isRelativePathInside(relativePath))
640
+ return false;
641
+ return !ignoreMatchers.some((matcher) => matcher(relativePath));
642
+ });
643
+ const verified = await mapLimitSemaphore(candidatePaths, REALPATH_FILTER_CONCURRENCY, async (linkPath) => (await isSafeSymlinkDirectory(root, linkPath, realRoot)) ? linkPath : null);
644
+ const discovered = verified.filter((entry) => entry !== null);
645
+ options.onSymlinkDirectoriesDiscovered?.(discovered, "git-candidates");
646
+ return discovered;
647
+ }
439
648
  const entries = (await fg(["**/*"], {
440
649
  cwd: root,
441
650
  absolute: true,
@@ -447,7 +656,7 @@ async function resolveSafeSymlinkDirectories(root, realRoot, ignore, options) {
447
656
  }));
448
657
  const candidates = await mapLimitSemaphore(entries.filter((entry) => entry.dirent.isSymbolicLink()).map((entry) => entry.path), REALPATH_FILTER_CONCURRENCY, async (linkPath) => ((await isSafeSymlinkDirectory(root, linkPath, realRoot)) ? linkPath : null));
449
658
  const discovered = candidates.filter((entry) => entry !== null);
450
- options.onSymlinkDirectoriesDiscovered?.(discovered);
659
+ options.onSymlinkDirectoriesDiscovered?.(discovered, "filesystem");
451
660
  return discovered;
452
661
  }
453
662
  async function listEntriesFromSafeSymlinkDirectories(root, realRoot, patterns, ignore, options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"projectFiles.js","sourceRoot":"","sources":["../../src/util/projectFiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectFiles.js","sourceRoot":"","sources":["../../src/util/projectFiles.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lzehrung/codegraph-core",
3
- "version": "2.2.2",
3
+ "version": "2.2.3",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -63,6 +63,6 @@
63
63
  "zod": "^4.4.3"
64
64
  },
65
65
  "optionalDependencies": {
66
- "@lzehrung/codegraph-native": "^1.11.2"
66
+ "@lzehrung/codegraph-native": "^1.11.3"
67
67
  }
68
68
  }