@indigoai-us/hq-cloud 6.3.2 → 6.3.4
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/cli/sync.js +43 -1
- package/dist/cli/sync.js.map +1 -1
- package/dist/cli/sync.test.js +98 -0
- package/dist/cli/sync.test.js.map +1 -1
- package/dist/ignore.d.ts.map +1 -1
- package/dist/ignore.js +22 -6
- package/dist/ignore.js.map +1 -1
- package/dist/ignore.test.js +21 -8
- package/dist/ignore.test.js.map +1 -1
- package/dist/personal-vault.d.ts +6 -4
- package/dist/personal-vault.d.ts.map +1 -1
- package/dist/personal-vault.js +6 -4
- package/dist/personal-vault.js.map +1 -1
- package/dist/personal-vault.test.js +16 -0
- package/dist/personal-vault.test.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/sync.test.ts +114 -0
- package/src/cli/sync.ts +43 -1
- package/src/ignore.test.ts +22 -8
- package/src/ignore.ts +23 -6
- package/src/personal-vault.test.ts +27 -0
- package/src/personal-vault.ts +6 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"personal-vault.test.js","sourceRoot":"","sources":["../src/personal-vault.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"personal-vault.test.js","sourceRoot":"","sources":["../src/personal-vault.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/cli/sync.test.ts
CHANGED
|
@@ -392,6 +392,120 @@ describe("sync", () => {
|
|
|
392
392
|
expect(litter).toHaveLength(1);
|
|
393
393
|
});
|
|
394
394
|
|
|
395
|
+
it("anti-rollback: a SMALLER remote does NOT silently clobber a clean local — routes through conflict and preserves local", async () => {
|
|
396
|
+
// Regression for the 2026-06-10 incident: append-only chat logs were
|
|
397
|
+
// rolled back when a regressed (older, smaller) S3 object overwrote newer
|
|
398
|
+
// local bytes. The local file is CLEAN vs the journal baseline, so the
|
|
399
|
+
// classic 3-way merge classified it as a clean `download` and silently
|
|
400
|
+
// truncated it. The anti-rollback guard must instead route a shrinking
|
|
401
|
+
// overwrite through the conflict path so local is preserved.
|
|
402
|
+
const companyDocs = path.join(tmpDir, "companies", "acme", "docs");
|
|
403
|
+
fs.mkdirSync(companyDocs, { recursive: true });
|
|
404
|
+
const localPath = path.join(companyDocs, "handoff.md");
|
|
405
|
+
// A larger, append-only-style local file (the freshly-appended state).
|
|
406
|
+
const localContent = Array.from({ length: 20 }, (_, i) => `line ${i + 1}`).join("\n") + "\n";
|
|
407
|
+
fs.writeFileSync(localPath, localContent);
|
|
408
|
+
const st = fs.statSync(localPath);
|
|
409
|
+
|
|
410
|
+
// Remote object is SMALLER (an older, truncated copy) with a CHANGED etag.
|
|
411
|
+
vi.mocked(s3Module.listRemoteFiles).mockResolvedValueOnce([
|
|
412
|
+
{ key: "docs/handoff.md", size: 12, lastModified: new Date(), etag: '"regressed-etag"' },
|
|
413
|
+
]);
|
|
414
|
+
// The convergence probe fetches remote bytes; default mock writes
|
|
415
|
+
// "mock file content" — genuinely different from local, so this is a real
|
|
416
|
+
// (not byte-identical) divergence.
|
|
417
|
+
|
|
418
|
+
// Journal baseline marks local as CLEAN: the fast-path keys off
|
|
419
|
+
// size + mtimeMs matching the on-disk file, so localChanged is false
|
|
420
|
+
// without needing the real content hash. remoteEtag differs from the
|
|
421
|
+
// listed etag, so remoteChanged is true → the would-be clean `download`.
|
|
422
|
+
fs.writeFileSync(
|
|
423
|
+
journalPath,
|
|
424
|
+
JSON.stringify({
|
|
425
|
+
version: "1",
|
|
426
|
+
lastSync: new Date().toISOString(),
|
|
427
|
+
files: {
|
|
428
|
+
"docs/handoff.md": {
|
|
429
|
+
hash: "clean-local-baseline-hash",
|
|
430
|
+
size: st.size,
|
|
431
|
+
mtimeMs: st.mtimeMs,
|
|
432
|
+
remoteEtag: "old-etag",
|
|
433
|
+
syncedAt: new Date(Date.now() - 3600000).toISOString(),
|
|
434
|
+
direction: "up",
|
|
435
|
+
},
|
|
436
|
+
},
|
|
437
|
+
}),
|
|
438
|
+
);
|
|
439
|
+
|
|
440
|
+
const result = await sync({
|
|
441
|
+
company: "acme",
|
|
442
|
+
onConflict: "keep",
|
|
443
|
+
vaultConfig: mockConfig,
|
|
444
|
+
hqRoot: tmpDir,
|
|
445
|
+
});
|
|
446
|
+
|
|
447
|
+
// Surfaced as a conflict, NOT a silent download.
|
|
448
|
+
expect(result.conflicts).toBe(1);
|
|
449
|
+
expect(result.conflictPaths).toEqual(["docs/handoff.md"]);
|
|
450
|
+
expect(result.filesDownloaded).toBe(0);
|
|
451
|
+
// The newer local bytes are intact — nothing was rolled back.
|
|
452
|
+
expect(fs.readFileSync(localPath, "utf-8")).toBe(localContent);
|
|
453
|
+
// Remote preserved as an inspection mirror rather than overwriting local.
|
|
454
|
+
const litter = fs
|
|
455
|
+
.readdirSync(companyDocs)
|
|
456
|
+
.filter((f) => f.includes(".conflict-"));
|
|
457
|
+
expect(litter).toHaveLength(1);
|
|
458
|
+
});
|
|
459
|
+
|
|
460
|
+
it("anti-rollback guard is narrow: a LARGER remote on a clean local still downloads (legit catch-up)", async () => {
|
|
461
|
+
// The guard must only intercept SHRINKING overwrites. A remote that
|
|
462
|
+
// genuinely advanced (same-or-larger) on a clean local is a normal
|
|
463
|
+
// cross-device catch-up and must still download — otherwise the guard
|
|
464
|
+
// would wedge every legitimate pull behind a conflict.
|
|
465
|
+
const companyDocs = path.join(tmpDir, "companies", "acme", "docs");
|
|
466
|
+
fs.mkdirSync(companyDocs, { recursive: true });
|
|
467
|
+
const localPath = path.join(companyDocs, "handoff.md");
|
|
468
|
+
const localContent = "short local\n";
|
|
469
|
+
fs.writeFileSync(localPath, localContent);
|
|
470
|
+
const st = fs.statSync(localPath);
|
|
471
|
+
|
|
472
|
+
// Remote is LARGER with a changed etag → legitimate advance.
|
|
473
|
+
vi.mocked(s3Module.listRemoteFiles).mockResolvedValueOnce([
|
|
474
|
+
{ key: "docs/handoff.md", size: 9999, lastModified: new Date(), etag: '"advanced-etag"' },
|
|
475
|
+
]);
|
|
476
|
+
|
|
477
|
+
fs.writeFileSync(
|
|
478
|
+
journalPath,
|
|
479
|
+
JSON.stringify({
|
|
480
|
+
version: "1",
|
|
481
|
+
lastSync: new Date().toISOString(),
|
|
482
|
+
files: {
|
|
483
|
+
"docs/handoff.md": {
|
|
484
|
+
hash: "clean-local-baseline-hash",
|
|
485
|
+
size: st.size,
|
|
486
|
+
mtimeMs: st.mtimeMs,
|
|
487
|
+
remoteEtag: "old-etag",
|
|
488
|
+
syncedAt: new Date(Date.now() - 3600000).toISOString(),
|
|
489
|
+
direction: "down",
|
|
490
|
+
},
|
|
491
|
+
},
|
|
492
|
+
}),
|
|
493
|
+
);
|
|
494
|
+
|
|
495
|
+
const result = await sync({
|
|
496
|
+
company: "acme",
|
|
497
|
+
onConflict: "keep",
|
|
498
|
+
vaultConfig: mockConfig,
|
|
499
|
+
hqRoot: tmpDir,
|
|
500
|
+
});
|
|
501
|
+
|
|
502
|
+
// No conflict — it downloaded the advanced remote.
|
|
503
|
+
expect(result.conflicts).toBe(0);
|
|
504
|
+
expect(result.filesDownloaded).toBe(1);
|
|
505
|
+
// Local replaced with the (mock) remote content.
|
|
506
|
+
expect(fs.readFileSync(localPath, "utf-8")).toBe("mock file content");
|
|
507
|
+
});
|
|
508
|
+
|
|
395
509
|
it("aborts on --on-conflict abort", async () => {
|
|
396
510
|
const companyDocs = path.join(tmpDir, "companies", "acme", "docs");
|
|
397
511
|
fs.mkdirSync(companyDocs, { recursive: true });
|
package/src/cli/sync.ts
CHANGED
|
@@ -1697,7 +1697,49 @@ function computePullPlan(
|
|
|
1697
1697
|
items.push({ action: "skip-unchanged", remoteFile, localPath });
|
|
1698
1698
|
continue;
|
|
1699
1699
|
}
|
|
1700
|
-
|
|
1700
|
+
if (journalEntry && !localChanged && remoteChanged) {
|
|
1701
|
+
// ── Anti-rollback guard (silent newer→older overwrite) ───────────
|
|
1702
|
+
// Remote etag moved but local still matches the journal baseline, so
|
|
1703
|
+
// the classic 3-way merge calls this a clean `download` and overwrites
|
|
1704
|
+
// local with remote. That assumes the remote *advanced*. It can also
|
|
1705
|
+
// REGRESS: a second device (or a stale re-push) can replace the S3
|
|
1706
|
+
// object with an OLDER, SMALLER copy. `hasRemoteChanged` is pure-ETag
|
|
1707
|
+
// and cannot tell an advance from a rollback — ListObjectsV2 carries no
|
|
1708
|
+
// content hash, and `lastModified` is the upload time (newer even for
|
|
1709
|
+
// stale content), so neither distinguishes the two. A silent download
|
|
1710
|
+
// then DESTROYS newer local bytes with no conflict surfaced.
|
|
1711
|
+
//
|
|
1712
|
+
// This bit append-only bot chat logs on 2026-06-10, the day
|
|
1713
|
+
// event-driven bidirectional sync (which lets a peer device push to
|
|
1714
|
+
// S3 between this device's pulls) first rolled out: a regressed S3
|
|
1715
|
+
// object truncated freshly-appended lines, undetected by the planner.
|
|
1716
|
+
//
|
|
1717
|
+
// Guard: if the incoming remote object is strictly SMALLER than the
|
|
1718
|
+
// local file we already hold (a size regression on a tracked regular
|
|
1719
|
+
// file), do NOT silently clobber. Route through the conflict path —
|
|
1720
|
+
// the executor's convergence probe fetches the remote once and, on
|
|
1721
|
+
// genuine divergence, PRESERVES local as a `.conflict-*` mirror instead
|
|
1722
|
+
// of overwriting it (and under `--on-conflict abort` halts loudly
|
|
1723
|
+
// rather than losing data). A byte-identical remote can never be
|
|
1724
|
+
// smaller, so this never manufactures a false conflict on a no-op
|
|
1725
|
+
// re-upload. Symlinks are exempt: their on-disk size is not the target
|
|
1726
|
+
// length, so the comparison is meaningless.
|
|
1727
|
+
if (!isLocalSymlink && remoteFile.size < localLstat!.size) {
|
|
1728
|
+
items.push({
|
|
1729
|
+
action: "conflict",
|
|
1730
|
+
remoteFile,
|
|
1731
|
+
localPath,
|
|
1732
|
+
localHash,
|
|
1733
|
+
localMtime: localLstat!.mtime,
|
|
1734
|
+
localSize: localLstat!.size,
|
|
1735
|
+
});
|
|
1736
|
+
continue;
|
|
1737
|
+
}
|
|
1738
|
+
// Remote genuinely advanced (same-or-larger) → normal catch-up
|
|
1739
|
+
// download below.
|
|
1740
|
+
}
|
|
1741
|
+
// No journal entry, or remote-only changed (non-shrinking) → fall
|
|
1742
|
+
// through to download.
|
|
1701
1743
|
}
|
|
1702
1744
|
|
|
1703
1745
|
items.push({ action: "download", remoteFile, localPath, isNew: !localExists });
|
package/src/ignore.test.ts
CHANGED
|
@@ -38,19 +38,33 @@ describe("createIgnoreFilter", () => {
|
|
|
38
38
|
expect(shouldSync(path.join(hqRoot, "companies/indigo/notes.md"))).toBe(true);
|
|
39
39
|
});
|
|
40
40
|
|
|
41
|
-
it("
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
it("v15+ layout (core/core.yaml present): root core.yaml is ignored, nested core/core.yaml syncs", () => {
|
|
42
|
+
// On v15+ the scaffold/version manifest lives at `core/core.yaml` (a real
|
|
43
|
+
// project file that DOES sync). Any root-level `core.yaml` here is a stale
|
|
44
|
+
// per-machine duplicate that must never round-trip — pulling another
|
|
45
|
+
// machine's marker would corrupt root discovery. The exclusion is anchored
|
|
46
|
+
// (`/core.yaml`) so it never touches `core/core.yaml`.
|
|
47
|
+
fs.mkdirSync(path.join(hqRoot, "core"), { recursive: true });
|
|
48
|
+
fs.writeFileSync(path.join(hqRoot, "core/core.yaml"), 'version: 1\nhqVersion: "15.0.12"\n');
|
|
49
|
+
fs.writeFileSync(path.join(hqRoot, "core.yaml"), 'version: 1\nhqVersion: "15.0.12"\n');
|
|
49
50
|
const shouldSync = createIgnoreFilter(hqRoot);
|
|
50
51
|
expect(shouldSync(path.join(hqRoot, "core.yaml"))).toBe(false);
|
|
51
52
|
expect(shouldSync(path.join(hqRoot, "core/core.yaml"))).toBe(true);
|
|
52
53
|
});
|
|
53
54
|
|
|
55
|
+
it("v12–v14 layout (no core/core.yaml): root core.yaml IS the manifest and MUST sync", () => {
|
|
56
|
+
// Regression for DEV-1729 / the ~98 "no core.yaml in vault, version
|
|
57
|
+
// undetectable" fleet users. On v12–v14 roots there is NO `core/core.yaml`
|
|
58
|
+
// — the ROOT `core.yaml` is the scaffold/version manifest. The old
|
|
59
|
+
// unconditional `/core.yaml` exclusion silently dropped it (while
|
|
60
|
+
// computePersonalVaultPaths still enumerated it), so the vault never
|
|
61
|
+
// received a version marker. With no `core/core.yaml` on disk, the root
|
|
62
|
+
// `core.yaml` must round-trip like any other top-level file.
|
|
63
|
+
fs.writeFileSync(path.join(hqRoot, "core.yaml"), 'version: 1\nhqVersion: "14.0.0"\n');
|
|
64
|
+
const shouldSync = createIgnoreFilter(hqRoot);
|
|
65
|
+
expect(shouldSync(path.join(hqRoot, "core.yaml"))).toBe(true);
|
|
66
|
+
});
|
|
67
|
+
|
|
54
68
|
it("permissive mode: modules/modules.yaml manifest is ignored", () => {
|
|
55
69
|
// modules.yaml is the local modules-resolution manifest. Per-machine
|
|
56
70
|
// state, never synced.
|
package/src/ignore.ts
CHANGED
|
@@ -81,12 +81,14 @@ export const DEFAULT_IGNORES = [
|
|
|
81
81
|
".hq-*",
|
|
82
82
|
".hq/",
|
|
83
83
|
"modules.lock",
|
|
84
|
-
//
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
//
|
|
88
|
-
//
|
|
89
|
-
|
|
84
|
+
// NOTE: the root-anchored `/core.yaml` exclusion is intentionally NOT a
|
|
85
|
+
// static default — it is layout-dependent and added conditionally in
|
|
86
|
+
// `createIgnoreFilter` (see the `core/core.yaml` probe there). On v15+ the
|
|
87
|
+
// scaffold/version manifest lives at `core/core.yaml` and a root-level
|
|
88
|
+
// `core.yaml` is a stale per-machine duplicate that must not round-trip; on
|
|
89
|
+
// v12–v14 roots there is NO `core/core.yaml` and the ROOT `core.yaml` IS the
|
|
90
|
+
// scaffold/version manifest, which MUST sync (else the vault has no version
|
|
91
|
+
// marker and the file is undetectable fleet-side).
|
|
90
92
|
// hq modules manifest — local module-resolution state, never synced.
|
|
91
93
|
"modules/modules.yaml",
|
|
92
94
|
// per-company identity file — written locally on first sync, never round-tripped.
|
|
@@ -207,6 +209,21 @@ export function createIgnoreFilter(
|
|
|
207
209
|
// Layer 1: baseline defaults
|
|
208
210
|
ig.add(DEFAULT_IGNORES);
|
|
209
211
|
|
|
212
|
+
// Layer 1b: layout-aware root `core.yaml` exclusion. The hq-core scaffold/
|
|
213
|
+
// version manifest moved location across releases: v15+ keeps it at
|
|
214
|
+
// `core/core.yaml` (which always syncs), v12–v14 keep it at the ROOT as
|
|
215
|
+
// `core.yaml`. We must sync whichever one is the real manifest, on every
|
|
216
|
+
// layout, so the vault always carries a version marker.
|
|
217
|
+
// - v15+ (core/core.yaml present): exclude the root `/core.yaml` — it is a
|
|
218
|
+
// stale/duplicate per-machine marker, never the authoritative manifest.
|
|
219
|
+
// - v12–v14 (core/core.yaml absent): do NOT exclude root `core.yaml` — it
|
|
220
|
+
// IS the manifest and must round-trip, else the file is undetectable
|
|
221
|
+
// fleet-side (the ~98 "no core.yaml in vault" users were all old-layout).
|
|
222
|
+
// Root-anchored (`/core.yaml`) so this never affects `core/core.yaml`.
|
|
223
|
+
if (fs.existsSync(path.join(hqRoot, "core", "core.yaml"))) {
|
|
224
|
+
ig.add("/core.yaml");
|
|
225
|
+
}
|
|
226
|
+
|
|
210
227
|
// Layer 2: repo's .gitignore (common case — covers most build dirs already)
|
|
211
228
|
const gitignore = readIgnoreFile(path.join(hqRoot, ".gitignore"));
|
|
212
229
|
if (gitignore) ig.add(gitignore);
|
|
@@ -319,4 +319,31 @@ describe("personal-vault helpers", () => {
|
|
|
319
319
|
expect(out).toContain(path.join("companies", "foo"));
|
|
320
320
|
expect(out).not.toContain(path.join("companies", "team-acme"));
|
|
321
321
|
});
|
|
322
|
+
|
|
323
|
+
it("manifest: stray `manifest.yaml.conflict-*` litter is never enumerated as a company", () => {
|
|
324
|
+
// Regression guard for DEV-1719's secondary symptom: when the personal
|
|
325
|
+
// push accumulated `companies/manifest.yaml.conflict-<ts>.yaml` mirror
|
|
326
|
+
// files, those FILES must never be mis-counted as company subdirs (they
|
|
327
|
+
// are not directories) nor leak into the push set. The real manifest.yaml
|
|
328
|
+
// is still included; the conflict litter is not.
|
|
329
|
+
fs.mkdirSync(path.join(hqRoot, "companies"));
|
|
330
|
+
fs.writeFileSync(
|
|
331
|
+
path.join(hqRoot, "companies", "manifest.yaml"),
|
|
332
|
+
"companies: {}\n",
|
|
333
|
+
);
|
|
334
|
+
fs.writeFileSync(
|
|
335
|
+
path.join(hqRoot, "companies", "manifest.yaml.conflict-2026-06-08T10-00-00Z-ab12cd.yaml"),
|
|
336
|
+
"companies: {}\n",
|
|
337
|
+
);
|
|
338
|
+
|
|
339
|
+
// Not treated as a company subdir (only directories are eligible).
|
|
340
|
+
expect(computePersonalCompanySubdirs(hqRoot)).toEqual([]);
|
|
341
|
+
|
|
342
|
+
// Push set carries the real manifest, never the conflict litter.
|
|
343
|
+
const out = rel(computePersonalVaultPaths(hqRoot, { includeLocalCompanies: true }));
|
|
344
|
+
expect(out).toContain(path.join("companies", "manifest.yaml"));
|
|
345
|
+
expect(
|
|
346
|
+
out.some((p) => p.includes("manifest.yaml.conflict-")),
|
|
347
|
+
).toBe(false);
|
|
348
|
+
});
|
|
322
349
|
});
|
package/src/personal-vault.ts
CHANGED
|
@@ -30,10 +30,12 @@
|
|
|
30
30
|
* INCLUDED as of user directive 2026-05-13. `core/` ships the hq-core
|
|
31
31
|
* scaffold — policies/, settings/, skills/, workers/, plus the rules
|
|
32
32
|
* manifest at core/core.yaml. `data/` and `personal/` carry per-user data,
|
|
33
|
-
* policies, hooks, and skills that follow the user across machines.
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
33
|
+
* policies, hooks, and skills that follow the user across machines. A
|
|
34
|
+
* root-level `core.yaml` (at hq_root, distinct from `core/core.yaml`) is
|
|
35
|
+
* filtered layout-aware in `createIgnoreFilter`: excluded only when
|
|
36
|
+
* `core/core.yaml` exists (v15+, where root core.yaml is a stale duplicate);
|
|
37
|
+
* on v12–v14 roots with no `core/core.yaml`, the root `core.yaml` IS the
|
|
38
|
+
* scaffold/version manifest and round-trips like any other top-level file.
|
|
37
39
|
*/
|
|
38
40
|
|
|
39
41
|
import * as fs from "fs";
|