@indigoai-us/hq-cloud 6.15.76 → 6.15.77

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 (61) hide show
  1. package/dist/bin/sync-runner.test.js +32 -1
  2. package/dist/bin/sync-runner.test.js.map +1 -1
  3. package/dist/index.d.ts +2 -2
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.test.d.ts +2 -0
  8. package/dist/index.test.d.ts.map +1 -0
  9. package/dist/index.test.js +16 -0
  10. package/dist/index.test.js.map +1 -0
  11. package/dist/operation-lock.d.ts +31 -28
  12. package/dist/operation-lock.d.ts.map +1 -1
  13. package/dist/operation-lock.js +206 -50
  14. package/dist/operation-lock.js.map +1 -1
  15. package/dist/operation-lock.test.js +105 -1
  16. package/dist/operation-lock.test.js.map +1 -1
  17. package/dist/sync/area-resolver.d.ts +66 -0
  18. package/dist/sync/area-resolver.d.ts.map +1 -0
  19. package/dist/sync/area-resolver.js +306 -0
  20. package/dist/sync/area-resolver.js.map +1 -0
  21. package/dist/sync/area-resolver.test.d.ts +2 -0
  22. package/dist/sync/area-resolver.test.d.ts.map +1 -0
  23. package/dist/sync/area-resolver.test.js +211 -0
  24. package/dist/sync/area-resolver.test.js.map +1 -0
  25. package/dist/sync/index.d.ts +4 -0
  26. package/dist/sync/index.d.ts.map +1 -1
  27. package/dist/sync/index.js +2 -0
  28. package/dist/sync/index.js.map +1 -1
  29. package/dist/sync/parallel-sync-coordinator.d.ts +77 -0
  30. package/dist/sync/parallel-sync-coordinator.d.ts.map +1 -0
  31. package/dist/sync/parallel-sync-coordinator.js +287 -0
  32. package/dist/sync/parallel-sync-coordinator.js.map +1 -0
  33. package/dist/sync/parallel-sync-coordinator.test.d.ts +2 -0
  34. package/dist/sync/parallel-sync-coordinator.test.d.ts.map +1 -0
  35. package/dist/sync/parallel-sync-coordinator.test.js +281 -0
  36. package/dist/sync/parallel-sync-coordinator.test.js.map +1 -0
  37. package/dist/sync/path-leases.d.ts +31 -0
  38. package/dist/sync/path-leases.d.ts.map +1 -0
  39. package/dist/sync/path-leases.js +74 -0
  40. package/dist/sync/path-leases.js.map +1 -0
  41. package/dist/sync/path-leases.test.d.ts +2 -0
  42. package/dist/sync/path-leases.test.d.ts.map +1 -0
  43. package/dist/sync/path-leases.test.js +51 -0
  44. package/dist/sync/path-leases.test.js.map +1 -0
  45. package/dist/sync/state-store.d.ts +7 -0
  46. package/dist/sync/state-store.d.ts.map +1 -1
  47. package/dist/sync/state-store.js +104 -43
  48. package/dist/sync/state-store.js.map +1 -1
  49. package/dist/sync/state-store.test.js +62 -1
  50. package/dist/sync/state-store.test.js.map +1 -1
  51. package/dist/sync/sync-work.d.ts +64 -0
  52. package/dist/sync/sync-work.d.ts.map +1 -0
  53. package/dist/sync/sync-work.js +11 -0
  54. package/dist/sync/sync-work.js.map +1 -0
  55. package/dist/watcher.d.ts +6 -0
  56. package/dist/watcher.d.ts.map +1 -1
  57. package/dist/watcher.js +94 -9
  58. package/dist/watcher.js.map +1 -1
  59. package/dist/watcher.test.js +90 -0
  60. package/dist/watcher.test.js.map +1 -1
  61. package/package.json +1 -1
@@ -19,7 +19,7 @@ import { PERSONAL_VAULT_JOURNAL_SLUG, readJournal, writeJournal, } from "../jour
19
19
  import { HQ_CLOUD_VERSION } from "../version.js";
20
20
  import { lockPathFor, OPERATION_LOCKED_EXIT } from "../operation-lock.js";
21
21
  import { TRANSIENT_NETWORK_EXIT } from "../lib/net-errors.js";
22
- import { getStateStoreSnapshotRecoveryCountForTest, resetStateStoreSnapshotRecoveryCountForTest, } from "../sync/state-store.js";
22
+ import { getStateStoreSnapshotRecoveryCountForTest, resetStateStoreSnapshotRecoveryCountForTest, StateStoreLockError, } from "../sync/state-store.js";
23
23
  import { PARTIAL_SYNC_EXIT } from "../lib/exit-codes.js";
24
24
  import { isCoveredByAny } from "../prefix-coalesce.js";
25
25
  import { VaultAuthError, VaultNotFoundError } from "../vault-client.js";
@@ -8134,6 +8134,37 @@ describe("runRunnerWithLoop — Phase 3 event-sync wiring (US-017/018/019)", ()
8134
8134
  shutdown();
8135
8135
  await loop;
8136
8136
  });
8137
+ it("keeps the watch loop alive when an announce hits a StateStore lock timeout", async () => {
8138
+ const publishBatch = vi.fn(() => {
8139
+ throw new StateStoreLockError("timed out acquiring append.lock");
8140
+ });
8141
+ const startEventSync = vi.fn().mockResolvedValue({
8142
+ publishBatch,
8143
+ receiver: { start: async () => { }, dispose: async () => { }, connected: true },
8144
+ ownDeviceId: "dev-test",
8145
+ dispose: vi.fn().mockResolvedValue(undefined),
8146
+ });
8147
+ const { loop, watcher, clock, shutdown } = runLoop({
8148
+ claims: EMAIL_CLAIMS,
8149
+ startEventSync,
8150
+ });
8151
+ await microtasks();
8152
+ const relativePath = "companies/indigo/lock-timeout.md";
8153
+ watcher.emit(relativePath, {
8154
+ paths: new Map([[`/tmp/hq/${relativePath}`, relativePath]]),
8155
+ });
8156
+ clock.advance(0);
8157
+ await microtasks();
8158
+ expect(publishBatch).toHaveBeenCalledTimes(1);
8159
+ let loopExited = false;
8160
+ void loop.then(() => {
8161
+ loopExited = true;
8162
+ });
8163
+ await microtasks();
8164
+ expect(loopExited).toBe(false);
8165
+ shutdown();
8166
+ await expect(loop).resolves.toBe(0);
8167
+ });
8137
8168
  it("publishes exactly one event per path after a pull-only watcher upload", async () => {
8138
8169
  const publishBatch = vi.fn();
8139
8170
  const startEventSync = vi.fn().mockResolvedValue({