@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.
- package/dist/bin/sync-runner-watch-loop.d.ts +1 -1
- package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
- package/dist/bin/sync-runner-watch-loop.js +34 -2
- package/dist/bin/sync-runner-watch-loop.js.map +1 -1
- package/dist/bin/sync-runner.d.ts +5 -1
- package/dist/bin/sync-runner.d.ts.map +1 -1
- package/dist/bin/sync-runner.js.map +1 -1
- package/dist/bin/sync-runner.test.js +47 -0
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +7 -0
- package/dist/cli/sync.js.map +1 -1
- package/dist/hq-root-recovery.d.ts +30 -0
- package/dist/hq-root-recovery.d.ts.map +1 -0
- package/dist/hq-root-recovery.js +131 -0
- package/dist/hq-root-recovery.js.map +1 -0
- package/dist/hq-root-recovery.test.d.ts +2 -0
- package/dist/hq-root-recovery.test.d.ts.map +1 -0
- package/dist/hq-root-recovery.test.js +65 -0
- package/dist/hq-root-recovery.test.js.map +1 -0
- package/dist/watch-coverage.d.ts +24 -0
- package/dist/watch-coverage.d.ts.map +1 -0
- package/dist/watch-coverage.js +46 -0
- package/dist/watch-coverage.js.map +1 -0
- package/dist/watch-coverage.test.d.ts +2 -0
- package/dist/watch-coverage.test.d.ts.map +1 -0
- package/dist/watch-coverage.test.js +56 -0
- package/dist/watch-coverage.test.js.map +1 -0
- package/dist/watcher.d.ts +19 -1
- package/dist/watcher.d.ts.map +1 -1
- package/dist/watcher.js +41 -0
- package/dist/watcher.js.map +1 -1
- package/dist/watcher.test.js +15 -0
- package/dist/watcher.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC;IACnB,MAAM,IAAI,GAAG,UAAU,CAAC;IAExB,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;YACzB,CAAC,IAAI,EAAE,MAAM,CAAC;YACd,CAAC,IAAI,EAAE,MAAM,CAAC;SACf,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,CACJ,wBAAwB,CAAC;YACvB,IAAI;YACJ,UAAU;YACV,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACrC,CAAC,CACH,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,CACJ,wBAAwB,CAAC;YACvB,IAAI;YACJ,UAAU,EAAE,IAAI,GAAG,CAAC;gBAClB,CAAC,IAAI,EAAE,MAAM,CAAC;gBACd,CAAC,IAAI,EAAE,MAAM,CAAC;aACf,CAAC;YACF,iBAAiB,EAAE,GAAG,EAAE,CAAC,SAAS;SACnC,CAAC,CACH,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CACJ,wBAAwB,CAAC;YACvB,IAAI;YACJ,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACrC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;SAC5D,CAAC,CACH,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,CACJ,wBAAwB,CAAC;YACvB,IAAI;YACJ,UAAU,EAAE,IAAI,GAAG,CAAC;gBAClB,CAAC,IAAI,EAAE,MAAM,CAAC;gBACd,CAAC,IAAI,EAAE,MAAM,CAAC;aACf,CAAC;YACF,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;SACzD,CAAC,CACH,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,CACJ,wBAAwB,CAAC;YACvB,IAAI;YACJ,UAAU,EAAE,IAAI,GAAG,CAAC;gBAClB,CAAC,IAAI,EAAE,MAAM,CAAC;gBACd,CAAC,IAAI,EAAE,MAAM,CAAC;aACf,CAAC;YACF,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;SAC5D,CAAC,CACH,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
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
|
package/dist/watcher.d.ts.map
CHANGED
|
@@ -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;
|