@indigoai-us/hq-cloud 6.15.64 → 6.15.66

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.d.ts CHANGED
@@ -404,6 +404,12 @@ export interface TreeChangeBatch {
404
404
  /** Approximate path-string bytes dropped from the detailed batch. */
405
405
  droppedBytes?: number;
406
406
  }
407
+ /** One bounded startup recovery scan, run after chokidar finishes discovery. */
408
+ export interface TreeWatcherWarmupCatchup {
409
+ batch: TreeChangeBatch;
410
+ /** In-scope filesystem entries inspected by the one necessary local scan. */
411
+ scannedPaths: number;
412
+ }
407
413
  /**
408
414
  * Listener invoked once per settled debounce window.
409
415
  *
@@ -520,6 +526,17 @@ export declare class TreeWatcher {
520
526
  private arm;
521
527
  private emit;
522
528
  private clearPending;
529
+ /**
530
+ * Recover mutations that happened while chokidar was building its initial
531
+ * watch set. `ignoreInitial` intentionally suppresses those initial events,
532
+ * so this makes one post-ready local pass and emits only timestamp-new paths.
533
+ *
534
+ * `journalRelativePaths` supplies the durable prior inventory: comparing it
535
+ * with the paths observed by the same walk finds a warm-up deletion without a
536
+ * second filesystem walk. Unchanged files never enter the returned batch, so
537
+ * the runner retains the normal path-scoped push behavior.
538
+ */
539
+ collectWarmupCatchup(sinceMs: number, journalRelativePaths?: Iterable<string>): TreeWatcherWarmupCatchup;
523
540
  /** True while the watch backend is active. */
524
541
  isWatching(): boolean;
525
542
  /** Number of directories admitted by the active backend (zero when stopped). */
@@ -584,10 +601,20 @@ export interface PushEventEmitterOptions {
584
601
  telemetryClaims?: TelemetryClaims | null;
585
602
  /**
586
603
  * Maximum paths remembered to suppress unchanged upsert announcements.
587
- * Process-local by design: restart re-announces once rather than risking a
588
- * missed real change from stale persisted state.
604
+ * Applies to both the hot in-memory LRU and its durable counterpart.
589
605
  */
590
606
  lastPublishedContentHashMaxPaths?: number;
607
+ /**
608
+ * Existing runner state directory for restart-durable publish suppression.
609
+ * Omitted for lightweight callers and isolated unit tests.
610
+ */
611
+ lastPublishedContentHashStateDir?: string;
612
+ /**
613
+ * Hashes already present in the durable sync journal when a pre-persistence
614
+ * installation first creates this state store. They are only used to seed a
615
+ * brand-new store; subsequent state is written after publish success.
616
+ */
617
+ initialPublishedContentHashes?: Readonly<Record<string, string>>;
591
618
  }
