@cleocode/nexus 2026.10.5 → 2026.10.6

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.
@@ -9,6 +9,9 @@
9
9
  * - Pool size: `os.cpus().length - 1` (leave 1 core for main thread), max 8
10
10
  * - Files sent one at a time per worker to bound IPC
11
11
  * memory per message (structured clone is O(data))
12
+ * - Results stream back one sub-batch at a time and are handed to the caller
13
+ * as they arrive, so no message — and no worker — ever holds a whole chunk
14
+ * (T13325)
12
15
  * - Per-file wall deadline terminates a stuck worker
13
16
  * - Falls back to sequential if worker script is not found (e.g. running
14
17
  * from source without a build)
@@ -17,6 +20,36 @@
17
20
  * @module pipeline/workers/worker-pool
18
21
  */
19
22
  import type { ParserExecutionLimits, ParserExecutionPort } from '@cleocode/contracts';
23
+ /**
24
+ * How a caller receives the work of one {@link WorkerPool.dispatch}.
25
+ *
26
+ * @typeParam TItem - What the caller distributes.
27
+ * @typeParam TInput - What a worker receives for one item.
28
+ * @typeParam TResult - What a worker returns for one sub-batch.
29
+ */
30
+ export interface WorkerPoolHandlers<TItem, TInput, TResult> {
31
+ /**
32
+ * Receives each sub-batch's result the moment it arrives, in no particular
33
+ * order across workers.
34
+ *
35
+ * The pool keeps nothing: what this callback does not retain is garbage. It
36
+ * replaced one accumulated result per worker, which made the parent parse a
37
+ * single message proportional to the repository — 68-119 MB of JSON per
38
+ * worker on a 5 357-file project, which killed the 1 536 MB CLI process
39
+ * inside `JSON.parse` (T13325). A throw aborts the whole dispatch and is
40
+ * never retried.
41
+ */
42
+ onResult: (result: TResult) => void;
43
+ /**
44
+ * Builds a worker's input for one item just before it is sent, so the parent
45
+ * holds the input of the in-flight sub-batches only, not of the repository.
46
+ * A throw aborts the whole dispatch and is never retried. Defaults to sending
47
+ * the item itself.
48
+ */
49
+ prepare?: (item: TItem) => TInput | Promise<TInput>;
50
+ /** Optional progress callback with total files processed. */
51
+ onProgress?: (filesProcessed: number) => void;
52
+ }
20
53
  /**
21
54
  * Interface for a worker pool that dispatches items across worker threads.
22
55
  */
