@indigoai-us/hq-cloud 6.14.26 → 6.14.27

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.
package/dist/watcher.js CHANGED
@@ -16,6 +16,25 @@ import { isPersonalVaultExcluded } from "./personal-vault-exclusions.js";
16
16
  import { AGENCY_SYNC_REL, CONTINUITY_POINTER_REL, SESSION_LOGS_SYNC_REL, PERSONAL_VAULT_EXCLUDED_TOP_LEVEL, } from "./personal-vault.js";
17
17
  import { emitCloudTelemetry, } from "./telemetry-events.js";
18
18
  const DEBOUNCE_MS = 2000;
19
+ /**
20
+ * A single Linux chokidar watcher must leave room for editors, dev servers,
21
+ * and other HQ runners on the same uid. This is deliberately far below the
22
+ * common 250k kernel maximum. The cap is on distinct directories admitted over
23
+ * this watcher's lifetime, which also prevents a high-churn tree from slowly
24
+ * accumulating an unbounded set of kernel watches.
25
+ */
26
+ export const DEFAULT_TREE_WATCHER_MAX_WATCHED_PATHS = 20_000;
27
+ export const TREE_WATCHER_MAX_WATCHED_PATHS_ENV = "HQ_SYNC_MAX_WATCHED_PATHS";
28
+ function resolveMaxWatchedPaths(override) {
29
+ const configured = override ?? Number(process.env[TREE_WATCHER_MAX_WATCHED_PATHS_ENV]);
30
+ if (override === undefined && process.env[TREE_WATCHER_MAX_WATCHED_PATHS_ENV] === undefined) {
31
+ return DEFAULT_TREE_WATCHER_MAX_WATCHED_PATHS;
32
+ }
33
+ if (Number.isFinite(configured) && configured > 0)
34
+ return Math.trunc(configured);
35
+ console.warn(`TreeWatcher ignoring invalid ${TREE_WATCHER_MAX_WATCHED_PATHS_ENV}; using ${DEFAULT_TREE_WATCHER_MAX_WATCHED_PATHS}`);
36
+ return DEFAULT_TREE_WATCHER_MAX_WATCHED_PATHS;
37
+ }
19
38
  /** Real clock backed by host timers + Date.now. The production default. */
20
39
  export const systemClock = {
21
40
  setTimeout: (fn, ms) => setTimeout(fn, ms),
@@ -150,37 +169,94 @@ export class WatchPushDriver {
150
169
  }
151
170
  }
152
171
  /**
153
- * Translate an emit-filter into chokidar's `ignored` predicate (true = SKIP).
172
+ * Tracks directories admitted to chokidar. Chokidar asks its ignored callback
173
+ * twice: before stat (the descent gate) and after stat (where we can safely
174
+ * account only for directories). This class is intentionally lifetime-bounded:
175
+ * a directory that is deleted and recreated cannot turn one long-running
176
+ * runner into an unbounded consumer.
177
+ */
178
+ export class ChokidarWatchBudget {
179
+ maxWatchedPaths;
180
+ onExceeded;
181
+ admitted = new Set();
182
+ exhausted = false;
183
+ constructor(maxWatchedPaths, onExceeded) {
184
+ this.maxWatchedPaths = maxWatchedPaths;
185
+ this.onExceeded = onExceeded;
186
+ }
187
+ admit(absolutePath) {
188
+ const resolved = path.resolve(absolutePath);
189
+ if (this.admitted.has(resolved))
190
+ return true;
191
+ if (this.exhausted || this.admitted.size >= this.maxWatchedPaths) {
192
+ if (!this.exhausted) {
193
+ this.exhausted = true;
194
+ this.onExceeded({
195
+ maxWatchedPaths: this.maxWatchedPaths,
196
+ watchedPaths: this.admitted.size,
197
+ offendingPath: resolved,
198
+ });
199
+ }
200
+ return false;
201
+ }
202
+ this.admitted.add(resolved);
203
+ return true;
204
+ }
205
+ count() {
206
+ return this.admitted.size;
207
+ }
208
+ }
209
+ /**
210
+ * Translate the emit filter into chokidar's descent predicate.
154
211
  *
155
- * The subtlety this encodes: chokidar probes a candidate path for the descent
156
- * decision BEFORE it has stat()ed it, so `stats` is `undefined` on that first
157
- * call — and if we say "ignore" there, chokidar prunes the subtree and never
158
- * descends. In allowlist mode (`.hqinclude`) the in-scope leaves
159
- * (`companies/*\/knowledge/`) live UNDER intermediate dirs (`companies/`,
160
- * `companies/<slug>/`) that only survive the filter when queried as a
161
- * directory (the ancestor matcher fires for `isDir=true` only). With no stats
162
- * hint we don't know if the candidate is that ancestor dir or an in-scope
163
- * file, so we must NOT prune when EITHER reading would keep it. The real
164
- * isDir-accurate verdict is reapplied at event time (TreeWatcher.handleEvent
165
- * re-checks with the known kind), so this only widens descent, never emit.
212
+ * Chokidar first calls this with no stats, before it has chosen whether to
213
+ * recurse. That call is a DIRECTORY question, not an event-emission question:
214
+ * consulting `shouldEmit(path, false)` here lets directory-only ignores such
215
+ * as `node_modules/` masquerade as files and opens their whole subtree. The
216
+ * directory branch of createIgnoreFilter already contains the exact
217
+ * `.hqinclude` ancestor matcher, so it is both safe and sufficient to consult
218
+ * `shouldEmit(path, true)` at this gate.
166
219
  */