592
619
  /**
593
620
  * Minimal structured logger surface for {@link PushEventEmitter}. A pino
@@ -648,6 +675,8 @@ export declare class PushEventEmitter {
648
675
  private readonly telemetryClient;
649
676
  private readonly telemetryClaims;
650
677
  private readonly lastPublishedContentHashes;
678
+ private readonly durablePublishedContentHashes;
679
+ private readonly lastPublishedContentHashMaxPaths;
651
680
  private internalSeq;
652
681
  private readonly nextSeq;
653
682
  private publishTail;
@@ -670,6 +699,10 @@ export declare class PushEventEmitter {
670
699
  emitForBatch(batch: TreeChangeBatch): Promise<void>;
671
700
  private emitEntries;
672
701
  private emitOne;
702
+ private openDurablePublishedContentHashes;
703
+ private wasPublished;
704
+ private setDurablePublishedContentHash;
705
+ private deleteDurablePublishedContentHash;
673
706
  private emitPublishFailureTelemetry;
674
707
  }
675
708
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAqBzB,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAI/B;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAChD,eAAO,MAAM,yBAAyB,SAAU,CAAC;AACjD,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AACjE,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,mBAAmB,CAcrB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,sCAAsC,QAAS,CAAC;AAC7D,eAAO,MAAM,kCAAkC,8BAA8B,CAAC;AAC9E,eAAO,MAAM,kCAAkC,SAAU,CAAC;AAG1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,KAAK,MAAM,CAAC;CAClE;AAQD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,GAAE,oBAAiD,GACzD,MAAM,CA8BR;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,KAAK;IACpB,iEAAiE;IACjE,UAAU,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAChD,+EAA+E;IAC/E,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,kCAAkC;IAClC,GAAG,IAAI,MAAM,CAAC;CACf;AAED,2EAA2E;AAC3E,eAAO,MAAM,WAAW,EAAE,KAIzB,CAAC;AAQF;;;;GAIG;AACH,qBAAa,SAAU,YAAW,KAAK;IACrC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAgC;IAE9C,GAAG,IAAI,MAAM;IAIb,UAAU,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAM/C,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAInC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAezB,+DAA+D;IAC/D,iBAAiB,IAAI,MAAM;CAG5B;AAED,wEAAwE;AACxE,MAAM,MAAM,MAAM,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE,sBAAsB;IAMxC;;;OAGG;IACH,YAAY,IAAI,IAAI;YAcN,IAAI;IAoBlB,2CAA2C;IAC3C,SAAS,IAAI,OAAO;IAIpB,8EAA8E;IAC9E,OAAO,IAAI,IAAI;CAQhB;AAgBD,sEAAsE;AACtE,MAAM,MAAM,eAAe,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;AAEjF,MAAM,WAAW,8BAA8B;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,SAAS,CAAS;gBAGP,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,CAAC,IAAI,EAAE,8BAA8B,KAAK,IAAI;IAG7E,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAkBpC,KAAK,IAAI,MAAM;CAGhB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,mBAAmB,GAC3B,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,CA0BjD;AAED,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,IAAI,CAAC;IACd,8EAA8E;IAC9E,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IACzC,0EAA0E;IAC1E,eAAe,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mFAAmF;IACnF,gBAAgB,IAAI,MAAM,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EACF,wBAAwB,GACxB,gBAAgB,GAChB,2BAA2B,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjE,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,CAAC,IAAI,EAAE,8BAA8B,KAAK,IAAI,CAAC;IACtE;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,mFAAmF;IACnF,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,uBAAuB,GAAG,CACpC,IAAI,EAAE,uBAAuB,KAC1B,YAAY,CAAC;AAuBlB,MAAM,MAAM,cAAc,GACtB,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,WAAW,CAAC;AAEhB,8EAA8E;AAC9E,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACzC;AAED,KAAK,iBAAiB,GAAG,cAAc,GAAG,QAAQ,CAAC;AAkHnD,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,KAAK,IAAI,EAChE,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,EAC/B,eAAe,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,GAC/C,kBAAkB,CAsPpB;AAmED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,YAAY,UAAQ,EACpB,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9C,eAAe,CAsGjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,sCAAsC,QAAS,CAAC;AAC7D,eAAO,MAAM,sCAAsC,QAAkB,CAAC;AACtE,eAAO,MAAM,kCAAkC,8BAA8B,CAAC;AAC9E,eAAO,MAAM,kCAAkC,8BAA8B,CAAC;AAiB9E,iGAAiG;AACjG,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,MAAM,CAOR;AAED,6FAA6F;AAC7F,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,MAAM,CAOR;AACD,yFAAyF;AACzF,eAAO,MAAM,yCAAyC,QAAS,CAAC;AAChE;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,KAAK,CAAC;AAEvD,MAAM,WAAW,0BAA0B;IACzC,oDAAoD;IACpD,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1B,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,cAAc,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AASD,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oFAAoF;IACpF,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC/D;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACpD,qEAAqE;IACrE,eAAe,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,gFAAgF;IAChF,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,2BAA2B,CAAC,EAAE,CAC5B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,QAAQ,GAAG,WAAW,KACzB,mBAAmB,EAAE,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,gFAAgF;AAChF,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,eAAe,CAAC;IACvB,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE,eAAe,KACpB,IAAI,CAAC;AAEV,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6C;IAC/E,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyC;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAC1E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqC;IACrE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAoD;IACjG,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,cAAc,CAAiB;IACvC,qFAAqF;IACrF,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,SAAS,CAAiC;IAClD,qEAAqE;IACrE,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,yFAAyF;IACzF,OAAO,CAAC,iBAAiB,CAA6B;IACtD,oEAAoE;IACpE,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE,kBAAkB;IA0CpC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAKlD;;;;;;;OAOG;IACH,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,YAAY;IA2CpB,OAAO,CAAC,cAAc;IA2CtB,+EAA+E;IAC/E,OAAO,CAAC,6BAA6B;IAoBrC,kFAAkF;IAClF,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IASzC,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,mBAAmB;IAS3B;;;;;OAKG;IACH,WAAW,CACT,YAAY,EAAE,MAAM,EACpB,WAAW,GAAE,iBAA4B,GACxC,IAAI;IAsFP,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,qBAAqB;IAgC7B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,OAAO,CAAC,GAAG;IAsBX,OAAO,CAAC,IAAI;IA8BZ,OAAO,CAAC,YAAY;IAcpB;;;;;;;;;OASG;IACH,oBAAoB,CAClB,OAAO,EAAE,MAAM,EACf,oBAAoB,GAAE,QAAQ,CAAC,MAAM,CAAM,GAC1C,wBAAwB;IA4D3B,8CAA8C;IAC9C,UAAU,IAAI,OAAO;IAIrB,gFAAgF;IAChF,gBAAgB,IAAI,MAAM;IAI1B,sEAAsE;IACtE,SAAS,IAAI,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS;IAIvE,kEAAkE;IAClE,iBAAiB,IAAI,MAAM;IAI3B,8EAA8E;IAC9E,mBAAmB,IAAI,MAAM;IAI7B;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAgBZ,8EAA8E;IAC9E,OAAO,IAAI,IAAI;CAMhB;AAwBD,mFAAmF;AACnF,eAAO,MAAM,wCAAwC,QAAS,CAAC;AAuJ/D,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,cAAc,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,SAAS,EAAE,aAAa,CAAC;IACzB;;;;;OAKG;IACH,YAAY,EAAE,2BAA2B,CAAC;IAC1C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC;IACjC,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/D,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC1D;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,iFAAiF;IACjF,eAAe,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC;;;OAGG;IACH,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C;;;OAGG;IACH,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C;;;;OAIG;IACH,6BAA6B,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClE;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxD;AAED,gFAAgF;AAChF,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,GAAG;IACjE,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,sCAAsC,QAAY,CAAC;AAEhE,qFAAqF;AACrF,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,mBAAmB,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,IAAI,CAAC;IACT,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,8FAA8F;IAC9F,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,mBAAmB,EAAE,GAC9B,mBAAmB,CAsCrB;AAED;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAM;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAC3D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuD;IAC/E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyC;IAC1E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;IAC1E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqC;IACrE,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAgC;IAC3E,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAuC;IACrF,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAS;IAC1D,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,WAAW,CAAoC;gBAE3C,IAAI,EAAE,uBAAuB;IAuCzC,uEAAuE;IACvE,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,IAAI;IAOxC;;;;;;OAMG;IACG,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAe3C,WAAW;YA+BX,OAAO;IA8GrB,OAAO,CAAC,iCAAiC;IAiBzC,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,8BAA8B;IAiBtC,OAAO,CAAC,iCAAiC;IAUzC,OAAO,CAAC,2BAA2B;CAmBpC"}
package/dist/watcher.js CHANGED
@@ -12,8 +12,9 @@ import * as path from "path";
12
12
  import { watch } from "chokidar";
13
13
  import { createIgnoreFilter } from "./ignore.js";
14
14
  import { isCoveredByRecursiveRoot, planWatchRoots, } from "./watch-roots.js";
15
- import { vaultKeyForLocalPath } from "./local-path-codec.js";
15
+ import { localPathForVaultKey, vaultKeyForLocalPath } from "./local-path-codec.js";
16
16
  import { isPersonalVaultExcluded } from "./personal-vault-exclusions.js";
17
+ import { StateStore } from "./sync/state-store.js";
17
18
  import { AGENCY_SYNC_REL, CONTINUITY_POINTER_REL, SESSION_LOGS_SYNC_REL, PERSONAL_VAULT_EXCLUDED_TOP_LEVEL, } from "./personal-vault.js";
18
19
  import { getPublishFailureOutcome, getPublishSuccessOutcome, serializePublishError, } from "./sync/push-transport.js";
19
20
  import { emitCloudTelemetry, } from "./telemetry-events.js";
@@ -1433,6 +1434,79 @@ export class TreeWatcher {
1433
1434
  this.droppedRouteHints.clear();
1434
1435
  this.droppedRoutesUnknown = false;
1435
1436
  }
1437
+ /**
1438
+ * Recover mutations that happened while chokidar was building its initial
1439
+ * watch set. `ignoreInitial` intentionally suppresses those initial events,
1440
+ * so this makes one post-ready local pass and emits only timestamp-new paths.
1441
+ *
1442
+ * `journalRelativePaths` supplies the durable prior inventory: comparing it
1443
+ * with the paths observed by the same walk finds a warm-up deletion without a
1444
+ * second filesystem walk. Unchanged files never enter the returned batch, so
1445
+ * the runner retains the normal path-scoped push behavior.
1446
+ */
1447
+ collectWarmupCatchup(sinceMs, journalRelativePaths = []) {
1448
+ const paths = new Map();
1449
+ const changes = new Map();
1450
+ const observed = new Set();
1451
+ let scannedPaths = 0;
1452
+ const record = (absolutePath, kind) => {
1453
+ const absolute = path.resolve(absolutePath);
1454
+ const relative = vaultKeyForLocalPath(this.hqRoot, absolute);
1455
+ observed.add(relative);
1456
+ let entry;
1457
+ try {
1458
+ entry = fs.lstatSync(absolute);
1459
+ }
1460
+ catch {
1461
+ return;
1462
+ }
1463
+ if (entry.mtimeMs < sinceMs && entry.ctimeMs < sinceMs)
1464
+ return;
1465
+ paths.set(absolute, relative);
1466
+ changes.set(absolute, { kind });
1467
+ };
1468
+ const visit = (dir) => {
1469
+ let entries;
1470
+ try {
1471
+ entries = fs.readdirSync(dir, { withFileTypes: true });
1472
+ }
1473
+ catch {
1474
+ return;
1475
+ }
1476
+ for (const entry of entries) {
1477
+ const absolute = path.join(dir, entry.name);
1478
+ scannedPaths += 1;
1479
+ if (entry.isDirectory()) {
1480
+ if (this.shouldEmit(absolute, true))
1481
+ visit(absolute);
1482
+ continue;
1483
+ }
1484
+ if (!entry.isFile() && !entry.isSymbolicLink())
1485
+ continue;
1486
+ // A symlink may be admitted only by a directory-only include rule.
1487
+ if (!this.shouldEmit(absolute, false) &&
1488
+ !this.shouldEmit(absolute, true))
1489
+ continue;
1490
+ record(absolute, "change");
1491
+ }
1492
+ };
1493
+ visit(this.hqRoot);
1494
+ for (const relative of journalRelativePaths) {
1495
+ if (observed.has(relative))
1496
+ continue;
1497
+ const absolute = localPathForVaultKey(this.hqRoot, relative);
1498
+ if (!this.shouldEmit(absolute, false) && !this.shouldEmit(absolute, true)) {
1499
+ continue;
1500
+ }
1501
+ paths.set(absolute, relative);
1502
+ const deleteSnapshots = this.captureLocalDeleteSnapshots?.(relative, "unlink") ?? [];
1503
+ changes.set(absolute, {
1504
+ kind: "unlink",
1505
+ ...(deleteSnapshots.length > 0 ? { deleteSnapshots } : {}),
1506
+ });
1507
+ }
1508
+ return { batch: { paths, changes }, scannedPaths };
1509
+ }
1436
1510
  /** True while the watch backend is active. */