@@ -25,13 +58,14 @@ export interface WorkerPool {
25
58
  * Dispatch items across workers.
26
59
  *
27
60
  * Items are split into chunks (one chunk per worker), each worker processes
28
- * its chunk via sub-batches to limit peak IPC memory, and results are
29
- * concatenated back in original order.
61
+ * its chunk one sub-batch at a time, and each sub-batch's result is handed
62
+ * to {@link WorkerPoolHandlers.onResult} as it arrives. Peak memory in the
63
+ * caller is therefore bounded by a sub-batch, not by the chunk.
30
64
  *
31
65
  * @param items - The input items to distribute
32
- * @param onProgress - Optional progress callback with total files processed
66
+ * @param handlers - Result sink, optional input builder and progress callback
33
67
  */
34
- dispatch<TInput, TResult>(items: TInput[], onProgress?: (filesProcessed: number) => void): Promise<TResult[]>;
68
+ dispatch<TItem, TResult, TInput = TItem>(items: TItem[], handlers: WorkerPoolHandlers<TItem, TInput, TResult>): Promise<void>;
35
69
  /** Terminate all workers. Must be called after dispatch completes. */
36
70
  terminate(): Promise<void>;
37
71
  /** Number of workers in the pool. */
@@ -1 +1 @@
1
- {"version":3,"file":"worker-pool.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/workers/worker-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,qBAAqB,CAAC;AAW7B;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,EACtB,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,GAC5C,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEtB,sEAAsE;IACtE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AA0CD,wEAAwE;AACxE,eAAO,MAAM,iBAAiB,gCAAgC,CAAC;AAE/D,0EAA0E;AAC1E,eAAO,MAAM,eAAe,8BAA8B,CAAC;AA0F3D;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,GAAG,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,GAAE,qBAA0B,EAClC,SAAS,CAAC,EAAE,mBAAmB,GAC9B,UAAU,CA0VZ"}
1
+ {"version":3,"file":"worker-pool.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/workers/worker-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,qBAAqB,CAAC;AAW7B;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO;IACxD;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,6DAA6D;IAC7D,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,EACrC,KAAK,EAAE,KAAK,EAAE,EACd,QAAQ,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,GACnD,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,sEAAsE;IACtE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAyCD,wEAAwE;AACxE,eAAO,MAAM,iBAAiB,gCAAgC,CAAC;AAE/D,0EAA0E;AAC1E,eAAO,MAAM,eAAe,8BAA8B,CAAC;AA0F3D;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,GAAG,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,GAAE,qBAA0B,EAClC,SAAS,CAAC,EAAE,mBAAmB,GAC9B,UAAU,CAsZZ"}
@@ -9,6 +9,9 @@
9
9
  * - Pool size: `os.cpus().length - 1` (leave 1 core for main thread), max 8
10
10
  * - Files sent one at a time per worker to bound IPC
11
11
  * memory per message (structured clone is O(data))
12
+ * - Results stream back one sub-batch at a time and are handed to the caller
13
+ * as they arrive, so no message — and no worker — ever holds a whole chunk
14
+ * (T13325)
12
15
  * - Per-file wall deadline terminates a stuck worker
13
16
  * - Falls back to sequential if worker script is not found (e.g. running
14
17
  * from source without a build)
@@ -212,12 +215,17 @@ export function createWorkerPool(workerUrl, poolSize, limits = {}, execution) {
212
215
  });
213
216
  }
214
217
  /**
215
- * Dispatch `items` to worker `workers[workerIndex]`, streaming sub-batches
216
- * of `SUB_BATCH_SIZE` files and collecting the final accumulated result.
218
+ * Dispatch `chunk` to worker `workers[workerIndex]`, one sub-batch of
219
+ * `SUB_BATCH_SIZE` items at a time, handing each sub-batch's result to the
220
+ * caller before the next is sent.
221
+ *
222
+ * `cursor.delivered` counts the items whose results the caller has already
223
+ * received; a retry resumes after them instead of delivering them twice.
217
224
  */
