@indigoai-us/hq-cloud 6.16.64 → 6.16.65

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.
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Local recovery for things the vault cannot restore.
3
+ *
4
+ * `.git` is ignored on purpose (size, machine-local, credentials in config),
5
+ * so a vault pull after a wiped HQ tree brings files back and loses history.
6
+ * Empty `repos/public` and `repos/private` are also never uploaded (S3 has no
7
+ * empty directories).
8
+ *
9
+ * The sidecar lives under the machine HQ state dir (`~/.hq/hq-root-git/…`),
10
+ * which survived the 2026-09-18 wipe that removed `core/`, `personal/`, and
11
+ * `.git` while leaving the sync daemon running.
12
+ */
13
+ import * as fs from "fs";
14
+ import * as os from "os";
15
+ import * as path from "path";
16
+ import { canonicalRootHash } from "./backup-prune.js";
17
+ export const HQ_LAYOUT_DIRS = ["repos", "repos/public", "repos/private"];
18
+ export function gitSidecarDir(hqRoot, homeDir = os.homedir()) {
19
+ return path.join(homeDir, ".hq", "hq-root-git", canonicalRootHash(path.resolve(hqRoot)));
20
+ }
21
+ function isGitLockName(name) {
22
+ return name.endsWith(".lock") || name === "gc.pid";
23
+ }
24
+ export function shouldCopyGitSidecarEntry(src) {
25
+ return !isGitLockName(path.basename(src));
26
+ }
27
+ function readHead(gitDir) {
28
+ try {
29
+ return fs.readFileSync(path.join(gitDir, "HEAD"), "utf8");
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ function isGitDirectory(gitDir) {
36
+ try {
37
+ return fs.lstatSync(gitDir).isDirectory();
38
+ }
39
+ catch {
40
+ return false;
41
+ }
42
+ }
43
+ export function snapshotHqGit(hqRoot, opts = {}) {
44
+ const gitDir = path.join(hqRoot, ".git");
45
+ if (!isGitDirectory(gitDir))
46
+ return "absent";
47
+ const dest = gitSidecarDir(hqRoot, opts.homeDir ?? os.homedir());
48
+ const currentHead = readHead(gitDir);
49
+ if (currentHead !== null && currentHead === readHead(dest) && fs.existsSync(dest)) {
50
+ return "unchanged";
51
+ }
52
+ const staging = `${dest}.tmp`;
53
+ try {
54
+ fs.rmSync(staging, { recursive: true, force: true });
55
+ fs.mkdirSync(path.dirname(dest), { recursive: true });
56
+ fs.cpSync(gitDir, staging, {
57
+ recursive: true,
58
+ filter: shouldCopyGitSidecarEntry,
59
+ });
60
+ fs.rmSync(dest, { recursive: true, force: true });
61
+ fs.renameSync(staging, dest);
62
+ return "snapshotted";
63
+ }
64
+ catch (err) {
65
+ try {
66
+ fs.rmSync(staging, { recursive: true, force: true });
67
+ }
68
+ catch {
69
+ /* staging is best-effort */
70
+ }
71
+ console.warn("hq-root-recovery: git sidecar snapshot failed:", err);
72
+ return "absent";
73
+ }
74
+ }
75
+ export function restoreHqGitIfMissing(hqRoot, opts = {}) {
76
+ const gitDir = path.join(hqRoot, ".git");
77
+ if (isGitDirectory(gitDir))
78
+ return "unchanged";
79
+ try {
80
+ if (fs.existsSync(gitDir))
81
+ return "unchanged";
82
+ }
83
+ catch {
84
+ return "absent";
85
+ }
86
+ const dest = gitSidecarDir(hqRoot, opts.homeDir ?? os.homedir());
87
+ if (!isGitDirectory(dest))
88
+ return "absent";
89
+ try {
90
+ fs.mkdirSync(hqRoot, { recursive: true });
91
+ fs.cpSync(dest, gitDir, { recursive: true });
92
+ return "restored";
93
+ }
94
+ catch (err) {
95
+ console.warn("hq-root-recovery: git sidecar restore failed:", err);
96
+ return "absent";
97
+ }
98
+ }
99
+ export function ensureLocalLayoutDirs(hqRoot) {
100
+ let created = 0;
101
+ try {
102
+ fs.mkdirSync(hqRoot, { recursive: true });
103
+ }
104
+ catch (err) {
105
+ console.warn("hq-root-recovery: could not create HQ root:", err);
106
+ return 0;
107
+ }
108
+ for (const rel of HQ_LAYOUT_DIRS) {
109
+ const dir = path.join(hqRoot, rel);
110
+ try {
111
+ if (fs.existsSync(dir))
112
+ continue;
113
+ fs.mkdirSync(dir, { recursive: true });
114
+ created += 1;
115
+ }
116
+ catch (err) {
117
+ console.warn(`hq-root-recovery: could not create ${rel}:`, err);
118
+ }
119
+ }
120
+ return created;
121
+ }
122
+ export function recoverHqRootLocalState(hqRoot, opts = {}) {
123
+ const git = restoreHqGitIfMissing(hqRoot, opts);
124
+ const layoutCreated = ensureLocalLayoutDirs(hqRoot);
125
+ const snap = snapshotHqGit(hqRoot, opts);
126
+ return {
127
+ layoutCreated,
128
+ git: git === "restored" ? "restored" : snap,
129
+ };
130
+ }
131
+ //# sourceMappingURL=hq-root-recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hq-root-recovery.js","sourceRoot":"","sources":["../src/hq-root-recovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hq-root-recovery.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hq-root-recovery.test.d.ts","sourceRoot":"","sources":["../src/hq-root-recovery.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,65 @@
1
+ import { afterEach, describe, expect, it } from "vitest";
2
+ import * as fs from "fs";
3
+ import * as os from "os";
4
+ import * as path from "path";
5
+ import { ensureLocalLayoutDirs, gitSidecarDir, recoverHqRootLocalState, restoreHqGitIfMissing, shouldCopyGitSidecarEntry, snapshotHqGit, } from "./hq-root-recovery.js";
6
+ describe("hq-root-recovery", () => {
7
+ const temps = [];
8
+ afterEach(() => {
9
+ for (const dir of temps)
10
+ fs.rmSync(dir, { recursive: true, force: true });
11
+ temps.length = 0;
12
+ });
13
+ function tmp(prefix) {
14
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), prefix));
15
+ temps.push(dir);
16
+ return dir;
17
+ }
18
+ it("does not copy git lock files into the sidecar", () => {
19
+ expect(shouldCopyGitSidecarEntry("/hq/.git/index.lock")).toBe(false);
20
+ expect(shouldCopyGitSidecarEntry("/hq/.git/gc.pid")).toBe(false);
21
+ expect(shouldCopyGitSidecarEntry("/hq/.git/HEAD")).toBe(true);
22
+ expect(shouldCopyGitSidecarEntry("/hq/.git/objects/pack/pack-1.pack")).toBe(true);
23
+ });
24
+ it("creates empty repos/public and repos/private", () => {
25
+ const hqRoot = tmp("hq-layout-");
26
+ expect(ensureLocalLayoutDirs(hqRoot)).toBe(3);
27
+ expect(fs.statSync(path.join(hqRoot, "repos/public")).isDirectory()).toBe(true);
28
+ expect(fs.statSync(path.join(hqRoot, "repos/private")).isDirectory()).toBe(true);
29
+ expect(ensureLocalLayoutDirs(hqRoot)).toBe(0);
30
+ });
31
+ it("snapshots .git next to machine HQ state and restores it after a wipe", () => {
32
+ const homeDir = tmp("hq-home-");
33
+ const hqRoot = tmp("hq-root-");
34
+ const gitDir = path.join(hqRoot, ".git");
35
+ fs.mkdirSync(path.join(gitDir, "objects"), { recursive: true });
36
+ fs.writeFileSync(path.join(gitDir, "HEAD"), "ref: refs/heads/main\n");
37
+ fs.writeFileSync(path.join(gitDir, "objects", "blob"), "history");
38
+ fs.writeFileSync(path.join(gitDir, "index.lock"), "busy");
39
+ expect(snapshotHqGit(hqRoot, { homeDir })).toBe("snapshotted");
40
+ expect(snapshotHqGit(hqRoot, { homeDir })).toBe("unchanged");
41
+ const sidecar = gitSidecarDir(hqRoot, homeDir);
42
+ expect(fs.existsSync(path.join(sidecar, "index.lock"))).toBe(false);
43
+ expect(fs.readFileSync(path.join(sidecar, "HEAD"), "utf8")).toBe("ref: refs/heads/main\n");
44
+ fs.rmSync(gitDir, { recursive: true, force: true });
45
+ expect(fs.existsSync(gitDir)).toBe(false);
46
+ expect(restoreHqGitIfMissing(hqRoot, { homeDir })).toBe("restored");
47
+ expect(fs.readFileSync(path.join(gitDir, "HEAD"), "utf8")).toBe("ref: refs/heads/main\n");
48
+ expect(fs.readFileSync(path.join(gitDir, "objects", "blob"), "utf8")).toBe("history");
49
+ });
50
+ it("recoverHqRootLocalState restores git then recreates empty repos dirs", () => {
51
+ const homeDir = tmp("hq-home-");
52
+ const hqRoot = tmp("hq-root-");
53
+ fs.mkdirSync(path.join(hqRoot, ".git"), { recursive: true });
54
+ fs.writeFileSync(path.join(hqRoot, ".git", "HEAD"), "ref: refs/heads/main\n");
55
+ expect(recoverHqRootLocalState(hqRoot, { homeDir }).git).toBe("snapshotted");
56
+ fs.rmSync(hqRoot, { recursive: true, force: true });
57
+ fs.mkdirSync(hqRoot);
58
+ const result = recoverHqRootLocalState(hqRoot, { homeDir });
59
+ expect(result.git).toBe("restored");
60
+ expect(result.layoutCreated).toBe(3);
61
+ expect(fs.existsSync(path.join(hqRoot, ".git", "HEAD"))).toBe(true);
62
+ expect(fs.existsSync(path.join(hqRoot, "repos/public"))).toBe(true);
63
+ });
64
+ });
65
+ //# sourceMappingURL=hq-root-recovery.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hq-root-recovery.test.js","sourceRoot":"","sources":["../src/hq-root-recovery.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Coverage liveness for the scoped native watcher.
3
+ *
4
+ * OS watches follow inodes (Linux inotify) or can go silent after a path is
5
+ * replaced (macOS FSEvents). `reconcileCoverage` only runs when the kernel
6
+ * delivers a rename. If the HQ root — or a watched folder — is moved or
7
+ * swapped with no event, `watched-paths` stays stable while the tree is gone.
8
+ * A periodic identity probe is the only way to notice that.
9
+ */
10
+ export type WatchCoverageFailureReason = "root-missing" | "root-replaced" | "watch-stale";
11
+ export type WatchCoverageProbeResult = {
12
+ ok: true;
13
+ } | {
14
+ ok: false;
15
+ reason: WatchCoverageFailureReason;
16
+ staleWatches: number;
17
+ };
18
+ export declare function directoryIdentityAt(absolutePath: string): string | undefined;
19
+ export declare function probeScopedWatchCoverage(input: {
20
+ root: string;
21
+ identities: Iterable<readonly [string, string]>;
22
+ directoryIdentity: (absolutePath: string) => string | undefined;
23
+ }): WatchCoverageProbeResult;
24
+ //# sourceMappingURL=watch-coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-coverage.d.ts","sourceRoot":"","sources":["../src/watch-coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,MAAM,0BAA0B,GAClC,cAAc,GACd,eAAe,GACf,aAAa,CAAC;AAElB,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,0BAA0B,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEN,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO5E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACjE,GAAG,wBAAwB,CAuB3B"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Coverage liveness for the scoped native watcher.
3
+ *
4
+ * OS watches follow inodes (Linux inotify) or can go silent after a path is
5
+ * replaced (macOS FSEvents). `reconcileCoverage` only runs when the kernel
6
+ * delivers a rename. If the HQ root — or a watched folder — is moved or
7
+ * swapped with no event, `watched-paths` stays stable while the tree is gone.
8
+ * A periodic identity probe is the only way to notice that.
9
+ */
10
+ import * as fs from "fs";
11
+ export function directoryIdentityAt(absolutePath) {
12
+ try {
13
+ const st = fs.lstatSync(absolutePath);
14
+ return st.isDirectory() ? `${st.dev}:${st.ino}` : undefined;
15
+ }
16
+ catch {
17
+ return undefined;
18
+ }
19
+ }
20
+ export function probeScopedWatchCoverage(input) {
21
+ const rootNow = input.directoryIdentity(input.root);
22
+ const identityList = Array.from(input.identities);
23
+ if (rootNow === undefined) {
24
+ return {
25
+ ok: false,
26
+ reason: "root-missing",
27
+ staleWatches: identityList.length,
28
+ };
29
+ }
30
+ let stale = 0;
31
+ for (const [dir, openedOn] of identityList) {
32
+ const now = input.directoryIdentity(dir);
33
+ if (dir === input.root) {
34
+ if (now !== openedOn) {
35
+ return { ok: false, reason: "root-replaced", staleWatches: 1 };
36
+ }
37
+ continue;
38
+ }
39
+ if (now !== openedOn)
40
+ stale += 1;
41
+ }
42
+ if (stale > 0)
43
+ return { ok: false, reason: "watch-stale", staleWatches: stale };
44
+ return { ok: true };
45
+ }
46
+ //# sourceMappingURL=watch-coverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-coverage.js","sourceRoot":"","sources":["../src/watch-coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAezB,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACtD,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACtC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAIxC;IACC,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,cAAc;YACtB,YAAY,EAAE,YAAY,CAAC,MAAM;SAClC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YACjE,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,QAAQ;YAAE,KAAK,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAChF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=watch-coverage.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-coverage.test.d.ts","sourceRoot":"","sources":["../src/watch-coverage.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { probeScopedWatchCoverage } from "./watch-coverage.js";
3
+ describe("probeScopedWatchCoverage", () => {
4
+ const root = "/hq";
5
+ const docs = "/hq/docs";
6
+ it("is ok when every watched path still has its opened identity", () => {
7
+ const identities = new Map([
8
+ [root, "1:10"],
9
+ [docs, "1:11"],
10
+ ]);
11
+ const now = new Map(identities);
12
+ expect(probeScopedWatchCoverage({
13
+ root,
14
+ identities,
15
+ directoryIdentity: (p) => now.get(p),
16
+ })).toEqual({ ok: true });
17
+ });
18
+ it("reports root-missing when the HQ root no longer resolves", () => {
19
+ expect(probeScopedWatchCoverage({
20
+ root,
21
+ identities: new Map([
22
+ [root, "1:10"],
23
+ [docs, "1:11"],
24
+ ]),
25
+ directoryIdentity: () => undefined,
26
+ })).toEqual({ ok: false, reason: "root-missing", staleWatches: 2 });
27
+ });
28
+ it("reports root-replaced when the HQ root inode changed", () => {
29
+ expect(probeScopedWatchCoverage({
30
+ root,
31
+ identities: new Map([[root, "1:10"]]),
32
+ directoryIdentity: (p) => (p === root ? "1:99" : undefined),
33
+ })).toEqual({ ok: false, reason: "root-replaced", staleWatches: 1 });
34
+ });
35
+ it("reports watch-stale when a nested watch inode changed and the root did not", () => {
36
+ expect(probeScopedWatchCoverage({
37
+ root,
38
+ identities: new Map([
39
+ [root, "1:10"],
40
+ [docs, "1:11"],
41
+ ]),
42
+ directoryIdentity: (p) => (p === root ? "1:10" : "1:50"),
43
+ })).toEqual({ ok: false, reason: "watch-stale", staleWatches: 1 });
44
+ });
45
+ it("treats a missing nested watch as stale rather than a root replacement", () => {
46
+ expect(probeScopedWatchCoverage({
47
+ root,
48
+ identities: new Map([
49
+ [root, "1:10"],
50
+ [docs, "1:11"],
51
+ ]),
52
+ directoryIdentity: (p) => (p === root ? "1:10" : undefined),
53
+ })).toEqual({ ok: false, reason: "watch-stale", staleWatches: 1 });
54
+ });
55
+ });
56
+ //# sourceMappingURL=watch-coverage.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-coverage.test.js","sourceRoot":"","sources":["../src/watch-coverage.test.ts"],"names":[],"mappings":"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"}
package/dist/watcher.d.ts CHANGED
@@ -6,6 +6,8 @@
6
6
  * schedules pushes, and PushEventEmitter publishes typed push events.
