@indigoai-us/hq-cloud 5.22.0 → 5.24.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.
Files changed (78) hide show
  1. package/dist/bin/sync-runner.d.ts +20 -0
  2. package/dist/bin/sync-runner.d.ts.map +1 -1
  3. package/dist/bin/sync-runner.js +18 -0
  4. package/dist/bin/sync-runner.js.map +1 -1
  5. package/dist/bin/sync-runner.test.js +46 -2
  6. package/dist/bin/sync-runner.test.js.map +1 -1
  7. package/dist/cli/share.d.ts +77 -20
  8. package/dist/cli/share.d.ts.map +1 -1
  9. package/dist/cli/share.js +278 -61
  10. package/dist/cli/share.js.map +1 -1
  11. package/dist/cli/share.test.js +484 -3
  12. package/dist/cli/share.test.js.map +1 -1
  13. package/dist/cli/sync.d.ts +27 -0
  14. package/dist/cli/sync.d.ts.map +1 -1
  15. package/dist/cli/sync.js.map +1 -1
  16. package/dist/index.d.ts +9 -3
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +9 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/journal.d.ts +76 -1
  21. package/dist/journal.d.ts.map +1 -1
  22. package/dist/journal.js +148 -1
  23. package/dist/journal.js.map +1 -1
  24. package/dist/journal.test.js +251 -5
  25. package/dist/journal.test.js.map +1 -1
  26. package/dist/prefix-coalesce.d.ts +38 -0
  27. package/dist/prefix-coalesce.d.ts.map +1 -0
  28. package/dist/prefix-coalesce.js +69 -0
  29. package/dist/prefix-coalesce.js.map +1 -0
  30. package/dist/prefix-coalesce.test.d.ts +2 -0
  31. package/dist/prefix-coalesce.test.d.ts.map +1 -0
  32. package/dist/prefix-coalesce.test.js +77 -0
  33. package/dist/prefix-coalesce.test.js.map +1 -0
  34. package/dist/public-surface.test.d.ts +15 -0
  35. package/dist/public-surface.test.d.ts.map +1 -0
  36. package/dist/public-surface.test.js +105 -0
  37. package/dist/public-surface.test.js.map +1 -0
  38. package/dist/remote-pull.d.ts +145 -1
  39. package/dist/remote-pull.d.ts.map +1 -1
  40. package/dist/remote-pull.js +258 -1
  41. package/dist/remote-pull.js.map +1 -1
  42. package/dist/remote-pull.test.js +470 -2
  43. package/dist/remote-pull.test.js.map +1 -1
  44. package/dist/scope-shrink.d.ts +109 -0
  45. package/dist/scope-shrink.d.ts.map +1 -0
  46. package/dist/scope-shrink.js +196 -0
  47. package/dist/scope-shrink.js.map +1 -0
  48. package/dist/scope-shrink.test.d.ts +13 -0
  49. package/dist/scope-shrink.test.d.ts.map +1 -0
  50. package/dist/scope-shrink.test.js +342 -0
  51. package/dist/scope-shrink.test.js.map +1 -0
  52. package/dist/types.d.ts +48 -1
  53. package/dist/types.d.ts.map +1 -1
  54. package/dist/vault-client.d.ts +178 -0
  55. package/dist/vault-client.d.ts.map +1 -1
  56. package/dist/vault-client.js +73 -0
  57. package/dist/vault-client.js.map +1 -1
  58. package/dist/vault-client.test.js +226 -0
  59. package/dist/vault-client.test.js.map +1 -1
  60. package/package.json +1 -1
  61. package/src/bin/sync-runner.test.ts +56 -2
  62. package/src/bin/sync-runner.ts +39 -0
  63. package/src/cli/share.test.ts +577 -3
  64. package/src/cli/share.ts +395 -85
  65. package/src/cli/sync.ts +28 -0
  66. package/src/index.ts +67 -0
  67. package/src/journal.test.ts +284 -5
  68. package/src/journal.ts +167 -2
  69. package/src/prefix-coalesce.test.ts +95 -0
  70. package/src/prefix-coalesce.ts +72 -0
  71. package/src/public-surface.test.ts +112 -0
  72. package/src/remote-pull.test.ts +540 -3
  73. package/src/remote-pull.ts +419 -2
  74. package/src/scope-shrink.test.ts +402 -0
  75. package/src/scope-shrink.ts +264 -0
  76. package/src/types.ts +49 -1
  77. package/src/vault-client.test.ts +335 -0
  78. package/src/vault-client.ts +223 -0