218
- function dispatchToWorker(chunk, workerIndex, workerProgress, onProgress) {
225
+ function dispatchToWorker(chunk, workerIndex, cursor, workerProgress, handlers, abortDispatch) {
219
226
  const owned = workers[workerIndex];
220
227
  const worker = owned instanceof Worker ? owned : owned.child;
228
+ const resumedAt = cursor.delivered;
221
229
  return new Promise((resolve, reject) => {
222
230
  const send = (message) => {
223
231
  if (owned instanceof Worker)
@@ -245,7 +253,8 @@ export function createWorkerPool(workerUrl, poolSize, limits = {}, execution) {
245
253
  let settled = false;
246
254
  let ready = owned instanceof Worker;
247
255
  let subBatchTimer = null;
248
- let subBatchIdx = 0;
256
+ // Items handed to the worker but not yet delivered back.
257
+ let inFlightCount = 0;
249
258
  // Retained for diagnostics: a timeout that cannot name the file it was
250
259
  // parsing sends the reader looking through 4 498 of them.
251
260
  let inFlightDescription = '<not yet dispatched>';
@@ -277,19 +286,41 @@ export function createWorkerPool(workerUrl, poolSize, limits = {}, execution) {
277
286
  }
278
287
  }, timeoutMs);
279
288
  };
280
- const sendNextSubBatch = () => {
281
- const start = subBatchIdx * SUB_BATCH_SIZE;
289
+ /**
290
+ * A failure of the CALLER's own code (building an input, or receiving a
291
+ * result) — not of the worker. Retrying it on a fresh worker would fail
292
+ * the same way, so it ends the whole dispatch.
293
+ */
294
+ const callerFailed = (error) => {
295
+ const failure = error instanceof Error ? error : new Error(String(error));
296
+ abortDispatch(failure);
297
+ errorHandler(failure);
298
+ };
299
+ const sendNextSubBatch = async () => {
300
+ const start = cursor.delivered;
282
301
  if (start >= chunk.length) {
283
- // All sub-batches sent — flush to collect accumulated result
284
- send({ type: 'flush' });
302
+ settled = true;
303
+ cleanup();
304
+ resolve();
285
305
  return;
286
306
  }
287
307
  const subBatch = chunk.slice(start, start + SUB_BATCH_SIZE);
288
308
  previousDescription = inFlightDescription;
289
309
  inFlightDescription = subBatch.map(describeWorkItem).join(', ');
290
- subBatchIdx++;
310
+ inFlightCount = subBatch.length;
311
+ const prepare = handlers.prepare;
312
+ let files;
313
+ try {
314
+ files = prepare ? await Promise.all(subBatch.map((item) => prepare(item))) : subBatch;
315
+ }
316
+ catch (error) {
317
+ callerFailed(error);
318
+ return;
319
+ }
320
+ if (settled)
321
+ return;
291
322
  resetSubBatchTimer();
292
- send({ type: 'sub-batch', files: subBatch });
323
+ send({ type: 'sub-batch', files });
293
324
  };
294
325
  const handler = (msg) => {
295
326
  if (settled)
@@ -302,28 +333,35 @@ export function createWorkerPool(workerUrl, poolSize, limits = {}, execution) {
302
333
  }
303
334
  }
304
335
  else if (msg.type === 'progress') {
305
- workerProgress[workerIndex] = msg.filesProcessed;
306
- if (onProgress) {
336
+ // A retried chunk runs on a fresh worker whose count starts again at 0.
337
+ workerProgress[workerIndex] = resumedAt + msg.filesProcessed;
338
+ if (handlers.onProgress) {
307
339
  const total = workerProgress.reduce((a, b) => a + b, 0);
308
- onProgress(total);
340
+ handlers.onProgress(total);
309
341
  }
310
342
  }
311
343
  else if (msg.type === 'sub-batch-done') {
312
- sendNextSubBatch();
313
- }
314
- else if (msg.type === 'error') {
315
- settled = true;
316
- cleanup();
317
- reject(new Error(`Worker ${workerIndex} error: ${msg.error}`));
318
- }
319
- else if (msg.type === 'result') {
320
344
  if (!ready) {
321
345
  errorHandler(new Error('Parser did not verify its effective heap limit'));
322
346
  return;
323
347
  }
348
+ if (msg.data !== undefined) {
349
+ try {
350
+ handlers.onResult(msg.data);
351
+ }
352
+ catch (error) {
353
+ callerFailed(error);
354
+ return;
355
+ }
356
+ }
357
+ cursor.delivered += inFlightCount;
358
+ inFlightCount = 0;
359
+ void sendNextSubBatch();
360
+ }
361
+ else if (msg.type === 'error') {
324
362
  settled = true;
325
363
  cleanup();
326
- resolve(msg.data);
364
+ reject(new Error(`Worker ${workerIndex} error: ${msg.error}`));
327
365
  }
328
366
  };
329
367
  const errorHandler = (err) => {
@@ -367,17 +405,17 @@ export function createWorkerPool(workerUrl, poolSize, limits = {}, execution) {
367
405
  worker.on('message', handler);
368
406
  worker.once('error', errorHandler);
369
407
  worker.once('exit', exitHandler);
370
- sendNextSubBatch();
408
+ void sendNextSubBatch();
371
409
  });
372
410
  }
373
- const dispatch = async (items, onProgress) => {
411
+ const dispatch = async (items, handlers) => {
374
412
  limits.signal?.throwIfAborted();
375
413
  if (terminated)
376
414
  throw new Error('Parser worker pool is terminated');
377
415
  if (active)
378
416
  throw new Error('Parser worker pool already has an active dispatch');
379
417
  if (items.length === 0)
380
- return [];
418
+ return;
381
419
  active = true;
382
420
  try {
383
421
  for (let i = workers.length; i < Math.min(size, items.length); i++) {
@@ -404,38 +442,55 @@ export function createWorkerPool(workerUrl, poolSize, limits = {}, execution) {
404
442
  chunks.push(items.slice(i, i + chunkSize));
405
443
  }
406
444
  const workerProgress = new Array(chunks.length).fill(0);
407
- const promises = chunks.map((chunk, i) => dispatchToWorker(chunk, i, workerProgress, onProgress));
445
+ const jobs = chunks.map((chunk) => ({ chunk, cursor: { delivered: 0 } }));
446
+ // The first failure of the caller's own code. It stops every worker at
447
+ // once — the others would only keep allocating results nobody will use —
448
+ // and it is never retried.
449
+ let callerFailure;
450
+ const abortDispatch = (error) => {
451
+ callerFailure ??= error;
452
+ void terminate();
453
+ };
454
+ const guardedHandlers = {
455
+ ...handlers,
456
+ onResult: (result) => {
457
+ if (callerFailure === undefined)
458
+ handlers.onResult(result);
459
+ },
460
+ };
461
+ const promises = jobs.map((job, i) => dispatchToWorker(job.chunk, i, job.cursor, workerProgress, guardedHandlers, abortDispatch));
408
462
  try {
409
463
  // T12313: one worker dying used to discard EVERY file the others had
410
464
  // already parsed — 3 499 of them in a measured run — because
411
465
  // `Promise.all` rejects on the first failure and the generation is then
412
- // never published. A worker that dies before it has processed anything
413
- // is not evidence that the work is unparseable, so its chunk is retried
414
- // once on a fresh worker before the run is abandoned.
466
+ // never published. A worker that dies is not by itself evidence that the
467
+ // work is unparseable, so its chunk is resumed once on a fresh worker,
468
+ // after the items it already delivered (T13325), before the run is
469
+ // abandoned.
415
470
  const settled = await Promise.allSettled(promises);
416
- const results = [];
471
+ if (callerFailure !== undefined)
472
+ throw callerFailure;
417
473
  const failures = [];
418
474
  settled.forEach((outcome, index) => {
419
- if (outcome.status === 'fulfilled')
420
- results[index] = outcome.value;
421
- else
475
+ if (outcome.status === 'rejected')
422
476
  failures.push({ index, outcome });
423
477
  });
424
478
  for (const failure of failures) {
425
- const chunk = chunks[failure.index];
479
+ const job = jobs[failure.index];
426
480
  // Cancellation is the caller's decision, not a transient fault: a retry
427
481
  // would re-enter an aborted signal and surface a bare AbortError in
428
482
  // place of the E_PARSE_CANCELLED the caller is owed.
429
- if (chunk === undefined || limits.signal?.aborted)
483
+ if (job === undefined || limits.signal?.aborted)
430
484
  throw failure.outcome.reason;
431
485
  // Replace the dead slot; reusing it would fail the same way.
432
486
  await replaceWorker(failure.index);
433
487
  // A second death is a real defect, not a transient one — let it throw
434
488
  // with its own diagnostic rather than silently publishing a partial
435
489
  // index that reads as complete.
436
- results[failure.index] = await dispatchToWorker(chunk, failure.index, workerProgress, onProgress);
490
+ await dispatchToWorker(job.chunk, failure.index, job.cursor, workerProgress, guardedHandlers, abortDispatch);
491
+ if (callerFailure !== undefined)
492
+ throw callerFailure;
437
493
  }
438
- return results;
439
494
  }
440
495
  catch (error) {
441
496
  // Do not return while another worker can still mutate or allocate.
@@ -1 +1 @@
1
- {"version":3,"file":"worker-pool.js","sourceRoot":"","sources":["../../../../src/pipeline/workers/worker-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-pool.js","sourceRoot":"","sources":["../../../../src/pipeline/workers/worker-pool.ts"],"names":[],"mappings":"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"}