167
- function toChokidarIgnored(shouldEmit, hqRoot) {
220
+ export function toChokidarIgnored(shouldEmit, hqRoot, budget) {
168
221
  const root = path.resolve(hqRoot);
169
222
  return (filePath, stats) => {
170
223
  // The watched root itself must NEVER be ignored, or chokidar tears down
171
224
  // the whole watch. (shouldEmit returns false for it — it's not a valid
172
225
  // emit target — so we special-case it here.)
173
- if (path.resolve(filePath) === root)
174
- return false;
226
+ if (path.resolve(filePath) === root) {
227
+ return stats?.isDirectory() && budget !== undefined
228
+ ? !budget.admit(filePath)
229
+ : false;
230
+ }
175
231
  const isDir = stats?.isDirectory();
176
232
  if (isDir === undefined) {
177
- // Pre-stat descent probe: keep the path if it could be an in-scope file
178
- // OR an ancestor directory of one.
179
- return !(shouldEmit(filePath, false) || shouldEmit(filePath, true));
233
+ // This is chokidar's descent decision. The `isDir=true` branch includes
234
+ // only precise .hqinclude ancestors, rather than widening descent for
235
+ // every path that could happen to be an allowed file.
236
+ return !shouldEmit(filePath, true);
237
+ }
238
+ if (isDir) {
239
+ return (!shouldEmit(filePath, true) ||
240
+ (budget !== undefined && !budget.admit(filePath)));
180
241
  }
181
242
  return !shouldEmit(filePath, isDir);
182
243
  };
183
244
  }
245
+ function isInotifyLimitError(err) {
246
+ return (typeof err === "object" &&
247
+ err !== null &&
248
+ "code" in err &&
249
+ err.code === "ENOSPC");
250
+ }
251
+ function errorPath(err) {
252
+ if (typeof err === "object" &&
253
+ err !== null &&
254
+ "path" in err &&
255
+ typeof err.path === "string") {
256
+ return err.path;
257
+ }
258
+ return undefined;
259
+ }
184
260
  /**
185
261
  * Platforms where Node's `fs.watch(dir, { recursive: true })` is natively
186
262
  * supported by a SINGLE OS handle: macOS (FSEvents) and Windows
@@ -191,18 +267,32 @@ function toChokidarIgnored(shouldEmit, hqRoot) {
191
267
  function supportsRecursiveWatch() {
192
268
  return process.platform === "darwin" || process.platform === "win32";
193
269
  }
194
- function startChokidarTreeWatch(hqRoot, shouldEmit, onEvent, onError) {
195
- const cw = watch(hqRoot, {
196
- // chokidar fallback (Linux): see toChokidarIgnored for why the descent
197
- // probe must not prune ancestor dirs of allowlisted leaves.
198
- ignored: toChokidarIgnored(shouldEmit, hqRoot),
199
- persistent: true,
200
- ignoreInitial: true,
201
- awaitWriteFinish: {
202
- stabilityThreshold: 500,
203
- pollInterval: 100,
204
- },
205
- });
270
+ function startChokidarTreeWatch(hqRoot, shouldEmit, onEvent, onError, maxWatchedPaths, onWatchBudgetExceeded) {
271
+ const budget = new ChokidarWatchBudget(maxWatchedPaths, onWatchBudgetExceeded);
272
+ let cw;
273
+ try {
274
+ cw = watch(hqRoot, {
275
+ // On Linux chokidar adds one fs.watch/inotify watch per descended dir.
276
+ // The predicate therefore enforces both scope and the hard per-runner cap.
277
+ ignored: toChokidarIgnored(shouldEmit, hqRoot, budget),
278
+ persistent: true,
279
+ ignoreInitial: true,
280
+ awaitWriteFinish: {
281
+ stabilityThreshold: 500,
282
+ pollInterval: 100,
283
+ },
284
+ });
285
+ }
286
+ catch (err) {
287
+ // Some chokidar/fs.watch versions surface ENOSPC synchronously. Route it
288
+ // through the same degradation path as an asynchronous backend error.
289
+ onError(err);
290
+ return {
291
+ close: () => { },
292
+ needsKnownKinds: false,
293
+ watchedPathCount: () => budget.count(),
294
+ };
295
+ }
206
296
  cw.on("add", (p) => onEvent(p, "add"))
207
297
  .on("change", (p) => onEvent(p, "change"))
208
298
  .on("unlink", (p) => onEvent(p, "unlink"))
@@ -213,6 +303,8 @@ function startChokidarTreeWatch(hqRoot, shouldEmit, onEvent, onError) {
213
303
  close: () => {
214
304
  void cw.close();
215
305
  },
306
+ needsKnownKinds: false,
307
+ watchedPathCount: () => budget.count(),
216
308
  };
217
309
  }
218
310
  /**
@@ -235,7 +327,7 @@ function startChokidarTreeWatch(hqRoot, shouldEmit, onEvent, onError) {
235
327
  * backend is immune to the `.hqinclude` ancestor-descent pruning that the
236
328
  * chokidar backend needs {@link toChokidarIgnored} to avoid.
237
329
  */
238
- function startTreeWatch(hqRoot, shouldEmit, onEvent, onError) {
330
+ function startTreeWatch(hqRoot, shouldEmit, onEvent, onError, maxWatchedPaths, onWatchBudgetExceeded) {
239
331
  if (supportsRecursiveWatch()) {
240
332
  try {
241
333
  const native = fs.watch(hqRoot, { recursive: true, persistent: true }, (eventType, filename) => {
@@ -262,7 +354,7 @@ function startTreeWatch(hqRoot, shouldEmit, onEvent, onError) {
262
354
  /* already closed */
263
355
  }
264
356
  try {
265
- fallback = startChokidarTreeWatch(hqRoot, shouldEmit, onEvent, onError);
357
+ fallback = startChokidarTreeWatch(hqRoot, shouldEmit, onEvent, onError, maxWatchedPaths, onWatchBudgetExceeded);
266
358
  }
267
359
  catch (fallbackErr) {
268
360
  onError(fallbackErr);
@@ -280,6 +372,8 @@ function startTreeWatch(hqRoot, shouldEmit, onEvent, onError) {
280
372
  fallback?.close();
281
373
  fallback = null;
282
374
  },
375
+ needsKnownKinds: true,
376
+ watchedPathCount: () => fallback?.watchedPathCount() ?? 1,
283
377
  };
284
378
  }
285
379
  catch (err) {
@@ -288,7 +382,7 @@ function startTreeWatch(hqRoot, shouldEmit, onEvent, onError) {
288
382
  onError(err);
289
383
  }
290
384
  }
291
- return startChokidarTreeWatch(hqRoot, shouldEmit, onEvent, onError);
385
+ return startChokidarTreeWatch(hqRoot, shouldEmit, onEvent, onError, maxWatchedPaths, onWatchBudgetExceeded);
292
386
  }
293
387
  /**
294
388
  * Build the composite emit-decision predicate. Returns true when a change to
@@ -403,7 +497,12 @@ export class TreeWatcher {
403
497
  shouldEmit;
404
498
  maxPendingPaths;
405
499
  maxPendingBytes;
500
+ maxWatchedPaths;
406
501
  onBacklogOverflow;
502
+ onDegraded;
503
+ telemetryClient;
504
+ telemetryClaims;
505
+ backendFactory;
407
506
  captureLocalDeleteSnapshots;
408
507
  backend = null;
409
508
  timer = null;
@@ -417,6 +516,7 @@ export class TreeWatcher {
417
516
  overflowLogged = false;
418
517
  droppedPaths = 0;
419
518
  droppedBytes = 0;
519
+ degraded = false;
420
520
  disposed = false;
421
521
  constructor(opts) {
422
522
  this.hqRoot = opts.hqRoot;
@@ -426,11 +526,20 @@ export class TreeWatcher {
426
526
  opts.pathFilter ?? createWatchPathFilter(opts.hqRoot, opts.personalMode ?? false);
427
527
  this.maxPendingPaths = Math.max(1, opts.maxPendingPaths ?? DEFAULT_TREE_WATCHER_MAX_PENDING_PATHS);
428
528
  this.maxPendingBytes = Math.max(1, opts.maxPendingBytes ?? DEFAULT_TREE_WATCHER_MAX_PENDING_BYTES);
529
+ this.maxWatchedPaths = resolveMaxWatchedPaths(opts.maxWatchedPaths);
429
530
  this.onBacklogOverflow =
430
531
  opts.onBacklogOverflow ??
431
532
  ((info) => {
432
533
  console.warn(`TreeWatcher backlog cap exceeded; dropping ${info.droppedPaths} path(s) until the next resync`);
433
534
  });
535
+ this.onDegraded =
536
+ opts.onDegraded ??
537
+ ((info) => {
538
+ console.error(JSON.stringify({ event: "watcher.degraded", ...info }));
539
+ });
540
+ this.telemetryClient = opts.telemetryClient;
541
+ this.telemetryClaims = opts.telemetryClaims;
542
+ this.backendFactory = opts.backendFactory;
434
543
  this.captureLocalDeleteSnapshots = opts.captureLocalDeleteSnapshots;
435
544
  }
436
545
  /**
@@ -454,13 +563,88 @@ export class TreeWatcher {
454
563
  * for why per-path watching is avoided (kqueue fd exhaustion → EMFILE).
455
564
  */
456
565
  start() {
457
- if (this.disposed || this.backend)
566
+ if (this.disposed || this.degraded || this.backend)
458
567
  return;
459
- this.backend = startTreeWatch(this.hqRoot, this.shouldEmit, (absolutePath, kind) => this.handleEvent(absolutePath, kind), (err) => {
460
- console.error("TreeWatcher error:", err);
461
- this.signalBackendResync();
462
- });
463
- this.seedKnownKinds();
568
+ const backendOpts = {
569
+ hqRoot: this.hqRoot,
570
+ shouldEmit: this.shouldEmit,
571
+ onEvent: (absolutePath, kind) => this.handleEvent(absolutePath, kind),
572
+ onError: (err) => this.handleBackendError(err),
573
+ maxWatchedPaths: this.maxWatchedPaths,
574
+ onWatchBudgetExceeded: (info) => this.degrade({
575
+ reason: "watch_budget_exhausted",
576
+ maxWatchedPaths: info.maxWatchedPaths,
577
+ watchedPaths: info.watchedPaths,
578
+ offendingPath: info.offendingPath,
579
+ offendingTopLevel: this.topLevelForTelemetry(info.offendingPath),
580
+ }),
581
+ };
582
+ const backend = this.backendFactory
583
+ ? this.backendFactory(backendOpts)
584
+ : startTreeWatch(backendOpts.hqRoot, backendOpts.shouldEmit, backendOpts.onEvent, backendOpts.onError, backendOpts.maxWatchedPaths, backendOpts.onWatchBudgetExceeded);
585
+ // A test backend (or a future eager backend) can discover exhaustion while
586
+ // it is being constructed. Never retain that just-created handle after the
587
+ // degradation path has deliberately disabled event watching.
588
+ if (this.degraded) {
589
+ backend.close();
590
+ return;
591
+ }
592
+ this.backend = backend;
593
+ if (backend.needsKnownKinds)
594
+ this.seedKnownKinds();
595
+ }
596
+ handleBackendError(err) {
597
+ if (isInotifyLimitError(err)) {
598
+ const offendingPath = errorPath(err);
599
+ this.degrade({
600
+ reason: "inotify_enospc",
601
+ maxWatchedPaths: this.maxWatchedPaths,
602
+ watchedPaths: this.backend?.watchedPathCount() ?? 0,
603
+ offendingPath,
604
+ offendingTopLevel: offendingPath
605
+ ? this.topLevelForTelemetry(offendingPath)
606
+ : undefined,
607
+ errorCode: "ENOSPC",
608
+ });
609
+ return;
610
+ }
611
+ console.error("TreeWatcher error:", err);
612
+ this.signalBackendResync();
613
+ }
614
+ topLevelForTelemetry(absolutePath) {
615
+ const rel = path.relative(this.hqRoot, absolutePath).split(path.sep);
616
+ const topLevel = rel[0];
617
+ return topLevel && topLevel !== ".." ? topLevel : undefined;
618
+ }
619
+ degrade(info) {
620
+ if (this.disposed || this.degraded)
621
+ return;
622
+ this.degraded = true;
623
+ // Closing synchronously prevents further directory admissions while
624
+ // chokidar's initial walk is still in flight.
625
+ this.backend?.close();
626
+ this.backend = null;
627
+ try {
628
+ this.onDegraded(info);
629
+ }
630
+ catch (err) {
631
+ console.error("TreeWatcher degradation reporter error:", err);
632
+ }
633
+ void emitCloudTelemetry(this.telemetryClient, {
634
+ eventName: "watcher_degraded",
635
+ source: "watcher",
636
+ properties: {
637
+ reason: info.reason,
638
+ maxWatchedPaths: info.maxWatchedPaths,
639
+ watchedPaths: info.watchedPaths,
640
+ ...(info.offendingTopLevel
641
+ ? { offendingTopLevel: info.offendingTopLevel }
642
+ : {}),
643
+ },
644
+ }, { claims: this.telemetryClaims });
645
+ // The existing overflow/resync batch causes the runner to use its scoped
646
+ // drain while the cadence poll continues covering everything else.
647
+ this.signalBackendResync();
464
648
  }
465
649
  signalBackendResync() {
466
650
  if (this.disposed)
@@ -531,7 +715,14 @@ export class TreeWatcher {
531
715
  }
532
716
  else {
533
717
  this.pendingChanges.set(abs, { kind });
534
- this.knownKinds.set(abs, isDir ? "directory" : "file");
718
+ // Only directories are needed to disambiguate a native recursive
719
+ // rename-after-delete. Unknown paths already correctly default to an
720
+ // unlink file, so retaining every file ever touched made this map grow
721
+ // without bound in a long-lived runner.
722
+ if (isDir)
723
+ this.knownKinds.set(abs, "directory");
724
+ else
725
+ this.knownKinds.delete(abs);
535
726
  }
536
727
  this.arm();
537
728
  }
@@ -552,9 +743,6 @@ export class TreeWatcher {
552
743
  this.knownKinds.set(path.resolve(absolutePath), "directory");
553
744
  visit(absolutePath);
554
745
  }
555
- else if (this.shouldEmit(absolutePath, false)) {
556
- this.knownKinds.set(path.resolve(absolutePath), "file");
557
- }
558
746
  }
559
747
  };
560
748
  visit(this.hqRoot);
@@ -635,6 +823,10 @@ export class TreeWatcher {
635
823
  pendingTimerCount() {
636
824
  return this.timer === null ? 0 : 1;
637
825
  }
826
+ /** Number of native-rename directory hints retained for deletion handling. */
827
+ knownDirectoryCount() {
828
+ return this.knownKinds.size;
829
+ }
638
830
  /**
639
831
  * Stop watching: close the watch backend (releasing its OS handle) and
640
832
  * cancel any pending debounce timer. Idempotent. The instance can be
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"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"}