@@ -1 +1 @@
1
- {"version":3,"file":"share.js","sourceRoot":"","sources":["../../src/cli/share.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"share.js","sourceRoot":"","sources":["../../src/cli/share.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ vi.mock("../s3.js", () => ({
19
19
  deleteRemoteFile: vi.fn().mockResolvedValue(undefined),
20
20
  headRemoteFile: vi.fn().mockResolvedValue(null),
21
21
  }));
22
- import { share } from "./share.js";
22
+ import { share, _testing as shareTesting } from "./share.js";
23
23
  import { deleteRemoteFile, headRemoteFile, uploadFile, uploadSymlink } from "../s3.js";
24
24
  const mockConfig = {
25
25
  apiUrl: "https://vault-api.test",
@@ -745,6 +745,10 @@ describe("share", () => {
745
745
  hqRoot: tmpDir,
746
746
  skipUnchanged: true,
747
747
  propagateDeletes: true,
748
+ // Pin owned-only — this test predates the currency-gated default and
749
+ // asserts the direction-of-origin branch. A separate currency-gated
750
+ // test covers the new default semantics for the same scenario.
751
+ propagateDeletePolicy: "owned-only",
748
752
  });
749
753
  expect(result.filesDeleted).toBe(1);
750
754
  expect(deleteRemoteFile).toHaveBeenCalledWith(expect.anything(), "knowledge");
@@ -788,6 +792,9 @@ describe("share", () => {
788
792
  hqRoot: tmpDir,
789
793
  skipUnchanged: true,
790
794
  propagateDeletes: true,
795
+ // Owned-only — predates currency-gated default; asserts the lstat
796
+ // guard which is independent of the policy branch.
797
+ propagateDeletePolicy: "owned-only",
791
798
  });
792
799
  expect(result.filesDeleted).toBe(0);
793
800
  expect(deleteRemoteFile).not.toHaveBeenCalled();
@@ -829,6 +836,8 @@ describe("share", () => {
829
836
  hqRoot: tmpDir,
830
837
  skipUnchanged: true,
831
838
  propagateDeletes: true,
839
+ // Owned-only — currency-gated semantics covered separately below.
840
+ propagateDeletePolicy: "owned-only",
832
841
  });
833
842
  expect(result.filesDeleted).toBe(1);
834
843
  expect(deleteRemoteFile).toHaveBeenCalledTimes(1);
@@ -862,6 +871,9 @@ describe("share", () => {
862
871
  hqRoot: tmpDir,
863
872
  skipUnchanged: true,
864
873
  propagateDeletes: true,
874
+ // Owned-only — currency-gated emits a separate event variant; this test
875
+ // pins the legacy progress-with-deleted-flag shape.
876
+ propagateDeletePolicy: "owned-only",
865
877
  onEvent: (e) => events.push(e),
866
878
  });
867
879
  const planEvent = events.find((e) => e.type === "plan");
@@ -934,6 +946,9 @@ describe("share", () => {
934
946
  hqRoot: tmpDir,
935
947
  skipUnchanged: true,
936
948
  propagateDeletes: true,
949
+ // Owned-only — this test asserts scope containment, independent of
950
+ // the policy branch. Currency-gated covered separately.
951
+ propagateDeletePolicy: "owned-only",
937
952
  });
938
953
  expect(result.filesDeleted).toBe(1);
939
954
  expect(deleteRemoteFile).toHaveBeenCalledTimes(1);
@@ -969,6 +984,9 @@ describe("share", () => {
969
984
  hqRoot: tmpDir,
970
985
  skipUnchanged: true,
971
986
  propagateDeletes: true,
987
+ // Owned-only — pinning so the retry-survival assertion is independent
988
+ // of currency-gated's HEAD-driven bucketing.
989
+ propagateDeletePolicy: "owned-only",
972
990
  onEvent: (e) => events.push(e),
973
991
  });
974
992
  expect(result.filesDeleted).toBe(0);
@@ -1002,7 +1020,7 @@ describe("share", () => {
1002
1020
  // Both fixes live in `computeDeletePlan` and are belt-and-suspenders:
1003
1021
  // (i) `direction === "up"` requirement under the default policy.
1004
1022
  // (ii) `shouldSync` must accept the key — same filter the pull uses.
1005
- it("propagateDeletes: under owned-only (default), skips direction:'down' entries", async () => {
1023
+ it("propagateDeletes: under owned-only (legacy pre-5.24 default), skips direction:'down' entries", async () => {
1006
1024
  const companyRoot = path.join(tmpDir, "companies", "acme");
1007
1025
  fs.mkdirSync(companyRoot, { recursive: true });
1008
1026
  // No local files. One journal entry pulled from elsewhere (direction:'down')
@@ -1030,7 +1048,8 @@ describe("share", () => {
1030
1048
  hqRoot: tmpDir,
1031
1049
  skipUnchanged: true,
1032
1050
  propagateDeletes: true,
1033
- // propagateDeletePolicy omitted defaults to "owned-only".
1051
+ // Explicit opt-in `currency-gated` is the new (5.24+) default.
1052
+ propagateDeletePolicy: "owned-only",
1034
1053
  });
1035
1054
  // Only the 'up' entry is deleted; the 'down' entry is left alone so a
1036
1055
  // behind-machine first-sync can't erase peer uploads.
@@ -1093,6 +1112,10 @@ describe("share", () => {
1093
1112
  hqRoot: tmpDir,
1094
1113
  skipUnchanged: true,
1095
1114
  propagateDeletes: true,
1115
+ // Owned-only — filter symmetry is policy-independent; pinning so the
1116
+ // legacy direction-of-origin gate (not currency-gated's HEAD path)
1117
+ // resolves the "delete vs skip" decision for active/current.md.
1118
+ propagateDeletePolicy: "owned-only",
1096
1119
  });
1097
1120
  // legacy/old-layout.md is filter-skipped; only active/current.md is
1098
1121
  // eligible for delete.
@@ -1100,6 +1123,344 @@ describe("share", () => {
1100
1123
  expect(deleteRemoteFile).toHaveBeenCalledWith(expect.anything(), "active/current.md");
1101
1124
  expect(deleteRemoteFile).not.toHaveBeenCalledWith(expect.anything(), "legacy/old-layout.md");
1102
1125
  });
1126
+ // ── Delete propagation: currency-gated policy (5.24+ default) ──────────────
1127
+ //
1128
+ // The pre-5.24 `owned-only` default refused to delete-propagate any journal
1129
+ // entry whose `direction !== "up"`. That made sense as a safety net against
1130
+ // a behind machine's first push erasing peer uploads — but it had a worse
1131
+ // failure mode in practice: every `/update-hq` writes `core/`, `.claude/`,
1132
+ // `.codex/` with `direction: "down"` (they came from upstream), so any
1133
+ // subsequent local delete during a cleanup or upgrade was silently dropped.
1134
+ // Net effect: remote vault accumulated permanent litter the user could not
1135
+ // clean up without manually invoking `policy: "all"` (which has its own
1136
+ // safety problems).
1137
+ //
1138
+ // `currency-gated` solves this by gating on per-file proof of currency: HEAD
1139
+ // the remote, compare ETag, only propagate when this device has the
1140
+ // latest version. Direction-of-origin becomes irrelevant — a file the
1141
+ // upstream `/update-hq` wrote can be cleanly deleted by the device that
1142
+ // wrote it, as long as no other device modified it in the meantime.
1143
+ it("currency-gated: propagates delete when remote ETag matches journal", async () => {
1144
+ const companyRoot = path.join(tmpDir, "companies", "acme");
1145
+ fs.mkdirSync(companyRoot, { recursive: true });
1146
+ // direction:"down" file (e.g. arrived via /update-hq), locally deleted.
1147
+ // Under owned-only this would be stuck on remote forever; currency-gated
1148
+ // checks the ETag and propagates the delete cleanly when match holds.
1149
+ const journalPath = path.join(stateDir, "sync-journal.acme.json");
1150
+ fs.writeFileSync(journalPath, JSON.stringify({
1151
+ version: "1",
1152
+ lastSync: new Date().toISOString(),
1153
+ files: {
1154
+ "core/policies/old.md": {
1155
+ hash: "h", size: 100, syncedAt: new Date().toISOString(),
1156
+ direction: "down",
1157
+ remoteEtag: "abc123",
1158
+ },
1159
+ },
1160
+ }));
1161
+ // HEAD returns the same etag — this device is current for the file.
1162
+ vi.mocked(headRemoteFile).mockResolvedValueOnce({
1163
+ lastModified: new Date(),
1164
+ etag: '"abc123"',
1165
+ size: 100,
1166
+ });
1167
+ const result = await share({
1168
+ paths: [companyRoot],
1169
+ company: "acme",
1170
+ vaultConfig: mockConfig,
1171
+ hqRoot: tmpDir,
1172
+ skipUnchanged: true,
1173
+ propagateDeletes: true,
1174
+ propagateDeletePolicy: "currency-gated",
1175
+ });
1176
+ expect(result.filesDeleted).toBe(1);
1177
+ expect(deleteRemoteFile).toHaveBeenCalledWith(expect.anything(), "core/policies/old.md");
1178
+ const journal = JSON.parse(fs.readFileSync(journalPath, "utf-8"));
1179
+ expect(journal.files["core/policies/old.md"]).toBeUndefined();
1180
+ });
1181
+ it("currency-gated: refuses delete + emits stale-etag event when remote moved since last sync", async () => {
1182
+ const companyRoot = path.join(tmpDir, "companies", "acme");
1183
+ fs.mkdirSync(companyRoot, { recursive: true });
1184
+ // Another device modified `shared.md` after this device's last sync.
1185
+ // The journal still records the old etag; HEAD returns the new one.
1186
+ const journalPath = path.join(stateDir, "sync-journal.acme.json");
1187
+ fs.writeFileSync(journalPath, JSON.stringify({
1188
+ version: "1",
1189
+ lastSync: new Date().toISOString(),
1190
+ files: {
1191
+ "shared.md": {
1192
+ hash: "h", size: 50, syncedAt: new Date().toISOString(),
1193
+ direction: "down",
1194
+ remoteEtag: "stale-etag",
1195
+ },
1196
+ },
1197
+ }));
1198
+ vi.mocked(headRemoteFile).mockResolvedValueOnce({
1199
+ lastModified: new Date(),
1200
+ etag: '"fresh-etag"',
1201
+ size: 51,
1202
+ });
1203
+ const events = [];
1204
+ const result = await share({
1205
+ paths: [companyRoot],
1206
+ company: "acme",
1207
+ vaultConfig: mockConfig,
1208
+ hqRoot: tmpDir,
1209
+ skipUnchanged: true,
1210
+ propagateDeletes: true,
1211
+ propagateDeletePolicy: "currency-gated",
1212
+ onEvent: (e) => events.push(e),
1213
+ });
1214
+ // No remote DELETE issued, journal entry preserved (pull will re-pull).
1215
+ expect(result.filesDeleted).toBe(0);
1216
+ expect(deleteRemoteFile).not.toHaveBeenCalled();
1217
+ const journal = JSON.parse(fs.readFileSync(journalPath, "utf-8"));
1218
+ expect(journal.files["shared.md"]).toBeDefined();
1219
+ // Dedicated event fired so UIs surface the refusal. `reason` field
1220
+ // discriminates "stale-etag" (real drift) from "legacy-no-etag" so
1221
+ // consumers don't have to string-compare placeholder etag values.
1222
+ const refusedEvent = events.find((e) => e.type === "delete-refused-stale-etag");
1223
+ expect(refusedEvent).toMatchObject({
1224
+ type: "delete-refused-stale-etag",
1225
+ path: "shared.md",
1226
+ journalEtag: "stale-etag",
1227
+ remoteEtag: "fresh-etag",
1228
+ reason: "stale-etag",
1229
+ });
1230
+ // Counter exposed on ShareResult so callers don't need to re-count events.
1231
+ expect(result.filesRefusedStale).toBe(1);
1232
+ expect(result.filesTombstoned).toBe(0);
1233
+ });
1234
+ it("currency-gated: tombstones journal entry when remote returns 404 (out-of-band cleanup)", async () => {
1235
+ const companyRoot = path.join(tmpDir, "companies", "acme");
1236
+ fs.mkdirSync(companyRoot, { recursive: true });
1237
+ // Remote file was deleted out-of-band (e.g. someone removed it via the
1238
+ // S3 console). Local copy also missing. Currency-gated should drop the
1239
+ // journal entry without issuing a DELETE — the remote is already gone.
1240
+ const journalPath = path.join(stateDir, "sync-journal.acme.json");
1241
+ fs.writeFileSync(journalPath, JSON.stringify({
1242
+ version: "1",
1243
+ lastSync: new Date().toISOString(),
1244
+ files: {
1245
+ "removed-out-of-band.md": {
1246
+ hash: "h", size: 25, syncedAt: new Date().toISOString(),
1247
+ direction: "down",
1248
+ remoteEtag: "doesnt-matter",
1249
+ },
1250
+ },
1251
+ }));
1252
+ vi.mocked(headRemoteFile).mockResolvedValueOnce(null);
1253
+ const events = [];
1254
+ const result = await share({
1255
+ paths: [companyRoot],
1256
+ company: "acme",
1257
+ vaultConfig: mockConfig,
1258
+ hqRoot: tmpDir,
1259
+ skipUnchanged: true,
1260
+ propagateDeletes: true,
1261
+ propagateDeletePolicy: "currency-gated",
1262
+ onEvent: (e) => events.push(e),
1263
+ });
1264
+ // No DeleteObject (remote was already gone), but journal converges.
1265
+ expect(deleteRemoteFile).not.toHaveBeenCalled();
1266
+ // filesDeleted counts actual S3 deletes; tombstones aren't counted here.
1267
+ expect(result.filesDeleted).toBe(0);
1268
+ // Tombstones have their own counter so callers can distinguish them
1269
+ // from real deletes without re-counting events.
1270
+ expect(result.filesTombstoned).toBe(1);
1271
+ expect(result.filesRefusedStale).toBe(0);
1272
+ const journal = JSON.parse(fs.readFileSync(journalPath, "utf-8"));
1273
+ expect(journal.files["removed-out-of-band.md"]).toBeUndefined();
1274
+ // Synthetic progress event carries the tombstone marker. Without this,
1275
+ // the tty stream renders tombstones identically to real deletes — operator
1276
+ // can't tell from logs alone that no S3 call was issued.
1277
+ const tombstoneEvent = events.find((e) => e.type === "progress" && e.deleted === true && e.message?.includes("tombstone"));
1278
+ expect(tombstoneEvent).toMatchObject({
1279
+ type: "progress",
1280
+ path: "removed-out-of-band.md",
1281
+ bytes: 0,
1282
+ deleted: true,
1283
+ message: expect.stringContaining("tombstone"),
1284
+ });
1285
+ });
1286
+ it("currency-gated: refuses delete for legacy journal entry with no recorded remoteEtag", async () => {
1287
+ const companyRoot = path.join(tmpDir, "companies", "acme");
1288
+ fs.mkdirSync(companyRoot, { recursive: true });
1289
+ // Journal entry from before remoteEtag tracking — no etag to compare
1290
+ // against. Refuse the delete in the safe direction; a future sync with
1291
+ // a recorded etag can re-evaluate.
1292
+ const journalPath = path.join(stateDir, "sync-journal.acme.json");
1293
+ fs.writeFileSync(journalPath, JSON.stringify({
1294
+ version: "1",
1295
+ lastSync: new Date().toISOString(),
1296
+ files: {
1297
+ "legacy-no-etag.md": {
1298
+ hash: "h", size: 5, syncedAt: new Date().toISOString(),
1299
+ direction: "down",
1300
+ // No remoteEtag.
1301
+ },
1302
+ },
1303
+ }));
1304
+ const events = [];
1305
+ const result = await share({
1306
+ paths: [companyRoot],
1307
+ company: "acme",
1308
+ vaultConfig: mockConfig,
1309
+ hqRoot: tmpDir,
1310
+ skipUnchanged: true,
1311
+ propagateDeletes: true,
1312
+ propagateDeletePolicy: "currency-gated",
1313
+ onEvent: (e) => events.push(e),
1314
+ });
1315
+ expect(result.filesDeleted).toBe(0);
1316
+ expect(deleteRemoteFile).not.toHaveBeenCalled();
1317
+ // HEAD must NOT be called — we short-circuit on the missing journal etag.
1318
+ expect(headRemoteFile).not.toHaveBeenCalled();
1319
+ const refused = events.find((e) => e.type === "delete-refused-stale-etag");
1320
+ expect(refused).toMatchObject({
1321
+ journalEtag: "<legacy-no-etag>",
1322
+ reason: "legacy-no-etag",
1323
+ });
1324
+ expect(result.filesRefusedStale).toBe(1);
1325
+ });
1326
+ it("currency-gated: real-world /update-hq scenario — direction:'down' delete propagates when current", async () => {
1327
+ // Regression for the exact bug that motivated the 5.24 default flip:
1328
+ // every `/update-hq` writes core/.claude/.codex from upstream and
1329
+ // journals them as direction:"down". When the user later moves or
1330
+ // deletes one locally (e.g. during cleanup, dir-restructure, or the
1331
+ // next upgrade), pre-5.24 `owned-only` silently kept it on remote
1332
+ // forever. Currency-gated propagates the delete cleanly as long as
1333
+ // this device is current for the file.
1334
+ const companyRoot = path.join(tmpDir, "companies", "acme");
1335
+ fs.mkdirSync(companyRoot, { recursive: true });
1336
+ const journalPath = path.join(stateDir, "sync-journal.acme.json");
1337
+ fs.writeFileSync(journalPath, JSON.stringify({
1338
+ version: "1",
1339
+ lastSync: new Date().toISOString(),
1340
+ files: {
1341
+ ".claude/commands/retired-command.md": {
1342
+ hash: "h", size: 200, syncedAt: new Date().toISOString(),
1343
+ direction: "down",
1344
+ remoteEtag: "upstream-etag",
1345
+ },
1346
+ },
1347
+ }));
1348
+ vi.mocked(headRemoteFile).mockResolvedValueOnce({
1349
+ lastModified: new Date(),
1350
+ etag: '"upstream-etag"',
1351
+ size: 200,
1352
+ });
1353
+ const result = await share({
1354
+ paths: [companyRoot],
1355
+ company: "acme",
1356
+ vaultConfig: mockConfig,
1357
+ hqRoot: tmpDir,
1358
+ skipUnchanged: true,
1359
+ propagateDeletes: true,
1360
+ // Explicit opt-in. 5.24 ships the currency-gated CODE PATH but keeps
1361
+ // `owned-only` as the default while it soaks; the default flips to
1362
+ // `currency-gated` in 5.25. This test pins the user-facing semantics
1363
+ // (the /update-hq delete-propagation bug) under the new policy
1364
+ // regardless of which default the surrounding release ships.
1365
+ propagateDeletePolicy: "currency-gated",
1366
+ });
1367
+ expect(result.filesDeleted).toBe(1);
1368
+ expect(deleteRemoteFile).toHaveBeenCalledWith(expect.anything(), ".claude/commands/retired-command.md");
1369
+ });
1370
+ // ── Conflict-mirror exclusion (ephemeral pattern) ──────────────────────────
1371
+ //
1372
+ // Conflict mirrors (`*.conflict-<ISO>-<machineHash>.<ext>`) are local-only
1373
+ // safety backups written by the pull leg whenever a 3-way merge keeps
1374
+ // local and wants to preserve the remote version for inspection. They
1375
+ // MUST never round-trip to S3. Pre-fix, the push walker uploaded them,
1376
+ // the journal tracked them, and the owned-only delete policy then refused
1377
+ // to clean them up — permanent ratchet of remote litter.
1378
+ it("conflict-mirror exclusion: push walker skips local conflict-mirror files", async () => {
1379
+ const companyRoot = path.join(tmpDir, "companies", "acme");
1380
+ fs.mkdirSync(path.join(companyRoot, "skills"), { recursive: true });
1381
+ // Two files: a normal one and a conflict mirror. Only the normal one
1382
+ // should reach S3; the mirror is local-only state.
1383
+ fs.writeFileSync(path.join(companyRoot, "skills", "real.md"), "real content");
1384
+ fs.writeFileSync(path.join(companyRoot, "skills", "real.md.conflict-2026-05-13T19-40-40Z-e5797a.md"), "conflict mirror content");
1385
+ await share({
1386
+ paths: [companyRoot],
1387
+ company: "acme",
1388
+ vaultConfig: mockConfig,
1389
+ hqRoot: tmpDir,
1390
+ skipUnchanged: true,
1391
+ });
1392
+ expect(uploadFile).toHaveBeenCalledTimes(1);
1393
+ expect(uploadFile).toHaveBeenCalledWith(expect.anything(), expect.stringContaining("real.md"), "skills/real.md");
1394
+ // Spy was called once total — the conflict mirror never reaches uploadFile.
1395
+ // (Asserted by count above; the explicit non-call below is defensive.)
1396
+ const calls = vi.mocked(uploadFile).mock.calls;
1397
+ expect(calls.every((c) => !String(c[1] ?? "").includes("conflict-"))).toBe(true);
1398
+ });
1399
+ it("conflict-mirror exclusion: explicit user-supplied conflict-mirror path is also refused", async () => {
1400
+ const companyRoot = path.join(tmpDir, "companies", "acme");
1401
+ fs.mkdirSync(companyRoot, { recursive: true });
1402
+ const mirrorPath = path.join(companyRoot, "CLAUDE.md.conflict-2026-05-13T19-40-40Z-e5797a.md");
1403
+ fs.writeFileSync(mirrorPath, "mirror content");
1404
+ await share({
1405
+ paths: [mirrorPath],
1406
+ company: "acme",
1407
+ vaultConfig: mockConfig,
1408
+ hqRoot: tmpDir,
1409
+ skipUnchanged: true,
1410
+ });
1411
+ // Explicit caller path matching the ephemeral pattern is filtered the
1412
+ // same as a walker-discovered one. Belt-and-suspenders against any
1413
+ // tooling that hands a conflict mirror to share() directly.
1414
+ expect(uploadFile).not.toHaveBeenCalled();
1415
+ });
1416
+ it("conflict-mirror exclusion: journaled mirror with local-missing is NOT swept by delete plan", async () => {
1417
+ const companyRoot = path.join(tmpDir, "companies", "acme");
1418
+ fs.mkdirSync(companyRoot, { recursive: true });
1419
+ // Simulate the existing-litter state: a conflict mirror that leaked
1420
+ // into the journal in a prior buggy version. Locally missing (user
1421
+ // already deleted it). The regular delete plan must NOT issue a
1422
+ // DeleteObject — that's the dedicated reconcile command's job, and
1423
+ // a sync should not accidentally race a user reviewing the mirror.
1424
+ const journalPath = path.join(stateDir, "sync-journal.acme.json");
1425
+ fs.writeFileSync(journalPath, JSON.stringify({
1426
+ version: "1",
1427
+ lastSync: new Date().toISOString(),
1428
+ files: {
1429
+ "CLAUDE.md.conflict-2026-05-13T19-40-40Z-e5797a.md": {
1430
+ hash: "h", size: 10, syncedAt: new Date().toISOString(),
1431
+ direction: "up",
1432
+ remoteEtag: "mirror-etag",
1433
+ },
1434
+ "regular.md": {
1435
+ hash: "h", size: 5, syncedAt: new Date().toISOString(),
1436
+ direction: "up",
1437
+ remoteEtag: "regular-etag",
1438
+ },
1439
+ },
1440
+ }));
1441
+ // HEAD needed for the non-mirror entry under currency-gated.
1442
+ vi.mocked(headRemoteFile).mockResolvedValue({
1443
+ lastModified: new Date(),
1444
+ etag: '"regular-etag"',
1445
+ size: 5,
1446
+ });
1447
+ const result = await share({
1448
+ paths: [companyRoot],
1449
+ company: "acme",
1450
+ vaultConfig: mockConfig,
1451
+ hqRoot: tmpDir,
1452
+ skipUnchanged: true,
1453
+ propagateDeletes: true,
1454
+ });
1455
+ expect(result.filesDeleted).toBe(1);
1456
+ expect(deleteRemoteFile).toHaveBeenCalledTimes(1);
1457
+ expect(deleteRemoteFile).toHaveBeenCalledWith(expect.anything(), "regular.md");
1458
+ expect(deleteRemoteFile).not.toHaveBeenCalledWith(expect.anything(), expect.stringContaining("conflict-"));
1459
+ // Mirror's journal entry survives — reconcile command (separate skill)
1460
+ // sweeps it once the user explicitly opts in.
1461
+ const journal = JSON.parse(fs.readFileSync(journalPath, "utf-8"));
1462
+ expect(journal.files["CLAUDE.md.conflict-2026-05-13T19-40-40Z-e5797a.md"]).toBeDefined();
1463
+ });
1103
1464
  // ── personalMode ───────────────────────────────────────────────────────────
1104
1465
  //
1105
1466
  // The personal vault (slug "personal" in the runner's fanout plan) shares
@@ -1422,4 +1783,124 @@ describe("share", () => {
1422
1783
  });
1423
1784
  });
1424
1785
  });
1786
+ // ── Pure-function unit coverage: isEphemeralPath ─────────────────────────────
1787
+ //
1788
+ // EPHEMERAL_PATH_PATTERN is the single source of truth for "this is a conflict
1789
+ // mirror and must never round-trip to S3." Integration tests already cover the
1790
+ // behavior end-to-end (uploadFile is or isn't called), but a direct regex
1791
+ // contract test makes intent unambiguous and catches future drift in the
1792
+ // pattern — much cheaper than reproducing each case through share().
1793
+ describe("isEphemeralPath (conflict-mirror pattern contract)", () => {
1794
+ const { isEphemeralPath } = shareTesting;
1795
+ it.each([
1796
+ // Canonical: basename and relativeKey both match (the two callsites).
1797
+ [".claude/CLAUDE.md.conflict-2026-05-13T19-40-40Z-e5797a.md", true],
1798
+ ["CLAUDE.md.conflict-2026-05-13T19-40-40Z-e5797a.md", true],
1799
+ [".claude/commands/adr.md.conflict-2026-05-13T19-40-41Z-e5797a.md", true],
1800
+ // Longer machine hash (no upper bound on `[a-f0-9]+`).
1801
+ ["foo.conflict-2026-05-19T17-05-56Z-deadbeef.md", true],
1802
+ // Non-markdown extensions also valid (sh scripts, ts files, etc.).
1803
+ ["foo.sh.conflict-2026-05-19T17-05-56Z-abc123.sh", true],
1804
+ ])("matches conflict mirror: %s", (p, expected) => {
1805
+ expect(isEphemeralPath(p)).toBe(expected);
1806
+ });
1807
+ it.each([
1808
+ // Normal files: regular markdown, scripts, etc.
1809
+ ["README.md", false],
1810
+ [".claude/CLAUDE.md", false],
1811
+ ["companies/acme/knowledge/note.md", false],
1812
+ // Strings containing the word "conflict" but not the timestamp+hash token.
1813
+ ["conflict-resolution.md", false],
1814
+ ["my-conflict.md", false],
1815
+ ["foo.conflict-handler.md", false],
1816
+ // Date-shaped but missing the trailing dot + extension (real conflicts
1817
+ // always carry a file extension; the trailing `\.` in the pattern is the
1818
+ // safety against bare-substring false positives).
1819
+ ["foo.conflict-2026-05-13T19-40-40Z-abc", false],
1820
+ // Wrong-case or non-hex machine hash.
1821
+ ["foo.conflict-2026-05-13T19-40-40Z-ZZZZZZ.md", false],
1822
+ // Wrong timestamp format (real conflicts use UTC ISO with Z suffix).
1823
+ ["foo.conflict-2026-05-13-abc123.md", false],
1824
+ // Missing leading dot before "conflict" (this protects against legitimate
1825
+ // files that happen to contain the word "conflict" mid-name).
1826
+ ["fooconflict-2026-05-13T19-40-40Z-abc.md", false],
1827
+ ])("rejects non-mirror: %s", (p, expected) => {
1828
+ expect(isEphemeralPath(p)).toBe(expected);
1829
+ });
1830
+ });
1831
+ // ── Currency-gated coverage against journal version "2" fixtures ─────────────
1832
+ //
1833
+ // Production journals on disk are at `version: "2"` (verified via jq on the
1834
+ // real-world ~/.hq/sync-journal.personal.json). The currency-gated tests above
1835
+ // use v1 fixtures by historical convention — this block pins the behavior at
1836
+ // v2 explicitly so a future schema change can't silently strand the new policy
1837
+ // on a stale fixture format. The bucket logic ignores `version` (only reads
1838
+ // `journal.files[*]`), so this should pass identically — but we want the
1839
+ // regression test on record.
1840
+ describe("currency-gated: journal version 2 fixtures", () => {
1841
+ let tmpDir;
1842
+ let stateDir;
1843
+ let origDataHome;
1844
+ beforeEach(() => {
1845
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "hq-share-test-v2-"));
1846
+ stateDir = path.join(tmpDir, ".hq");
1847
+ fs.mkdirSync(stateDir, { recursive: true });
1848
+ origDataHome = process.env.XDG_DATA_HOME;
1849
+ process.env.XDG_DATA_HOME = stateDir;
1850
+ process.env.HQ_STATE_DIR = stateDir;
1851
+ clearContextCache();
1852
+ setupFetchMock();
1853
+ vi.mocked(uploadFile).mockClear();
1854
+ vi.mocked(uploadSymlink).mockClear();
1855
+ vi.mocked(deleteRemoteFile).mockClear();
1856
+ vi.mocked(headRemoteFile).mockReset();
1857
+ vi.mocked(headRemoteFile).mockResolvedValue(null);
1858
+ });
1859
+ afterEach(() => {
1860
+ if (origDataHome === undefined) {
1861
+ delete process.env.XDG_DATA_HOME;
1862
+ }
1863
+ else {
1864
+ process.env.XDG_DATA_HOME = origDataHome;
1865
+ }
1866
+ delete process.env.HQ_STATE_DIR;
1867
+ fs.rmSync(tmpDir, { recursive: true, force: true });
1868
+ });
1869
+ it("propagates delete on etag match against a v2-shaped journal", async () => {
1870
+ const companyRoot = path.join(tmpDir, "companies", "acme");
1871
+ fs.mkdirSync(companyRoot, { recursive: true });
1872
+ const journalPath = path.join(stateDir, "sync-journal.acme.json");
1873
+ // v2-shaped fixture — same field set the production journal uses.
1874
+ fs.writeFileSync(journalPath, JSON.stringify({
1875
+ version: "2",
1876
+ lastSync: new Date().toISOString(),
1877
+ files: {
1878
+ "core/policies/old.md": {
1879
+ hash: "h",
1880
+ size: 100,
1881
+ syncedAt: new Date().toISOString(),
1882
+ direction: "down",
1883
+ remoteEtag: "v2-etag",
1884
+ },
1885
+ },
1886
+ pulls: [],
1887
+ }));
1888
+ vi.mocked(headRemoteFile).mockResolvedValueOnce({
1889
+ lastModified: new Date(),
1890
+ etag: '"v2-etag"',
1891
+ size: 100,
1892
+ });
1893
+ const result = await share({
1894
+ paths: [companyRoot],
1895
+ company: "acme",
1896
+ vaultConfig: mockConfig,
1897
+ hqRoot: tmpDir,
1898
+ skipUnchanged: true,
1899
+ propagateDeletes: true,
1900
+ propagateDeletePolicy: "currency-gated",
1901
+ });
1902
+ expect(result.filesDeleted).toBe(1);
1903
+ expect(deleteRemoteFile).toHaveBeenCalledWith(expect.anything(), "core/policies/old.md");
1904
+ });
1905
+ });
1425
1906
  //# sourceMappingURL=share.test.js.map