7
7
  */
8
8
  import * as fs from "fs";
9
+ import { probeScopedWatchCoverage, type WatchCoverageProbeResult } from "./watch-coverage.js";
10
+ export { probeScopedWatchCoverage, type WatchCoverageProbeResult };
9
11
  import { StateStoreLockError, type StateStoreRecord } from "./sync/state-store.js";
10
12
  import { type PublishAttemptOutcome, type PushTransport } from "./sync/push-transport.js";
11
13
  import type { EventDrivenPushFlagProvider } from "./sync/feature-flags.js";
@@ -219,6 +221,11 @@ export interface WatchBackend {
219
221
  * ready synchronously and omit this hook.
220
222
  */
221
223
  onReady?(listener: () => void): () => void;
224
+ /**
225
+ * Compare live directory identities against the handles this backend opened.
226
+ * Missing or replaced paths mean the watcher is holding a stale tree.
227
+ */
228
+ probeCoverage?(): WatchCoverageProbeResult;
222
229
  }
223
230
  export interface TreeWatcherDegradation {
224
231
  reason: "watch_budget_exhausted" | "inotify_enospc" | "initial_discovery_timeout";
@@ -297,6 +304,7 @@ export interface ScopedWatchBackend extends WatchBackend {
297
304
  * reason to hand the whole box back to a per-file backend.
298
305
  */
299
306
  attachFailures: number;
307
+ probeCoverage(): WatchCoverageProbeResult;
300
308
  }
301
309
  export interface ScopedWatchOptions {
302
310
  /**
@@ -670,6 +678,17 @@ export declare class TreeWatcher {
670
678
  watchedPathCount(): number;
671
679
  /** Active backend mode, including the no-inotify polling fallback. */
672
680
  watchMode(): "native" | "chokidar" | "polling" | "inactive" | "unknown";
681
+ /**
682
+ * Check that the HQ root and every live watch still resolve to the inode
683
+ * they were opened on. Does not emit deletes — a vanished tree must pull
684
+ * from the vault, not push tombstones.
685
+ */
686
+ probeCoverage(): WatchCoverageProbeResult;
687
+ /**
688
+ * Drop stale OS handles and re-open watches on the current tree. Callers
689
+ * must recreate a missing HQ root first; this does not synthesize unlinks.
690
+ */
691
+ rebuildCoverage(): void;
673
692
  /** Number of pending debounce timers — a leak check for tests. */
674
693
  pendingTimerCount(): number;
675
694
  /** Number of native-rename directory hints retained for deletion handling. */
@@ -968,5 +987,4 @@ export declare class PushEventEmitter {
968
987
  censusSizes(): Record<string, number>;
969
988
  private emitPublishFailureTelemetry;
970
989
  }
971
- export {};
972
990
  //# sourceMappingURL=watcher.d.ts.map
@@ -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":"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"}
package/dist/watcher.js CHANGED
@@ -12,6 +12,8 @@ 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 { directoryIdentityAt, probeScopedWatchCoverage, } from "./watch-coverage.js";
16
+ export { probeScopedWatchCoverage };
15
17
  import { localPathForVaultKey, vaultKeyForLocalPath } from "./local-path-codec.js";
16
18
  import { isPersonalVaultExcluded } from "./personal-vault-exclusions.js";
17
19
  import { StateStore, StateStoreLockError } from "./sync/state-store.js";
@@ -372,6 +374,13 @@ export function selectTreeWatchBackend(platform, forcePolling) {
372
374
  }
373
375
  function startChokidarTreeWatch(hqRoot, shouldEmit, onEvent, onError, maxWatchedPaths, onWatchBudgetExceeded, forcePolling = false) {
374
376
  const budget = new ChokidarWatchBudget(maxWatchedPaths, onWatchBudgetExceeded);
377
+ const root = path.resolve(hqRoot);
378
+ const openedRoot = directoryIdentityAt(root);
379
+ const probeCoverage = () => probeScopedWatchCoverage({
380
+ root,
381
+ identities: openedRoot === undefined ? [] : [[root, openedRoot]],
382
+ directoryIdentity: directoryIdentityAt,
383
+ });
375
384
  let cw;
376
385
  let ready = false;
377
386
  const readyListeners = new Set();
@@ -400,6 +409,7 @@ function startChokidarTreeWatch(hqRoot, shouldEmit, onEvent, onError, maxWatched
400
409
  mode: forcePolling ? "polling" : "chokidar",
401
410
  needsKnownKinds: false,
402
411
  watchedPathCount: () => budget.count(),
412
+ probeCoverage,
403
413
  };
404
414
  }
405
415
  cw.on("add", (p) => onEvent(p, "add"))
@@ -421,6 +431,7 @@ function startChokidarTreeWatch(hqRoot, shouldEmit, onEvent, onError, maxWatched
421
431
  mode: forcePolling ? "polling" : "chokidar",
422
432
  needsKnownKinds: false,
423
433
  watchedPathCount: () => budget.count(),
434
+ probeCoverage,
424
435
  onReady: (listener) => {
425
436
  if (ready) {
426
437
  listener();
@@ -820,12 +831,18 @@ export function startScopedRecursiveWatch(hqRoot, shouldEmit, onEvent, onError,
820
831
  watchers.clear();
821
832
  recursiveRoots.clear();
822
833
  recursiveFlag.clear();
834
+ identity.clear();
823
835
  },
824
836
  mode: "native",
825
837
  needsKnownKinds: true,
826
838
  seededKnownKinds: onDirectorySeen !== undefined,
827
839
  watchedPathCount: () => watchers.size,
828
840
  attachFailures,
841
+ probeCoverage: () => probeScopedWatchCoverage({
842
+ root,
843
+ identities: identity,
844
+ directoryIdentity,
845
+ }),
829
846
  };
830
847
  }
831
848
  /**
@@ -1985,6 +2002,30 @@ export class TreeWatcher {
1985
2002
  watchMode() {
1986
2003
  return this.backend?.mode ?? (this.backend ? "unknown" : "inactive");
1987
2004
  }
2005
+ /**
2006
+ * Check that the HQ root and every live watch still resolve to the inode
2007
+ * they were opened on. Does not emit deletes — a vanished tree must pull
2008
+ * from the vault, not push tombstones.
2009
+ */
2010
+ probeCoverage() {
2011
+ if (this.backend?.probeCoverage)
2012
+ return this.backend.probeCoverage();
2013
+ return probeScopedWatchCoverage({
2014
+ root: path.resolve(this.hqRoot),
2015
+ identities: [],
2016
+ directoryIdentity: directoryIdentityAt,
2017
+ });
2018
+ }
2019
+ /**
2020
+ * Drop stale OS handles and re-open watches on the current tree. Callers
2021
+ * must recreate a missing HQ root first; this does not synthesize unlinks.
2022
+ */
2023
+ rebuildCoverage() {
2024
+ if (this.disposed)
2025
+ return;
2026
+ this.stop();
2027
+ this.start();
2028
+ }
1988
2029
  /** Number of pending debounce timers — a leak check for tests. */
1989
2030
  pendingTimerCount() {
1990
2031
  return this.timer === null ? 0 : 1;