1437
1511
  isWatching() {
1438
1512
  return this.backend !== null;
@@ -1503,6 +1577,85 @@ async function computeContentHash(absolutePath) {
1503
1577
  }
1504
1578
  /** Maximum paths remembered by one emitter to suppress unchanged announcements. */
1505
1579
  export const DEFAULT_PUBLISHED_CONTENT_HASH_MAX_PATHS = 50_000;
1580
+ const PUBLISHED_CONTENT_HASH_RECORD_SET = 0x5031;
1581
+ const PUBLISHED_CONTENT_HASH_RECORD_DELETE = 0x5032;
1582
+ /**
1583
+ * Bounded, crash-safe state of hashes whose push event transport acknowledged
1584
+ * publication. This is intentionally separate from the sync journal: a
1585
+ * journal row proves the object upload completed, while the event publish that
1586
+ * follows can still fail or time out.
1587
+ */
1588
+ class DurablePublishedContentHashes {
1589
+ store;
1590
+ constructor(stateDir, scopeId, maxPaths, initialHashes) {
1591
+ this.store = StateStore.open({
1592
+ rootDir: stateDir,
1593
+ scopeId: `event-push-published-content:${scopeId}`,
1594
+ initialState: boundedDurablePublishedContentHashState(initialHashes, maxPaths),
1595
+ reduce: reduceDurablePublishedContentHashState,
1596
+ maxRecordsBeforeCompaction: Math.min(Math.max(maxPaths, 256), 4_096),
1597
+ });
1598
+ }
1599
+ get(relativePath) {
1600
+ return this.store.getState().hashes[relativePath];
1601
+ }
1602
+ set(relativePath, contentHash, maxPaths) {
1603
+ this.store.append(PUBLISHED_CONTENT_HASH_RECORD_SET, {
1604
+ relativePath,
1605
+ contentHash,
1606
+ maxPaths,
1607
+ });
1608
+ }
1609
+ delete(relativePath) {
1610
+ this.store.append(PUBLISHED_CONTENT_HASH_RECORD_DELETE, { relativePath });
1611
+ }
1612
+ }
1613
+ function boundedDurablePublishedContentHashState(hashes, maxPaths) {
1614
+ const order = Object.keys(hashes).slice(-maxPaths);
1615
+ return {
1616
+ hashes: Object.fromEntries(order.map((relativePath) => [relativePath, hashes[relativePath]])),
1617
+ order,
1618
+ };
1619
+ }
1620
+ function reduceDurablePublishedContentHashState(state, record) {
1621
+ if (record.type === PUBLISHED_CONTENT_HASH_RECORD_SET) {
1622
+ const payload = record.payload;
1623
+ if (typeof payload.relativePath !== "string" ||
1624
+ payload.relativePath.length === 0 ||
1625
+ typeof payload.contentHash !== "string" ||
1626
+ payload.contentHash.length === 0 ||
1627
+ typeof payload.maxPaths !== "number" ||
1628
+ !Number.isSafeInteger(payload.maxPaths) ||
1629
+ payload.maxPaths < 1) {
1630
+ throw new Error("published-content-hashes: invalid set record");
1631
+ }
1632
+ const maxPaths = payload.maxPaths;
1633
+ const hashes = { ...state.hashes, [payload.relativePath]: payload.contentHash };
1634
+ const order = state.order.filter((path) => path !== payload.relativePath);
1635
+ order.push(payload.relativePath);
1636
+ while (order.length > maxPaths) {
1637
+ const oldest = order.shift();
1638
+ if (oldest !== undefined)
1639
+ delete hashes[oldest];
1640
+ }
1641
+ return { hashes, order };
1642
+ }
1643
+ if (record.type === PUBLISHED_CONTENT_HASH_RECORD_DELETE) {
1644
+ const payload = record.payload;
1645
+ if (typeof payload.relativePath !== "string" || payload.relativePath.length === 0) {
1646
+ throw new Error("published-content-hashes: invalid delete record");
1647
+ }
1648
+ if (!(payload.relativePath in state.hashes))
1649
+ return state;
1650
+ const hashes = { ...state.hashes };
1651
+ delete hashes[payload.relativePath];
1652
+ return {
1653
+ hashes,
1654
+ order: state.order.filter((path) => path !== payload.relativePath),
1655
+ };
1656
+ }
1657
+ throw new Error("published-content-hashes: unknown record type");
1658
+ }
1506
1659
  /**
1507
1660
  * LRU state of successfully announced file content, bounded for daemon uptime.
1508
1661
  *
@@ -1600,6 +1753,8 @@ export class PushEventEmitter {
1600
1753
  telemetryClient;
1601
1754
  telemetryClaims;
1602
1755
  lastPublishedContentHashes;
1756
+ durablePublishedContentHashes;
1757
+ lastPublishedContentHashMaxPaths;
1603
1758
  internalSeq = 0;
1604
1759
  nextSeq;
1605
1760
  publishTail = Promise.resolve();
@@ -1612,10 +1767,15 @@ export class PushEventEmitter {
1612
1767
  this.logger = opts.logger;
1613
1768
  this.telemetryClient = opts.telemetryClient;
1614
1769
  this.telemetryClaims = opts.telemetryClaims;
1615
- this.lastPublishedContentHashes = new BoundedPublishedContentHashes(opts.lastPublishedContentHashMaxPaths);
1616
1770
  this.onError =
1617
1771
  opts.onError ??
1618
1772
  ((err, ctx) => console.error("PushEventEmitter error:", ctx.relativePath ?? "", err));
1773
+ this.lastPublishedContentHashMaxPaths = Math.max(1, Math.floor(opts.lastPublishedContentHashMaxPaths ??
1774
+ DEFAULT_PUBLISHED_CONTENT_HASH_MAX_PATHS));
1775
+ this.lastPublishedContentHashes = new BoundedPublishedContentHashes(this.lastPublishedContentHashMaxPaths);
1776
+ this.durablePublishedContentHashes = opts.lastPublishedContentHashStateDir
1777
+ ? this.openDurablePublishedContentHashes(opts.lastPublishedContentHashStateDir, opts.initialPublishedContentHashes ?? {})
1778
+ : null;
1619
1779
  this.onPublishOutcome = opts.onPublishOutcome ?? (() => undefined);
1620
1780
  this.nextSeq =
1621
1781
  opts.getSequenceNumber ??
@@ -1684,13 +1844,14 @@ export class PushEventEmitter {
1684
1844
  if (st.isDirectory())
1685
1845
  return undefined;
1686
1846
  const contentHash = await computeContentHash(absolutePath);
1687
- if (this.lastPublishedContentHashes.get(relativePath) === contentHash) {
1847
+ if (this.wasPublished(relativePath, contentHash)) {
1688
1848
  return undefined;
1689
1849
  }
1690
1850
  // A different observed revision breaks the old publication guarantee even
1691
1851
  // if this transport attempt fails. Clearing first makes a later revert
1692
1852
  // re-announce instead of silently treating it as the old content.
1693
1853
  this.lastPublishedContentHashes.delete(relativePath);
1854
+ this.deleteDurablePublishedContentHash(relativePath);
1694
1855
  event = {
1695
1856
  kind: "upsert",
1696
1857
  relativePath,
@@ -1719,6 +1880,7 @@ export class PushEventEmitter {
1719
1880
  // Invalidate before the attempt for the same failure/recreation posture
1720
1881
  // as a changed upsert above.
1721
1882
  this.lastPublishedContentHashes.delete(relativePath);
1883
+ this.deleteDurablePublishedContentHash(relativePath);
1722
1884
  event = {
1723
1885
  kind: "delete",
1724
1886
  relativePath,
@@ -1747,11 +1909,13 @@ export class PushEventEmitter {
1747
1909
  await this.transport.publish(event);
1748
1910
  if (event.kind === "upsert" && event.contentHash !== undefined) {
1749
1911
  this.lastPublishedContentHashes.set(relativePath, event.contentHash);
1912
+ this.setDurablePublishedContentHash(relativePath, event.contentHash);
1750
1913
  }
1751
1914
  else {
1752
1915
  // A later recreation with the same bytes is a real state transition,
1753
1916
  // so a successfully published tombstone must never suppress it.
1754
1917
  this.lastPublishedContentHashes.delete(relativePath);
1918
+ this.deleteDurablePublishedContentHash(relativePath);
1755
1919
  }
1756
1920
  const outcome = getPublishSuccessOutcome(event);
1757
1921
  return {
@@ -1775,6 +1939,52 @@ export class PushEventEmitter {
1775
1939
  };
1776
1940
  }
1777
1941
  }
1942
+ openDurablePublishedContentHashes(stateDir, initialHashes) {
1943
+ try {
1944
+ return new DurablePublishedContentHashes(stateDir, `${this.originTenantId}:${this.originDeviceId}`, this.lastPublishedContentHashMaxPaths, initialHashes);
1945
+ }
1946
+ catch (err) {
1947
+ this.onError(err instanceof Error ? err : new Error(String(err)), {});
1948
+ return null;
1949
+ }
1950
+ }
1951
+ wasPublished(relativePath, contentHash) {
1952
+ if (this.lastPublishedContentHashes.get(relativePath) === contentHash)
1953
+ return true;
1954
+ try {
1955
+ if (this.durablePublishedContentHashes?.get(relativePath) !== contentHash) {
1956
+ return false;
1957
+ }
1958
+ this.lastPublishedContentHashes.set(relativePath, contentHash);
1959
+ return true;
1960
+ }
1961
+ catch (err) {
1962
+ this.onError(err instanceof Error ? err : new Error(String(err)), {
1963
+ relativePath,
1964
+ });
1965
+ return false;
1966
+ }
1967
+ }
1968
+ setDurablePublishedContentHash(relativePath, contentHash) {
1969
+ try {
1970
+ this.durablePublishedContentHashes?.set(relativePath, contentHash, this.lastPublishedContentHashMaxPaths);
1971
+ }
1972
+ catch (err) {
1973
+ this.onError(err instanceof Error ? err : new Error(String(err)), {
1974
+ relativePath,
1975
+ });
1976
+ }
1977
+ }
1978
+ deleteDurablePublishedContentHash(relativePath) {
1979
+ try {
1980
+ this.durablePublishedContentHashes?.delete(relativePath);
1981
+ }
1982
+ catch (err) {
1983
+ this.onError(err instanceof Error ? err : new Error(String(err)), {
1984
+ relativePath,
1985
+ });
1986
+ }
1987
+ }
1778
1988
  emitPublishFailureTelemetry(kind, stage) {
1779
1989
  void emitCloudTelemetry(this.telemetryClient, {
1780
1990
  eventName: "push_event_failed",