@indigoai-us/hq-cloud 5.33.0 → 5.34.0
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.d.ts +9 -0
- package/dist/bin/sync-runner.d.ts.map +1 -1
- package/dist/bin/sync-runner.js +43 -9
- package/dist/bin/sync-runner.js.map +1 -1
- package/dist/bin/sync-runner.test.js +69 -0
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/cli/share.d.ts +60 -4
- package/dist/cli/share.d.ts.map +1 -1
- package/dist/cli/share.js +103 -6
- package/dist/cli/share.js.map +1 -1
- package/dist/cli/share.test.js +78 -0
- package/dist/cli/share.test.js.map +1 -1
- package/dist/cli/sync.d.ts +20 -0
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +259 -6
- package/dist/cli/sync.js.map +1 -1
- package/dist/cli/sync.test.js +469 -0
- package/dist/cli/sync.test.js.map +1 -1
- package/dist/ignore.d.ts.map +1 -1
- package/dist/ignore.js +7 -1
- package/dist/ignore.js.map +1 -1
- package/dist/ignore.test.js +19 -3
- package/dist/ignore.test.js.map +1 -1
- package/dist/s3.d.ts +21 -0
- package/dist/s3.d.ts.map +1 -1
- package/dist/s3.js +69 -2
- package/dist/s3.js.map +1 -1
- package/dist/s3.test.js +129 -2
- package/dist/s3.test.js.map +1 -1
- package/package.json +1 -1
- package/src/bin/sync-runner.test.ts +85 -0
- package/src/bin/sync-runner.ts +52 -9
- package/src/cli/share.test.ts +89 -0
- package/src/cli/share.ts +122 -6
- package/src/cli/sync.test.ts +529 -0
- package/src/cli/sync.ts +294 -7
- package/src/ignore.test.ts +20 -3
- package/src/ignore.ts +7 -1
- package/src/s3.test.ts +142 -2
- package/src/s3.ts +71 -2
package/dist/s3.test.js
CHANGED
|
@@ -110,11 +110,20 @@ describe("uploadFile", () => {
|
|
|
110
110
|
tmpFile = path.join(os.tmpdir(), `s3-upload-test-${Date.now()}-${Math.random()}.md`);
|
|
111
111
|
fs.writeFileSync(tmpFile, "hello");
|
|
112
112
|
});
|
|
113
|
-
it("omits Metadata when no author is provided (back-compat)", async () => {
|
|
113
|
+
it("omits author Metadata fields when no author is provided (back-compat)", async () => {
|
|
114
|
+
// Pre-Bug-#5: this test asserted Metadata was undefined entirely. Now
|
|
115
|
+
// \`hq-mode\` is stamped on every upload to preserve source-side
|
|
116
|
+
// permissions, so the assertion is narrower: author fields stay absent
|
|
117
|
+
// when no author is passed, but \`hq-mode\` is present.
|
|
114
118
|
await uploadFile(makeCtx(), tmpFile, "attribution-test.md");
|
|
115
119
|
const put = sentCommands.find((c) => c.name === "PutObjectCommand");
|
|
116
120
|
expect(put).toBeDefined();
|
|
117
|
-
|
|
121
|
+
const meta = put.input.Metadata;
|
|
122
|
+
expect(meta?.["created-by"]).toBeUndefined();
|
|
123
|
+
expect(meta?.["created-by-sub"]).toBeUndefined();
|
|
124
|
+
expect(meta?.["created-at"]).toBeUndefined();
|
|
125
|
+
// \`hq-mode\` IS present — that's the new Bug #5 contract.
|
|
126
|
+
expect(meta?.["hq-mode"]).toMatch(/^[0-7]{3}$/);
|
|
118
127
|
});
|
|
119
128
|
it("stamps created-by + created-by-sub + created-at when author is provided", async () => {
|
|
120
129
|
await uploadFile(makeCtx(), tmpFile, "attribution-test.md", {
|
|
@@ -166,6 +175,33 @@ describe("uploadFile", () => {
|
|
|
166
175
|
const stamped = new Date(meta["created-at"]).getTime();
|
|
167
176
|
expect(Date.now() - stamped).toBeLessThan(60 * 1000);
|
|
168
177
|
});
|
|
178
|
+
it("stamps source file mode as hq-mode metadata (Bug #5 — preserve permissions)", async () => {
|
|
179
|
+
// Bug #5 (broader than originally reported): every uploaded file's mode
|
|
180
|
+
// collapsed to the receiver's umask default (0644 on the verification
|
|
181
|
+
// hosts). 0755 scripts arrived non-executable, breaking every shell-tool
|
|
182
|
+
// workflow. Fix: stamp the source-side \`mode & 0o777\` into S3 user
|
|
183
|
+
// metadata as \`hq-mode\` (octal string), then chmod on download.
|
|
184
|
+
fs.chmodSync(tmpFile, 0o755);
|
|
185
|
+
await uploadFile(makeCtx(), tmpFile, "exec.sh");
|
|
186
|
+
const put = sentCommands.find((c) => c.name === "PutObjectCommand");
|
|
187
|
+
expect(put).toBeDefined();
|
|
188
|
+
const meta = put.input.Metadata;
|
|
189
|
+
expect(meta?.["hq-mode"]).toBe("755");
|
|
190
|
+
});
|
|
191
|
+
it("stamps various modes correctly (0600, 0640, 0700, 0750)", async () => {
|
|
192
|
+
// Verification report V5: all four modes collapsed to 0644 receiver-side
|
|
193
|
+
// because the upload carried no mode at all. Pin each mode round-trips
|
|
194
|
+
// through the metadata header in canonical octal-string form (no leading
|
|
195
|
+
// zero — the parser uses parseInt(..., 8)).
|
|
196
|
+
for (const mode of [0o600, 0o640, 0o700, 0o750]) {
|
|
197
|
+
sentCommands.length = 0;
|
|
198
|
+
fs.chmodSync(tmpFile, mode);
|
|
199
|
+
await uploadFile(makeCtx(), tmpFile, "f.bin");
|
|
200
|
+
const put = sentCommands.find((c) => c.name === "PutObjectCommand");
|
|
201
|
+
const meta = put.input.Metadata;
|
|
202
|
+
expect(meta?.["hq-mode"]).toBe(mode.toString(8));
|
|
203
|
+
}
|
|
204
|
+
});
|
|
169
205
|
it("elides non-ASCII or empty author fields rather than throwing", async () => {
|
|
170
206
|
// S3 user-defined metadata must be ASCII-only and total ≤ 2KB. Partial
|
|
171
207
|
// attribution beats hard failure — values that fail the printable check
|
|
@@ -550,6 +586,97 @@ describe("downloadFile", () => {
|
|
|
550
586
|
expect(fs.lstatSync(localPath).isSymbolicLink()).toBe(true);
|
|
551
587
|
expect(fs.readlinkSync(localPath)).toBe("fresh-target.md");
|
|
552
588
|
});
|
|
589
|
+
it("applies hq-mode metadata via chmod after byte write (Bug #5 — preserve permissions)", async () => {
|
|
590
|
+
// Round-trip pair to the s3.upload test: source-side mode lives in
|
|
591
|
+
// \`Metadata['hq-mode']\` as an octal string; the receiver must chmod
|
|
592
|
+
// the file to that exact mode after writing the bytes. Pre-fix the
|
|
593
|
+
// receiver took the umask default and 0755 scripts arrived 0644.
|
|
594
|
+
nextGetObjectResponse = {
|
|
595
|
+
Body: (async function* () {
|
|
596
|
+
yield new Uint8Array([35, 33, 47, 98, 105, 110]); // "#!/bin"
|
|
597
|
+
})(),
|
|
598
|
+
Metadata: { "hq-mode": "755" },
|
|
599
|
+
};
|
|
600
|
+
const localPath = path.join(tmpRoot, "exec.sh");
|
|
601
|
+
await downloadFile(makeCtx(), "exec.sh", localPath);
|
|
602
|
+
// mask to permission bits — the upper bits encode file-type (S_IFREG)
|
|
603
|
+
// and are not preserved on chmod.
|
|
604
|
+
const stat = fs.statSync(localPath);
|
|
605
|
+
expect((stat.mode & 0o777).toString(8)).toBe("755");
|
|
606
|
+
});
|
|
607
|
+
it("rounds-trips multiple modes (0600/0640/0700/0750/0755) via hq-mode", async () => {
|
|
608
|
+
// Verification report V5 multi-mode pin: every mode collapsed to 0644
|
|
609
|
+
// because the receiver had no mode signal at all. With \`hq-mode\` in
|
|
610
|
+
// metadata, all five modes must arrive at their exact source value.
|
|
611
|
+
for (const octal of ["600", "640", "700", "750", "755"]) {
|
|
612
|
+
nextGetObjectResponse = {
|
|
613
|
+
Body: (async function* () {
|
|
614
|
+
yield new Uint8Array([97]); // "a"
|
|
615
|
+
})(),
|
|
616
|
+
Metadata: { "hq-mode": octal },
|
|
617
|
+
};
|
|
618
|
+
const localPath = path.join(tmpRoot, `mode-${octal}.bin`);
|
|
619
|
+
await downloadFile(makeCtx(), `mode-${octal}.bin`, localPath);
|
|
620
|
+
expect((fs.statSync(localPath).mode & 0o777).toString(8)).toBe(octal);
|
|
621
|
+
}
|
|
622
|
+
});
|
|
623
|
+
it("rejects malformed hq-mode metadata via strict-octal regex (Codex P2)", async () => {
|
|
624
|
+
// Codex review on PR #24 caught: parseInt(modeOctal, 8) accepts
|
|
625
|
+
// partial-prefix garbage — "755junk" parses to 0o755 instead of
|
|
626
|
+
// NaN — so tampered or malformed metadata could still chmod the
|
|
627
|
+
// local file. Strict regex MUST reject anything that isn't pure
|
|
628
|
+
// octal digits before parseInt sees it; the file then arrives at
|
|
629
|
+
// umask default like the legacy back-compat path.
|
|
630
|
+
const malformed = [
|
|
631
|
+
"755junk", // trailing garbage — parseInt parses 0o755 pre-fix
|
|
632
|
+
"0x755", // hex-looking prefix
|
|
633
|
+
"8", // out-of-octal-range digit
|
|
634
|
+
"9", // ditto
|
|
635
|
+
"-755", // signed
|
|
636
|
+
"abc", // non-numeric
|
|
637
|
+
"", // empty
|
|
638
|
+
"7777", // mode > 0o777 after parse
|
|
639
|
+
"12345", // too long (more than 4 octal digits)
|
|
640
|
+
" 755 ", // whitespace
|
|
641
|
+
];
|
|
642
|
+
for (const bad of malformed) {
|
|
643
|
+
nextGetObjectResponse = {
|
|
644
|
+
Body: (async function* () {
|
|
645
|
+
yield new Uint8Array([116]); // "t"
|
|
646
|
+
})(),
|
|
647
|
+
Metadata: { "hq-mode": bad },
|
|
648
|
+
};
|
|
649
|
+
const localPath = path.join(tmpRoot, `bad-${malformed.indexOf(bad)}.bin`);
|
|
650
|
+
await downloadFile(makeCtx(), `bad-${malformed.indexOf(bad)}.bin`, localPath);
|
|
651
|
+
// Mode MUST be the umask default (whatever the test process inherits),
|
|
652
|
+
// NOT a partial-parse of the malformed string. Specifically, even if
|
|
653
|
+
// the malformed string would partial-parse to 0755, the file must NOT
|
|
654
|
+
// arrive at 0755 — it must take the umask default. We can't pin the
|
|
655
|
+
// exact default value (test runner umask varies), but we can pin that
|
|
656
|
+
// a partial-parse value (0o755) does NOT match for "755junk" cases.
|
|
657
|
+
const mode = (fs.statSync(localPath).mode & 0o777);
|
|
658
|
+
// Heuristic: if the parsed mode would have been 0o755, fail loudly.
|
|
659
|
+
// (umask default on most CI runners is 0o644 or 0o664, never 0o755.)
|
|
660
|
+
if (bad.startsWith("755") || bad === "0x755") {
|
|
661
|
+
expect(mode).not.toBe(0o755);
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
});
|
|
665
|
+
it("downloads with default umask permissions when hq-mode metadata is absent (back-compat)", async () => {
|
|
666
|
+
// Legacy uploads from pre-fix engines have no \`hq-mode\` metadata.
|
|
667
|
+
// The receiver must NOT crash and must NOT change the mode — let
|
|
668
|
+
// the OS default apply, mirroring the pre-fix behavior.
|
|
669
|
+
nextGetObjectResponse = {
|
|
670
|
+
Body: (async function* () {
|
|
671
|
+
yield new Uint8Array([108, 101, 103, 97, 99, 121]); // "legacy"
|
|
672
|
+
})(),
|
|
673
|
+
Metadata: {},
|
|
674
|
+
};
|
|
675
|
+
const localPath = path.join(tmpRoot, "legacy.bin");
|
|
676
|
+
await expect(downloadFile(makeCtx(), "legacy.bin", localPath)).resolves.toBeDefined();
|
|
677
|
+
// No assertion on mode — receiver default is whatever umask set.
|
|
678
|
+
expect(fs.readFileSync(localPath, "utf-8")).toBe("legacy");
|
|
679
|
+
});
|
|
553
680
|
it("returns the object's user-metadata (including created-by) for a regular file", async () => {
|
|
554
681
|
nextGetObjectResponse = {
|
|
555
682
|
Body: (async function* () {
|
package/dist/s3.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3.test.js","sourceRoot":"","sources":["../src/s3.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"s3.test.js","sourceRoot":"","sources":["../src/s3.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -98,6 +98,8 @@ function defaultSyncResult(overrides: Partial<SyncResult> = {}): SyncResult {
|
|
|
98
98
|
aborted: false,
|
|
99
99
|
newFiles: [],
|
|
100
100
|
newFilesCount: 0,
|
|
101
|
+
filesExcludedByPolicy: 0,
|
|
102
|
+
filesTombstoned: 0,
|
|
101
103
|
...overrides,
|
|
102
104
|
};
|
|
103
105
|
}
|
|
@@ -110,6 +112,7 @@ function defaultShareResult(overrides: Partial<ShareResult> = {}): ShareResult {
|
|
|
110
112
|
filesDeleted: 0,
|
|
111
113
|
filesTombstoned: 0,
|
|
112
114
|
filesRefusedStale: 0,
|
|
115
|
+
filesRefusedStalePaths: [],
|
|
113
116
|
filesExcludedByPolicy: 0,
|
|
114
117
|
conflictPaths: [],
|
|
115
118
|
aborted: false,
|
|
@@ -743,6 +746,7 @@ describe("per-company fanout", () => {
|
|
|
743
746
|
bytesUploaded: 0,
|
|
744
747
|
filesTombstoned: 0,
|
|
745
748
|
filesRefusedStale: 0,
|
|
749
|
+
filesRefusedStalePaths: [],
|
|
746
750
|
filesExcludedByPolicy: 0,
|
|
747
751
|
newFiles: result.newFiles,
|
|
748
752
|
newFilesCount: result.newFilesCount,
|
|
@@ -836,6 +840,87 @@ describe("per-company fanout", () => {
|
|
|
836
840
|
]);
|
|
837
841
|
});
|
|
838
842
|
|
|
843
|
+
it("surfaces filesRefusedStalePaths from share result on the complete event (bonus diagnostic)", async () => {
|
|
844
|
+
// Bonus from the deep-test report: the unexplained \`filesRefusedStale:
|
|
845
|
+
// 205\` recurring on every macOS sync was impossible to triage because
|
|
846
|
+
// the count alone gave no signal about WHICH paths were refused. Add a
|
|
847
|
+
// capped (50) \`filesRefusedStalePaths\` field to the \`complete\` event
|
|
848
|
+
// payload so operators can see which paths are being held back.
|
|
849
|
+
const pullResult = defaultSyncResult();
|
|
850
|
+
const pushResult = defaultShareResult({
|
|
851
|
+
filesRefusedStale: 3,
|
|
852
|
+
filesRefusedStalePaths: ["a.md", "b.md", "c.md"],
|
|
853
|
+
});
|
|
854
|
+
const deps = makeDeps({
|
|
855
|
+
createVaultClient: () =>
|
|
856
|
+
makeVaultStub({
|
|
857
|
+
memberships: [{ companyUid: "cmp_a" }],
|
|
858
|
+
entityGet: (uid: string) =>
|
|
859
|
+
Promise.resolve({ uid, slug: "acme" } as unknown as EntityInfo),
|
|
860
|
+
}),
|
|
861
|
+
sync: vi.fn().mockResolvedValue(pullResult),
|
|
862
|
+
share: vi.fn().mockResolvedValue(pushResult),
|
|
863
|
+
});
|
|
864
|
+
|
|
865
|
+
const code = await runRunner(
|
|
866
|
+
["--companies", "--direction", "both"],
|
|
867
|
+
deps,
|
|
868
|
+
);
|
|
869
|
+
expect(code).toBe(0);
|
|
870
|
+
|
|
871
|
+
const complete = deps.stdout
|
|
872
|
+
.events()
|
|
873
|
+
.find((e) => e.type === "complete") as Extract<RunnerEvent, { type: "complete" }>;
|
|
874
|
+
expect(complete.filesRefusedStale).toBe(3);
|
|
875
|
+
expect(complete.filesRefusedStalePaths).toEqual(["a.md", "b.md", "c.md"]);
|
|
876
|
+
});
|
|
877
|
+
|
|
878
|
+
it("dedupes conflictPaths when the same key conflicts in both push and pull within one bidirectional run (Bug #3)", async () => {
|
|
879
|
+
// Bug catalog: every bidirectional round emitted the same path twice in
|
|
880
|
+
// `conflictPaths` — once from the push half and once from the pull half —
|
|
881
|
+
// and the numeric `conflicts` count double-counted accordingly. The repro
|
|
882
|
+
// from the 5.33.0 deep-test verification:
|
|
883
|
+
// conflictPaths: [".hq/install-manifest.json", ".hq/install-manifest.json"]
|
|
884
|
+
// conflicts: 2
|
|
885
|
+
// The same file legitimately conflicted on both sides of the merge, but
|
|
886
|
+
// the operator only needs to resolve it once, and double-counting throws
|
|
887
|
+
// off every conflict metric downstream (alert thresholds, telemetry).
|
|
888
|
+
//
|
|
889
|
+
// Fix: dedupe at the merge point in the runner so the per-company
|
|
890
|
+
// `complete` event sees one entry + count=1.
|
|
891
|
+
const pullResult = defaultSyncResult({
|
|
892
|
+
conflicts: 1,
|
|
893
|
+
conflictPaths: [".hq/install-manifest.json"],
|
|
894
|
+
aborted: false,
|
|
895
|
+
});
|
|
896
|
+
const pushResult = defaultShareResult({
|
|
897
|
+
conflictPaths: [".hq/install-manifest.json"],
|
|
898
|
+
aborted: false,
|
|
899
|
+
});
|
|
900
|
+
const deps = makeDeps({
|
|
901
|
+
createVaultClient: () =>
|
|
902
|
+
makeVaultStub({
|
|
903
|
+
memberships: [{ companyUid: "cmp_a" }],
|
|
904
|
+
entityGet: (uid: string) =>
|
|
905
|
+
Promise.resolve({ uid, slug: "acme" } as unknown as EntityInfo),
|
|
906
|
+
}),
|
|
907
|
+
sync: vi.fn().mockResolvedValue(pullResult),
|
|
908
|
+
share: vi.fn().mockResolvedValue(pushResult),
|
|
909
|
+
});
|
|
910
|
+
|
|
911
|
+
const code = await runRunner(
|
|
912
|
+
["--companies", "--direction", "both"],
|
|
913
|
+
deps,
|
|
914
|
+
);
|
|
915
|
+
expect(code).toBe(0);
|
|
916
|
+
|
|
917
|
+
const complete = deps.stdout
|
|
918
|
+
.events()
|
|
919
|
+
.find((e) => e.type === "complete") as Extract<RunnerEvent, { type: "complete" }>;
|
|
920
|
+
expect(complete.conflictPaths).toEqual([".hq/install-manifest.json"]);
|
|
921
|
+
expect(complete.conflicts).toBe(1);
|
|
922
|
+
});
|
|
923
|
+
|
|
839
924
|
it("passes --on-conflict and --hq-root through to sync()", async () => {
|
|
840
925
|
const syncSpy = vi.fn().mockResolvedValue(defaultSyncResult());
|
|
841
926
|
const deps = makeDeps({
|
package/src/bin/sync-runner.ts
CHANGED
|
@@ -259,6 +259,15 @@ export type RunnerEvent =
|
|
|
259
259
|
*/
|
|
260
260
|
filesTombstoned: number;
|
|
261
261
|
filesRefusedStale: number;
|
|
262
|
+
/**
|
|
263
|
+
* Paths corresponding to `filesRefusedStale`, capped at 50 (mirrors
|
|
264
|
+
* `newFiles` cap). Surfaced on the `complete` event so operators
|
|
265
|
+
* can triage the recurring `filesRefusedStale: 205` signal that
|
|
266
|
+
* the 5.33.0 deep-test flagged as untriageable — the count alone
|
|
267
|
+
* is impossible to investigate after the per-file
|
|
268
|
+
* `delete-refused-stale-etag` events scroll off.
|
|
269
|
+
*/
|
|
270
|
+
filesRefusedStalePaths: string[];
|
|
262
271
|
filesExcludedByPolicy: number;
|
|
263
272
|
} & SyncResult)
|
|
264
273
|
| {
|
|
@@ -948,6 +957,7 @@ export async function runRunner(
|
|
|
948
957
|
filesDeleted: 0,
|
|
949
958
|
filesTombstoned: 0,
|
|
950
959
|
filesRefusedStale: 0,
|
|
960
|
+
filesRefusedStalePaths: [],
|
|
951
961
|
filesExcludedByPolicy: 0,
|
|
952
962
|
conflictPaths: [],
|
|
953
963
|
aborted: false,
|
|
@@ -961,6 +971,8 @@ export async function runRunner(
|
|
|
961
971
|
aborted: false,
|
|
962
972
|
newFiles: [],
|
|
963
973
|
newFilesCount: 0,
|
|
974
|
+
filesExcludedByPolicy: 0,
|
|
975
|
+
filesTombstoned: 0,
|
|
964
976
|
};
|
|
965
977
|
|
|
966
978
|
// Push first so a subsequent pull doesn't overwrite files we were about
|
|
@@ -1088,13 +1100,24 @@ export async function runRunner(
|
|
|
1088
1100
|
});
|
|
1089
1101
|
}
|
|
1090
1102
|
|
|
1091
|
-
// Concat push + pull conflict paths into a single per-company list
|
|
1092
|
-
//
|
|
1093
|
-
//
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1103
|
+
// Concat push + pull conflict paths into a single per-company list,
|
|
1104
|
+
// then dedupe — a key that legitimately conflicts on both halves of
|
|
1105
|
+
// a bidirectional run (e.g. `.hq/install-manifest.json` round-trip
|
|
1106
|
+
// before Fix #1) appears twice in the concat but represents a single
|
|
1107
|
+
// logical conflict for the operator. Bug #3 in the 5.33.0 deep-test:
|
|
1108
|
+
// every round produced `conflictPaths: [X, X]` and `conflicts: 2`,
|
|
1109
|
+
// double-counting the conflict in every metric downstream. The push
|
|
1110
|
+
// and pull halves each emit a `conflict` event in their own direction
|
|
1111
|
+
// (preserved on the event stream for tracing); only the merged
|
|
1112
|
+
// result list is collapsed. Stable first-seen order is preserved so
|
|
1113
|
+
// consumers can rely on the pull entry coming before its push twin.
|
|
1114
|
+
const seenConflictPaths = new Set<string>();
|
|
1115
|
+
const mergedConflictPaths: string[] = [];
|
|
1116
|
+
for (const p of [...pullResult.conflictPaths, ...pushResult.conflictPaths]) {
|
|
1117
|
+
if (seenConflictPaths.has(p)) continue;
|
|
1118
|
+
seenConflictPaths.add(p);
|
|
1119
|
+
mergedConflictPaths.push(p);
|
|
1120
|
+
}
|
|
1098
1121
|
const aborted = pullResult.aborted || pushResult.aborted;
|
|
1099
1122
|
|
|
1100
1123
|
// Overwrite the progress-derived counts with the authoritative numbers
|
|
@@ -1125,9 +1148,28 @@ export async function runRunner(
|
|
|
1125
1148
|
// from the legacy-engine `None` and useful when the UI wants to
|
|
1126
1149
|
// distinguish "engine ran, nothing tombstoned" from "engine
|
|
1127
1150
|
// didn't report".
|
|
1128
|
-
|
|
1151
|
+
// Tombstones now flow on both legs:
|
|
1152
|
+
// - push side: `ShareResult.filesTombstoned` (remote was already
|
|
1153
|
+
// 404 at HEAD time, journal entry dropped).
|
|
1154
|
+
// - pull side: `SyncResult.filesTombstoned` (Bug #9 — journal-
|
|
1155
|
+
// known key missing from remote LIST, applied as local delete).
|
|
1156
|
+
// Sum them so the menubar's `SyncCompleteEvent` reflects the total
|
|
1157
|
+
// delete-propagation activity for that company across the run.
|
|
1158
|
+
filesTombstoned: pushResult.filesTombstoned + pullResult.filesTombstoned,
|
|
1129
1159
|
filesRefusedStale: pushResult.filesRefusedStale,
|
|
1130
|
-
|
|
1160
|
+
// Bonus diagnostic: surface the paths so operators can triage the
|
|
1161
|
+
// recurring `filesRefusedStale: N` signal — the count alone was
|
|
1162
|
+
// untriageable per the 5.33.0 deep-test report's "205 issue".
|
|
1163
|
+
// Pre-capped at 50 by share() itself.
|
|
1164
|
+
filesRefusedStalePaths: pushResult.filesRefusedStalePaths,
|
|
1165
|
+
// Pull side now reports an `filesExcludedByPolicy` too (Bug #2 —
|
|
1166
|
+
// ephemeral conflict-mirror refusals in the pull walker). Sum
|
|
1167
|
+
// both legs so the `complete` event reports total excluded across
|
|
1168
|
+
// the full bidirectional pass; pre-fix the pull half silently
|
|
1169
|
+
// pushed legacy `.conflict-*` litter into clean trees with the
|
|
1170
|
+
// same counter showing 0.
|
|
1171
|
+
filesExcludedByPolicy:
|
|
1172
|
+
pushResult.filesExcludedByPolicy + pullResult.filesExcludedByPolicy,
|
|
1131
1173
|
// Sourced from the merged path list so push-side conflicts are
|
|
1132
1174
|
// counted too — `ShareResult` doesn't expose a numeric counter,
|
|
1133
1175
|
// and using `pullResult.conflicts` alone silently dropped any
|
|
@@ -1174,6 +1216,7 @@ export async function runRunner(
|
|
|
1174
1216
|
// throw.
|
|
1175
1217
|
filesTombstoned: 0,
|
|
1176
1218
|
filesRefusedStale: 0,
|
|
1219
|
+
filesRefusedStalePaths: [],
|
|
1177
1220
|
filesExcludedByPolicy: 0,
|
|
1178
1221
|
conflicts: 0,
|
|
1179
1222
|
conflictPaths: [],
|
package/src/cli/share.test.ts
CHANGED
|
@@ -378,6 +378,95 @@ describe("share", () => {
|
|
|
378
378
|
});
|
|
379
379
|
});
|
|
380
380
|
|
|
381
|
+
it("first-time-upload-with-cloud-collision: emits conflict + writes mirror under --on-conflict keep (Bug #7)", async () => {
|
|
382
|
+
// Bug #7 (data-loss class) from the 5.33.0 deep test: when a file has
|
|
383
|
+
// NO prior journal entry (fresh upload from this machine) but the
|
|
384
|
+
// remote already has a different object at that key (a peer pushed
|
|
385
|
+
// first), the previous detector required \`!!journalEntry\` for BOTH
|
|
386
|
+
// localChanged and remoteChanged, so the whole \`localChanged &&
|
|
387
|
+
// remoteChanged\` predicate evaluated false. Push fell through to
|
|
388
|
+
// an unconditional PUT, silently overwriting the peer's content
|
|
389
|
+
// without recording a conflict event or writing a mirror.
|
|
390
|
+
//
|
|
391
|
+
// The verification report's V7 isolated the mechanism: the bug is
|
|
392
|
+
// independent of \`--on-conflict\` mode — the conflict-detection
|
|
393
|
+
// branch is keyed on "do I have a prior journal entry?", not on the
|
|
394
|
+
// policy flag. \`s13-conflict.txt\` (had a journal entry) correctly
|
|
395
|
+
// aborted under --on-conflict abort; \`v7b-fresh-collision.txt\`
|
|
396
|
+
// (no journal entry) was never even reported.
|
|
397
|
+
//
|
|
398
|
+
// Fix: even on first-time upload, if HEAD shows remote exists and
|
|
399
|
+
// its content (etag) differs from what we'd put, emit a conflict.
|
|
400
|
+
// Under keep, the existing pull-side mirror routine downloads the
|
|
401
|
+
// remote bytes to \`<orig>.conflict-<ts>-<short>\` so both versions
|
|
402
|
+
// survive on disk; under abort, the company aborts before PUT.
|
|
403
|
+
const companyRoot = path.join(tmpDir, "companies", "acme");
|
|
404
|
+
fs.mkdirSync(companyRoot, { recursive: true });
|
|
405
|
+
const testFile = path.join(companyRoot, "v7b-fresh.txt");
|
|
406
|
+
fs.writeFileSync(testFile, "macos-fresh-collision-content");
|
|
407
|
+
|
|
408
|
+
// Remote exists with a different etag — and there is NO journal
|
|
409
|
+
// entry for this path (this is the first push from this machine).
|
|
410
|
+
vi.mocked(headRemoteFile).mockResolvedValueOnce({
|
|
411
|
+
lastModified: new Date(),
|
|
412
|
+
etag: '"remote-version-etag"',
|
|
413
|
+
size: 40,
|
|
414
|
+
});
|
|
415
|
+
|
|
416
|
+
// No journal file written — first-time upload contract.
|
|
417
|
+
const events: unknown[] = [];
|
|
418
|
+
const result = await share({
|
|
419
|
+
paths: [testFile],
|
|
420
|
+
company: "acme",
|
|
421
|
+
vaultConfig: mockConfig,
|
|
422
|
+
hqRoot: tmpDir,
|
|
423
|
+
onConflict: "keep",
|
|
424
|
+
onEvent: (e) => events.push(e),
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
expect(result.conflictPaths).toEqual(["v7b-fresh.txt"]);
|
|
428
|
+
// Under keep, local stays as-is (no upload) and the mirror records
|
|
429
|
+
// the remote bytes so neither version is lost.
|
|
430
|
+
expect(result.filesUploaded).toBe(0);
|
|
431
|
+
const conflicts = events.filter(
|
|
432
|
+
(e): e is { type: "conflict"; path: string } =>
|
|
433
|
+
typeof e === "object" && e !== null && (e as { type?: string }).type === "conflict",
|
|
434
|
+
);
|
|
435
|
+
expect(conflicts).toHaveLength(1);
|
|
436
|
+
expect(conflicts[0].path).toBe("v7b-fresh.txt");
|
|
437
|
+
// Local file unmodified — it must still contain the local content.
|
|
438
|
+
expect(fs.readFileSync(testFile, "utf-8")).toBe("macos-fresh-collision-content");
|
|
439
|
+
});
|
|
440
|
+
|
|
441
|
+
it("first-time-upload-with-cloud-collision: aborts company under --on-conflict abort (Bug #7)", async () => {
|
|
442
|
+
// Symmetric to the keep case: when --on-conflict abort is passed, a
|
|
443
|
+
// first-time-upload-with-cloud-collision must abort the share leg
|
|
444
|
+
// before the PUT (preserving remote intact) and surface
|
|
445
|
+
// \`aborted: true\` + \`conflicts: 1\` in the result.
|
|
446
|
+
const companyRoot = path.join(tmpDir, "companies", "acme");
|
|
447
|
+
fs.mkdirSync(companyRoot, { recursive: true });
|
|
448
|
+
const testFile = path.join(companyRoot, "v7b-abort.txt");
|
|
449
|
+
fs.writeFileSync(testFile, "local-version");
|
|
450
|
+
|
|
451
|
+
vi.mocked(headRemoteFile).mockResolvedValueOnce({
|
|
452
|
+
lastModified: new Date(),
|
|
453
|
+
etag: '"different-remote"',
|
|
454
|
+
size: 99,
|
|
455
|
+
});
|
|
456
|
+
|
|
457
|
+
const result = await share({
|
|
458
|
+
paths: [testFile],
|
|
459
|
+
company: "acme",
|
|
460
|
+
vaultConfig: mockConfig,
|
|
461
|
+
hqRoot: tmpDir,
|
|
462
|
+
onConflict: "abort",
|
|
463
|
+
});
|
|
464
|
+
|
|
465
|
+
expect(result.aborted).toBe(true);
|
|
466
|
+
expect(result.conflictPaths).toEqual(["v7b-abort.txt"]);
|
|
467
|
+
expect(result.filesUploaded).toBe(0);
|
|
468
|
+
});
|
|
469
|
+
|
|
381
470
|
it("uploads (no conflict) when only the local side changed since last sync", async () => {
|
|
382
471
|
// Regression for hq-cloud#<conflict-detection>: a local edit to a file
|
|
383
472
|
// that exists on S3 used to trigger a push conflict because the
|