@cleocode/nexus 2026.9.17 → 2026.9.18

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.
@@ -56,6 +56,14 @@ export interface WalkOptions {
56
56
  * instead of being read. Only a freshness check should pass this: an index
57
57
  * build must hash what it parses. A metadata-preserving edit can defeat it,
58
58
  * which is why the published generation still verifies by content.
59
+ *
60
+ * Passing it also selects the freshness walk (T12348): directories are read
61
+ * in parallel instead of through `fs.glob`, and `git check-ignore` is asked
62
+ * only about files absent from this map. A known file was judged not ignored
63
+ * when its generation was built, and in-repository `.gitignore`/`.cleoignore`
64
+ * rules are still re-evaluated in process for every path; what the walk no
65
+ * longer re-asks git is whether a change to `.git/info/exclude` or the global
66
+ * excludes file has since ignored an indexed file.
59
67
  */
60
68
  knownFiles?: ReadonlyMap<string, KnownFileFingerprint>;
61
69
  /** Called for every file whose bytes were actually read and hashed. */
@@ -76,6 +84,11 @@ export declare const GIT_IGNORE_TIMEOUT_ENV = "CLEO_NEXUS_GIT_TIMEOUT_MS";
76
84
  * Files in excluded directories are skipped before stat is called.
77
85
  * Files larger than {@link MAX_FILE_SIZE} are skipped after stat.
78
86
  *
87
+ * When `options.knownFiles` is given the walk is a freshness check (T12348):
88
+ * directories are read in parallel, git is asked to classify only files absent
89
+ * from `knownFiles`, and stats run at higher concurrency — see
90
+ * {@link WalkOptions.knownFiles}.
91
+ *
79
92
  * @param repoPath - Absolute path to the repository root
80
93
  * @param onProgress - Optional progress callback invoked for each processed file
81
94
  * @param onFileReport - Optional receiver for exclusion, size and stat outcomes
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem-walker.d.ts","sourceRoot":"","sources":["../../../src/pipeline/filesystem-walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAuDhE;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,iEAAiE;AACjE,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACvD,uEAAuE;IACvE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AA0BD,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAK3C,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAoHlE;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,EACrD,oBAAoB,GAAE,SAAS,MAAM,EAAO,EAC5C,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,WAAW,EAAE,CAAC,CA+KxB"}
1
+ {"version":3,"file":"filesystem-walker.d.ts","sourceRoot":"","sources":["../../../src/pipeline/filesystem-walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAiEhE;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,iEAAiE;AACjE,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACvD,uEAAuE;IACvE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AA0BD,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAK3C,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAkRlE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,EACrD,oBAAoB,GAAE,SAAS,MAAM,EAAO,EAC5C,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,WAAW,EAAE,CAAC,CAmKxB"}
@@ -33,6 +33,15 @@ import { detectLanguageFromPath } from './language-detection.js';
33
33
  const MAX_FILE_SIZE = 512 * 1024;
34
34
  /** Concurrency for stat calls (matches GitNexus READ_CONCURRENCY). */
35
35
  const STAT_CONCURRENCY = 32;
36
+ /**
37
+ * Concurrency for a freshness walk's stat calls (T12348).
38
+ *
39
+ * A freshness check reads nothing but metadata for unchanged files, so its
40
+ * cost is one `stat` per indexed file; on a FUSE mount that is ~6 ms each when
41
+ * serialised. Keeping more requests in flight than the libuv pool has threads
42
+ * lets the pool (sized by the CLI shim) stay saturated.
43
+ */
44
+ const FRESHNESS_STAT_CONCURRENCY = 256;
36
45
  /**
37
46
  * Directory names that are always excluded from repository scans.
38
47
  *
@@ -203,9 +212,147 @@ function runGitCheckIgnore(repoPath, batch, timeout) {
203
212
  maxBuffer: 4 * 1024 * 1024,
204
213
  });
205
214
  }
206
- // ---------------------------------------------------------------------------
207
- // Core walker
208
- // ---------------------------------------------------------------------------
215
+ /**
216
+ * Collect candidate paths with `fs.glob` — the traversal an index build uses.
217
+ *
218
+ * Yields files AND directories that survive the default, nested-repository and
219
+ * ignore-rule exclusions; directories are dropped later, at stat time.
220
+ */
221
+ async function collectPathsByGlob(repoPath, isExcluded, includedRepositories, onFileReport) {
222
+ const relativePaths = [];
223
+ for await (const entry of fs.glob('**/*', {
224
+ cwd: repoPath,
225
+ withFileTypes: true,
226
+ exclude: (candidate) => {
227
+ const absolutePath = path.join(candidate.parentPath, candidate.name);
228
+ const normalized = path.relative(repoPath, absolutePath).replace(/\\/g, '/');
229
+ const nestedRepository = (candidate.isDirectory() || candidate.isSymbolicLink()) &&
230
+ existsSync(path.join(absolutePath, '.git'));
231
+ const excluded = DEFAULT_EXCLUDED_DIRS.has(candidate.name) ||
232
+ (nestedRepository && !includedRepositories.includes(normalized));
233
+ if (excluded)
234
+ onFileReport?.({
235
+ path: normalized,
236
+ status: 'excluded',
237
+ reason: nestedRepository
238
+ ? 'Nested repository requires explicit inclusion'
239
+ : 'Default excluded directory',
240
+ });
241
+ return excluded;
242
+ },
243
+ })) {
244
+ // Normalise to forward slashes
245
+ const relPath = path.relative(repoPath, path.join(entry.parentPath, entry.name));
246
+ const normalised = relPath.replace(/\\/g, '/');
247
+ // Native directory entries avoid a serial stat for every source; metadata
248
+ // and content hashes are still captured by the bounded batches below.
249
+ const isDirectory = entry.isSymbolicLink()
250
+ ? (await fs.stat(path.join(repoPath, relPath))).isDirectory()
251
+ : entry.isDirectory();
252
+ if (!(await isExcluded(normalised, isDirectory))) {
253
+ relativePaths.push(normalised);
254
+ }
255
+ else {
256
+ onFileReport?.({ path: normalised, status: 'excluded', reason: 'Ignore rule' });
257
+ }
258
+ }
259
+ return relativePaths;
260
+ }
261
+ /**
262
+ * Collect the FILES {@link collectPathsByGlob} would yield, reading every
263
+ * directory in parallel (T12348).
264
+ *
265
+ * `fs.glob` reads one directory at a time and the nested-repository probe is a
266
+ * synchronous `existsSync` per directory, so on a FUSE mount the traversal
267
+ * alone measured 12–21 s for this repository; issuing the reads concurrently
268
+ * brings it under half a second there. The directory listing also answers the
269
+ * `.git` and ignore-file questions without further filesystem calls.
270
+ *
271
+ * It reproduces `fs.glob('**\/*')` as the index build observes it: dot entries
272
+ * are never visited, and a symbolic link to a directory contributes its
273
+ * immediate children but is not descended further. Directories themselves are
274
+ * not returned — the stat stage discards them — and a subtree whose directory
275
+ * is ignored is pruned, which is equivalent because {@link IgnoreEvaluator}
276
+ * excludes every path below an ignored ancestor.
277
+ *
278
+ * @param repoPath - Absolute repository root.
279
+ * @param isExcluded - Ignore-rule evaluator shared with the glob traversal.
280
+ * @param primeIgnoreFiles - Loads a directory's ignore files from its listing.
281
+ * @param includedRepositories - Nested repositories explicitly included.
282
+ * @param onFileReport - Receiver for exclusion outcomes. * @returns Repository-relative file paths, sorted.
283
+ */
284
+ async function collectFilesInParallel(repoPath, isExcluded, primeIgnoreFiles, includedRepositories, onFileReport) {
285
+ const found = [];
286
+ const report = (relPath, reason) => onFileReport?.({ path: relPath, status: 'excluded', reason });
287
+ const acceptFile = async (relPath) => {
288
+ if (await isExcluded(relPath, false))
289
+ report(relPath, 'Ignore rule');
290
+ else
291
+ found.push(relPath);
292
+ };
293
+ // A link to a directory: glob yields the target's immediate children and
294
+ // stops there; a link to a file (or a dangling link) is a file candidate.
295
+ const visitLink = async (relPath) => {
296
+ const absolutePath = path.join(repoPath, relPath);
297
+ const target = await fs.stat(absolutePath).catch(() => null);
298
+ if (!target?.isDirectory())
299
+ return acceptFile(relPath);
300
+ if (existsSync(path.join(absolutePath, '.git')) && !includedRepositories.includes(relPath)) {
301
+ report(relPath, 'Nested repository requires explicit inclusion');
302
+ return;
303
+ }
304
+ if (await isExcluded(relPath, true)) {
305
+ report(relPath, 'Ignore rule');
306
+ return;
307
+ }
308
+ for (const child of await fs.readdir(absolutePath, { withFileTypes: true })) {
309
+ if (child.name.startsWith('.'))
310
+ continue;
311
+ const childPath = `${relPath}/${child.name}`;
312
+ const isDirectory = child.isSymbolicLink()
313
+ ? ((await fs.stat(path.join(absolutePath, child.name)).catch(() => null))?.isDirectory() ??
314
+ false)
315
+ : child.isDirectory();
316
+ if (!isDirectory)
317
+ await acceptFile(childPath);
318
+ }
319
+ };
320
+ const visit = async (relDir) => {
321
+ const entries = await fs.readdir(relDir ? path.join(repoPath, relDir) : repoPath, {
322
+ withFileTypes: true,
323
+ });
324
+ const names = new Set(entries.map((entry) => entry.name));
325
+ if (relDir && names.has('.git') && !includedRepositories.includes(relDir)) {
326
+ report(relDir, 'Nested repository requires explicit inclusion');
327
+ return;
328
+ }
329
+ await primeIgnoreFiles(relDir, names);
330
+ const subdirectories = [];
331
+ await Promise.all(entries.map(async (entry) => {
332
+ if (entry.name.startsWith('.'))
333
+ return;
334
+ const relPath = relDir ? `${relDir}/${entry.name}` : entry.name;
335
+ if (DEFAULT_EXCLUDED_DIRS.has(entry.name)) {
336
+ report(relPath, 'Default excluded directory');
337
+ }
338
+ else if (entry.isSymbolicLink()) {
339
+ await visitLink(relPath);
340
+ }
341
+ else if (!entry.isDirectory()) {
342
+ await acceptFile(relPath);
343
+ }
344
+ else if (await isExcluded(relPath, true)) {
345
+ report(relPath, 'Ignore rule');
346
+ }
347
+ else {
348
+ subdirectories.push(relPath);
349
+ }
350
+ }));
351
+ await Promise.all(subdirectories.map(visit));
352
+ };
353
+ await visit('');
354
+ return found.sort();
355
+ }
209
356
  /**
210
357
  * Walk the repository directory tree and return a list of scanned files.
211
358
  *
@@ -213,6 +360,11 @@ function runGitCheckIgnore(repoPath, batch, timeout) {
213
360
  * Files in excluded directories are skipped before stat is called.
214
361
  * Files larger than {@link MAX_FILE_SIZE} are skipped after stat.
215
362
  *
363
+ * When `options.knownFiles` is given the walk is a freshness check (T12348):
364
+ * directories are read in parallel, git is asked to classify only files absent
365
+ * from `knownFiles`, and stats run at higher concurrency — see
366
+ * {@link WalkOptions.knownFiles}.
367
+ *
216
368
  * @param repoPath - Absolute path to the repository root
217
369
  * @param onProgress - Optional progress callback invoked for each processed file
218
370
  * @param onFileReport - Optional receiver for exclusion, size and stat outcomes
@@ -262,49 +414,32 @@ export async function walkRepositoryPaths(repoPath, onProgress, onFileReport, in
262
414
  }
263
415
  return false;
264
416
  }
265
- // Collect all relative paths via native glob
266
- const relativePaths = [];
267
- for await (const entry of fs.glob('**/*', {
268
- cwd: repoPath,
269
- withFileTypes: true,
270
- exclude: (candidate) => {
271
- const absolutePath = path.join(candidate.parentPath, candidate.name);
272
- const normalized = path.relative(repoPath, absolutePath).replace(/\\/g, '/');
273
- const nestedRepository = (candidate.isDirectory() || candidate.isSymbolicLink()) &&
274
- existsSync(path.join(absolutePath, '.git'));
275
- const excluded = DEFAULT_EXCLUDED_DIRS.has(candidate.name) ||
276
- (nestedRepository && !includedRepositories.includes(normalized));
277
- if (excluded)
278
- onFileReport?.({
279
- path: normalized,
280
- status: 'excluded',
281
- reason: nestedRepository
282
- ? 'Nested repository requires explicit inclusion'
283
- : 'Default excluded directory',
284
- });
285
- return excluded;
286
- },
287
- })) {
288
- // Normalise to forward slashes
289
- const relPath = path.relative(repoPath, path.join(entry.parentPath, entry.name));
290
- const normalised = relPath.replace(/\\/g, '/');
291
- // Native directory entries avoid a serial stat for every source; metadata
292
- // and content hashes are still captured by the bounded batches below.
293
- const isDirectory = entry.isSymbolicLink()
294
- ? (await fs.stat(path.join(repoPath, relPath))).isDirectory()
295
- : entry.isDirectory();
296
- if (!(await isExcluded(normalised, isDirectory))) {
297
- relativePaths.push(normalised);
298
- }
299
- else {
300
- onFileReport?.({ path: normalised, status: 'excluded', reason: 'Ignore rule' });
301
- }
417
+ /** Load a directory's ignore files, skipping the reads its listing rules out. */
418
+ async function primeIgnoreFiles(directory, names) {
419
+ if (!directory || nestedPatterns.has(directory))
420
+ return;
421
+ const [gitignore, cleoignore] = await Promise.all([
422
+ names.has('.gitignore')
423
+ ? readIgnorePatterns(path.join(repoPath, directory, '.gitignore'))
424
+ : [],
425
+ names.has('.cleoignore')
426
+ ? readIgnorePatterns(path.join(repoPath, directory, '.cleoignore'))
427
+ : [],
428
+ ]);
429
+ nestedPatterns.set(directory, ignore().add([...gitignore, ...cleoignore]));
302
430
  }
431
+ const knownFiles = options.knownFiles;
432
+ const relativePaths = knownFiles
433
+ ? await collectFilesInParallel(repoPath, isExcluded, primeIgnoreFiles, includedRepositories, onFileReport)
434
+ : await collectPathsByGlob(repoPath, isExcluded, includedRepositories, onFileReport);
303
435
  // Preserve the parent project binding while evaluating each explicitly included
304
436
  // repository with its own Git configuration (including linked-worktree gitdirs).
305
437
  const scopes = ['', ...includedRepositories].sort((a, b) => b.length - a.length);
306
438
  const scopedPaths = new Map();
307
439
  for (const file of relativePaths) {
440
+ // A known file was judged not ignored when its generation was built.
441
+ if (knownFiles?.has(file))
442
+ continue;
308
443
  const scope = scopes.find((candidate) => !candidate || file.startsWith(`${candidate}/`)) ?? '';
309
444
  const local = scope ? file.slice(scope.length + 1) : file;
310
445
  const paths = scopedPaths.get(scope) ?? [];
@@ -328,8 +463,9 @@ export async function walkRepositoryPaths(repoPath, onProgress, onFileReport, in
328
463
  const entries = [];
329
464
  let processed = 0;
330
465
  let skippedLarge = 0;
331
- for (let start = 0; start < eligiblePaths.length; start += STAT_CONCURRENCY) {
332
- const batch = eligiblePaths.slice(start, start + STAT_CONCURRENCY);
466
+ const concurrency = knownFiles ? FRESHNESS_STAT_CONCURRENCY : STAT_CONCURRENCY;
467
+ for (let start = 0; start < eligiblePaths.length; start += concurrency) {
468
+ const batch = eligiblePaths.slice(start, start + concurrency);
333
469
  const results = await Promise.allSettled(batch.map(async (relPath) => {
334
470
  const fullPath = path.join(repoPath, relPath);
335
471
  const stat = await fs.stat(fullPath);
@@ -347,7 +483,7 @@ export async function walkRepositoryPaths(repoPath, onProgress, onFileReport, in
347
483
  });
348
484
  return null;
349
485
  }
350
- const known = options.knownFiles?.get(relPath);
486
+ const known = knownFiles?.get(relPath);
351
487
  let contentHash;
352
488
  if (known && known.size === stat.size && known.mtimeMs === stat.mtimeMs) {
353
489
  contentHash = known.contentHash;
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem-walker.js","sourceRoot":"","sources":["../../../src/pipeline/filesystem-walker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filesystem-walker.js","sourceRoot":"","sources":["../../../src/pipeline/filesystem-walker.ts"],"names":[],"mappings":"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"}