@indigoai-us/hq-cloud 6.15.78 → 6.15.79

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.
@@ -0,0 +1,199 @@
1
+ import * as fs from "node:fs";
2
+ import * as os from "node:os";
3
+ import * as path from "node:path";
4
+ import { spawn } from "node:child_process";
5
+ import { once } from "node:events";
6
+ import { afterEach, describe, expect, it } from "vitest";
7
+ import { AreaLedger, setAreaLedgerTestHooksForTest } from "./area-ledger.js";
8
+ const roots = [];
9
+ afterEach(() => {
10
+ setAreaLedgerTestHooksForTest(undefined);
11
+ for (const root of roots.splice(0))
12
+ fs.rmSync(root, { recursive: true, force: true });
13
+ });
14
+ function entry(size) {
15
+ return {
16
+ hash: `${size}`.repeat(64),
17
+ size,
18
+ syncedAt: "2026-08-27T00:00:00.000Z",
19
+ direction: "up",
20
+ };
21
+ }
22
+ function makeRoot() {
23
+ const root = fs.mkdtempSync(path.join(os.tmpdir(), "hq-area-ledger-test-"));
24
+ roots.push(root);
25
+ return root;
26
+ }
27
+ function open(root, initialJournal) {
28
+ return AreaLedger.open({
29
+ rootDir: root,
30
+ journalSlug: "personal-vault",
31
+ layoutEpoch: 1,
32
+ areaIds: ["root:alpha", "root:beta"],
33
+ resolveArea: (key) => key.startsWith("alpha/") ? "root:alpha" : key.startsWith("beta/") ? "root:beta" : undefined,
34
+ initialJournal,
35
+ maxRecordsBeforeCompaction: 2,
36
+ });
37
+ }
38
+ async function exitCode(child) {
39
+ const [code, signal] = await once(child, "exit");
40
+ if (code !== 0)
41
+ throw new Error(`area-ledger child failed with ${String(code)} / ${String(signal)}`);
42
+ return code;
43
+ }
44
+ if (process.env.AREA_LEDGER_CHILD_ROOT) {
45
+ describe("AreaLedger child append", () => {
46
+ it("appends its assigned independent area", () => {
47
+ const ledger = open(process.env.AREA_LEDGER_CHILD_ROOT);
48
+ ledger.append({ upserts: { "beta/from-child.md": entry(2) } });
49
+ });
50
+ });
51
+ }
52
+ else {
53
+ describe("AreaLedger", () => {
54
+ it("allows two processes to append independent areas through distinct append locks", async () => {
55
+ const root = makeRoot();
56
+ const child = spawn(process.execPath, [path.join(process.cwd(), "node_modules/vitest/vitest.mjs"), "run", "src/sync/area-ledger.test.ts", "--no-file-parallelism"], {
57
+ cwd: process.cwd(),
58
+ env: { ...process.env, AREA_LEDGER_CHILD_ROOT: root },
59
+ stdio: "pipe",
60
+ });
61
+ const parent = open(root);
62
+ parent.append({ upserts: { "alpha/from-parent.md": entry(1) } });
63
+ await exitCode(child);
64
+ const reopened = open(root);
65
+ expect(reopened.read().files).toMatchObject({
66
+ "alpha/from-parent.md": { size: 1 },
67
+ "beta/from-child.md": { size: 2 },
68
+ });
69
+ const directories = reopened.stateDirectoriesForTest();
70
+ const alphaLock = path.join(directories.get("root:alpha"), "append.lock");
71
+ const betaLock = path.join(directories.get("root:beta"), "append.lock");
72
+ expect(alphaLock).not.toBe(betaLock);
73
+ expect(fs.existsSync(alphaLock)).toBe(false);
74
+ expect(fs.existsSync(betaLock)).toBe(false);
75
+ }, 30_000);
76
+ it("preserves same-area append ordering and durability", () => {
77
+ const root = makeRoot();
78
+ const first = open(root);
79
+ const second = open(root);
80
+ first.append({ upserts: { "alpha/one.md": entry(1) } });
81
+ second.append({ upserts: { "alpha/two.md": entry(2) } });
82
+ expect(open(root).readScoped(["alpha/one.md", "alpha/two.md"]).files).toMatchObject({
83
+ "alpha/one.md": { size: 1 },
84
+ "alpha/two.md": { size: 2 },
85
+ });
86
+ });
87
+ it("opens only the routed data area for a scoped read", () => {
88
+ const root = makeRoot();
89
+ const ledger = open(root);
90
+ ledger.append({ upserts: { "alpha/one.md": entry(1) } });
91
+ ledger.append({ upserts: { "beta/two.md": entry(2) } });
92
+ const scoped = open(root);
93
+ expect(scoped.readScoped(["alpha/one.md"])).toMatchObject({ files: { "alpha/one.md": { size: 1 } } });
94
+ // Scoped reads refresh @meta so they can include a committed prepare.
95
+ // No unrelated beta data store is needed when no watermark names it.
96
+ expect(scoped.openedAreasForTest()).toEqual(["@meta", "root:alpha"]);
97
+ });
98
+ it("orders a prepared update before later direct updates and deletes", () => {
99
+ const root = makeRoot();
100
+ const ledger = open(root);
101
+ ledger.append({ upserts: { "alpha/x.md": entry(1) }, metadata: { lastSync: "prepared", pulls: [] } });
102
+ ledger.append({ upserts: { "alpha/x.md": entry(2) } });
103
+ expect(ledger.read().files["alpha/x.md"]).toMatchObject({ size: 2 });
104
+ ledger.append({ upserts: { "alpha/x.md": entry(3) }, metadata: { lastSync: "prepared-again", pulls: [] } });
105
+ ledger.append({ deletes: ["alpha/x.md"] });
106
+ expect(ledger.read().files["alpha/x.md"]).toBeUndefined();
107
+ });
108
+ it("includes committed multi-area prepares in scoped reads and refreshes cached stores", () => {
109
+ const root = makeRoot();
110
+ const reader = open(root);
111
+ expect(reader.readScoped(["alpha/one.md"]).files).toEqual({});
112
+ const writer = open(root);
113
+ writer.append({
114
+ upserts: { "alpha/one.md": entry(1), "beta/two.md": entry(2) },
115
+ metadata: { lastSync: "visible", pulls: [] },
116
+ });
117
+ expect(reader.readScoped(["alpha/one.md"])).toMatchObject({
118
+ lastSync: "visible",
119
+ files: { "alpha/one.md": { size: 1 } },
120
+ });
121
+ });
122
+ it("hides a watermark when independent recovery lost one named area prepare", () => {
123
+ const root = makeRoot();
124
+ const ledger = open(root);
125
+ setAreaLedgerTestHooksForTest({
126
+ afterWatermarkBeforeFinalize: () => { throw new Error("simulated crash after watermark"); },
127
+ });
128
+ expect(() => ledger.append({
129
+ upserts: { "alpha/one.md": entry(1), "beta/two.md": entry(2) },
130
+ metadata: { lastSync: "must-be-atomic", pulls: [] },
131
+ })).toThrow("simulated crash after watermark");
132
+ setAreaLedgerTestHooksForTest(undefined);
133
+ const betaDir = ledger.stateDirectoriesForTest().get("root:beta");
134
+ fs.rmSync(betaDir, { recursive: true, force: true });
135
+ expect(open(root).read().files).toEqual({});
136
+ });
137
+ it("retires published prepares and watermarks after folding them into base journals", () => {
138
+ const root = makeRoot();
139
+ const ledger = open(root);
140
+ ledger.append({
141
+ upserts: { "alpha/one.md": entry(1), "beta/two.md": entry(2) },
142
+ metadata: { lastSync: "fold", pulls: [] },
143
+ });
144
+ expect(ledger.transactionCountsForTest()).toEqual({ prepared: 0, watermarks: 0, finalized: 0 });
145
+ expect(ledger.read().files).toMatchObject({ "alpha/one.md": { size: 1 }, "beta/two.md": { size: 2 } });
146
+ expect(ledger.transactionCountsForTest()).toEqual({ prepared: 0, watermarks: 0, finalized: 0 });
147
+ expect(open(root).read().files).toMatchObject({ "alpha/one.md": { size: 1 }, "beta/two.md": { size: 2 } });
148
+ });
149
+ it("recovers a fully prepared cross-area transaction by writing the watermark last", () => {
150
+ const root = makeRoot();
151
+ const ledger = open(root);
152
+ setAreaLedgerTestHooksForTest({
153
+ afterDataBeforeWatermark: () => { throw new Error("simulated process crash"); },
154
+ });
155
+ expect(() => ledger.append({
156
+ upserts: { "alpha/one.md": entry(1), "beta/two.md": entry(2) },
157
+ metadata: { lastSync: "watermark", pulls: [] },
158
+ })).toThrow("simulated process crash");
159
+ setAreaLedgerTestHooksForTest(undefined);
160
+ expect(open(root).read()).toMatchObject({
161
+ lastSync: "watermark",
162
+ files: { "alpha/one.md": { size: 1 }, "beta/two.md": { size: 2 } },
163
+ });
164
+ });
165
+ it("keeps appenders correct while one area compacts off-lock", () => {
166
+ const root = makeRoot();
167
+ const ledger = open(root);
168
+ ledger.append({ upserts: { "alpha/one.md": entry(1) } });
169
+ ledger.append({ upserts: { "alpha/two.md": entry(2) } });
170
+ ledger.append({ upserts: { "beta/other.md": entry(3) } });
171
+ expect(open(root).read().files).toMatchObject({
172
+ "alpha/one.md": { size: 1 },
173
+ "alpha/two.md": { size: 2 },
174
+ "beta/other.md": { size: 3 },
175
+ });
176
+ });
177
+ it("matches the legacy aggregate journal fixture while keeping the legacy adapter opt-in default", () => {
178
+ const root = makeRoot();
179
+ const legacy = {
180
+ version: "2",
181
+ lastSync: "before",
182
+ files: { "alpha/one.md": entry(1), "beta/two.md": entry(2) },
183
+ pulls: [],
184
+ };
185
+ const ledger = open(root, legacy);
186
+ expect(ledger.read()).toEqual(legacy);
187
+ legacy.files["alpha/three.md"] = entry(3);
188
+ delete legacy.files["beta/two.md"];
189
+ legacy.lastSync = "after";
190
+ ledger.append({
191
+ upserts: { "alpha/three.md": entry(3) },
192
+ deletes: ["beta/two.md"],
193
+ metadata: { lastSync: "after", pulls: [] },
194
+ });
195
+ expect(ledger.read()).toEqual(legacy);
196
+ });
197
+ });
198
+ }
199
+ //# sourceMappingURL=area-ledger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"area-ledger.test.js","sourceRoot":"","sources":["../../src/sync/area-ledger.test.ts"],"names":[],"mappings":"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"}
@@ -150,6 +150,12 @@ export interface StartEventSyncOptions {
150
150
  now?: () => number;
151
151
  /** Clock seam for deferred publish cleanup tests. */
152
152
  clock?: Clock;
153
+ /** Test seam for event-sync startup retry scheduling. */
154
+ retryInitialMs?: number;
155
+ /** Test seam for the capped event-sync startup retry delay. */
156
+ retryMaxMs?: number;
157
+ /** Test seam for full-jitter event-sync startup retries. */
158
+ retryRandom?: () => number;
153
159
  /** Override the per-path trailing-publish interval. */
154
160
  publishMinIntervalMs?: number;
155
161
  /** Existing runner state directory for restart-durable publish suppression. */
@@ -174,6 +180,9 @@ export interface EventSyncHandles {
174
180
  /** Tear down transport + receiver (runner shutdown path). */
175
181
  dispose: () => Promise<void>;
176
182
  }
183
+ /** Startup retry defaults: full jitter over a 30s → 10min exponential cap. */
184
+ export declare const DEFAULT_EVENT_SYNC_RETRY_INITIAL_MS = 30000;
185
+ export declare const DEFAULT_EVENT_SYNC_RETRY_MAX_MS: number;
177
186
  /** Every v2 signal has identical correctness semantics: schedule one drain. */
178
187
  export type RealtimeDrainSignal = "watcher" | "wake" | "high-water" | "reconnect" | "retry";
179
188
  export interface UnifiedRealtimeSchedulerOptions {
@@ -207,10 +216,11 @@ export interface UnifiedRealtimeScheduler {
207
216
  */
208
217
  export declare function createUnifiedRealtimeScheduler(options: UnifiedRealtimeSchedulerOptions): UnifiedRealtimeScheduler;
209
218
  /**
210
- * Bring up the publish + receive legs. Returns `null` (poll-only degradation)
211
- * on ANY startup failure subscribe 5xx, tenant resolution failure, etc.
212
- * after logging the reason. The caller treats `null` as "today's behavior".
219
+ * Bring up the publish + receive legs. A failed initial subscribe deliberately
220
+ * keeps the watch runner poll-only, but returns an offline handle that retries
221
+ * the complete startup sequence forever. Once it succeeds, the same handle
222
+ * forwards publishes and disposes the live legs just like an immediate start.
213
223
  */
214
- export declare function startEventSync(opts: StartEventSyncOptions): Promise<EventSyncHandles | null>;
224
+ export declare function startEventSync(opts: StartEventSyncOptions): Promise<EventSyncHandles>;
215
225
  export {};
216
226
  //# sourceMappingURL=event-sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-sync.d.ts","sourceRoot":"","sources":["../../src/sync/event-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-sync.d.ts","sourceRoot":"","sources":["../../src/sync/event-sync.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@
32
32
  import { SQSClient, ReceiveMessageCommand, DeleteMessageCommand, ChangeMessageVisibilityCommand, } from "@aws-sdk/client-sqs";
33
33
  import { HttpPushTransport } from "./push-transport.js";
34
34
  import { SqsPushReceiver, RealtimeWakeReceiver, } from "./push-receiver.js";
35
- import { PushEventEmitter } from "../watcher.js";
35
+ import { PushEventEmitter, systemClock, } from "../watcher.js";
36
36
  import { emitCloudTelemetry, } from "../telemetry-events.js";
37
37
  import { createSyncLatencyMetricPublisher, } from "./metrics.js";
38
38
  import { isEventSyncLocallyDisabled } from "./feature-flags.js";
@@ -246,6 +246,9 @@ export function createRefreshingSqsClient(opts) {
246
246
  changeMessageVisibility: (args) => withRetry(() => inner.changeMessageVisibility(args)),
247
247
  };
248
248
  }
249
+ /** Startup retry defaults: full jitter over a 30s → 10min exponential cap. */
250
+ export const DEFAULT_EVENT_SYNC_RETRY_INITIAL_MS = 30_000;
251
+ export const DEFAULT_EVENT_SYNC_RETRY_MAX_MS = 10 * 60_000;
249
252
  /**
250
253
  * Coalesces all v2 notifications into a single drain bit. The cursor carried
251
254
  * by a wake is intentionally ignored: duplicate, stale, and reordered wakes
@@ -394,35 +397,48 @@ export function createUnifiedRealtimeScheduler(options) {
394
397
  },
395
398
  };
396
399
  }
397
- /**
398
- * Bring up the publish + receive legs. Returns `null` (poll-only degradation)
399
- * on ANY startup failure — subscribe 5xx, tenant resolution failure, etc. —
400
- * after logging the reason. The caller treats `null` as "today's behavior".
401
- */
402
- export async function startEventSync(opts) {
400
+ /** Build the real publish + receive legs once a subscribe attempt succeeds. */
401
+ async function startLiveEventSync(opts) {
403
402
  const log = opts.log ?? ((m) => console.error(m));
403
+ const tenantId = await opts.resolveTenantId();
404
+ const deviceId = opts.deviceId;
405
+ // The subscription response is the authenticated legacy inventory/grant.
406
+ // No email, environment, tenant, or queued hint can reach the live path
407
+ // without this server-issued queue and credential material.
408
+ const subscribe = opts.subscribe ??
409
+ ((dev) => subscribeSyncReceive({
410
+ apiUrl: opts.apiUrl,
411
+ authToken: opts.authToken,
412
+ deviceId: dev,
413
+ }));
414
+ const initial = await subscribe(deviceId);
415
+ const syncBatchFn = opts.syncBatchFn ?? (opts.syncFn
416
+ ? async ({ events, signal }) => {
417
+ for (const event of events)
418
+ await opts.syncFn({ event, signal });
419
+ }
420
+ : null);
421
+ if (!syncBatchFn) {
422
+ throw new Error("event-sync: syncBatchFn is required");
423
+ }
424
+ // ── publish leg (US-017) ──
425
+ const transport = opts.transport ??
426
+ new HttpPushTransport({
427
+ apiUrl: opts.apiUrl,
428
+ pushPath: "/v1/sync/push",
429
+ authToken: opts.authToken,
430
+ });
404
431
  try {
405
- const tenantId = await opts.resolveTenantId();
406
- const deviceId = opts.deviceId;
407
- // The subscription response is the authenticated legacy inventory/grant.
408
- // No email, environment, tenant, or queued hint can reach the live path
409
- // without this server-issued queue and credential material.
410
- const subscribe = opts.subscribe ??
411
- ((dev) => subscribeSyncReceive({
412
- apiUrl: opts.apiUrl,
413
- authToken: opts.authToken,
414
- deviceId: dev,
415
- }));
416
- const initial = await subscribe(deviceId);
417
- // ── publish leg (US-017) ──
418
- const transport = opts.transport ??
419
- new HttpPushTransport({
420
- apiUrl: opts.apiUrl,
421
- pushPath: "/v1/sync/push",
422
- authToken: opts.authToken,
423
- });
424
432
  await transport.start();
425
- const emitter = new PushEventEmitter({
433
+ }
434
+ catch (startupError) {
435
+ await transport.dispose().catch(() => undefined);
436
+ throw startupError;
437
+ }
438
+ let emitter = null;
439
+ let receiver = null;
440
+ try {
441
+ emitter = new PushEventEmitter({
426
442
  originTenantId: tenantId,
427
443
  originDeviceId: deviceId,
428
444
  transport,
@@ -446,15 +462,6 @@ export async function startEventSync(opts) {
446
462
  initialPublishedContentHashes: opts.initialPublishedContentHashes,
447
463
  });
448
464
  // ── receive leg (US-018) ──
449
- const syncBatchFn = opts.syncBatchFn ?? (opts.syncFn
450
- ? async ({ events, signal }) => {
451
- for (const event of events)
452
- await opts.syncFn({ event, signal });
453
- }
454
- : null);
455
- if (!syncBatchFn) {
456
- throw new Error("event-sync: syncBatchFn is required");
457
- }
458
465
  const publishMetric = initial.cloudWatch
459
466
  ? createSyncLatencyMetricPublisher(initial.cloudWatch)
460
467
  : async () => undefined;
@@ -464,7 +471,7 @@ export async function startEventSync(opts) {
464
471
  buildSqs: opts.buildSqs,
465
472
  now: opts.now,
466
473
  });
467
- const receiver = new SqsPushReceiver({
474
+ receiver = new SqsPushReceiver({
468
475
  tenantId,
469
476
  queueUrl: initial.queueUrl,
470
477
  sqs,
@@ -476,30 +483,54 @@ export async function startEventSync(opts) {
476
483
  onReceiveActivity: opts.onReceiveActivity,
477
484
  });
478
485
  await receiver.start();
479
- log(`event-sync: live (tenant=${tenantId} device=${deviceId} queue=${initial.queueUrl})`);
480
- void emitCloudTelemetry(opts.telemetryClient, {
481
- eventName: "event_sync_live",
482
- source: "event-sync",
483
- properties: {
484
- deviceId,
485
- startupResult: "live",
486
- receiveState: "enabled",
487
- publishState: "enabled",
488
- },
489
- }, { claims: opts.telemetryClaims });
490
- return {
491
- publishBatch: (batch) => void emitter.emitForBatch(batch),
492
- receiver,
493
- ownDeviceId: deviceId,
494
- dispose: async () => {
495
- await receiver.dispose().catch(() => undefined);
496
- emitter.dispose();
497
- await transport.dispose().catch(() => undefined);
498
- },
499
- };
500
486
  }
501
- catch (err) {
502
- log(`event-sync: startup failed, continuing poll-only: ${err instanceof Error ? err.message : String(err)}`);
487
+ catch (startupError) {
488
+ await receiver?.dispose().catch(() => undefined);
489
+ emitter?.dispose();
490
+ await transport.dispose().catch(() => undefined);
491
+ throw startupError;
492
+ }
493
+ if (!emitter || !receiver) {
494
+ throw new Error("event-sync: live startup completed without handles");
495
+ }
496
+ log(`event-sync: live (tenant=${tenantId} device=${deviceId} queue=${initial.queueUrl})`);
497
+ void emitCloudTelemetry(opts.telemetryClient, {
498
+ eventName: "event_sync_live",
499
+ source: "event-sync",
500
+ properties: {
501
+ deviceId,
502
+ startupResult: "live",
503
+ receiveState: "enabled",
504
+ publishState: "enabled",
505
+ },
506
+ }, { claims: opts.telemetryClaims });
507
+ return {
508
+ publishBatch: (batch) => void emitter.emitForBatch(batch),
509
+ receiver,
510
+ ownDeviceId: deviceId,
511
+ dispose: async () => {
512
+ await receiver.dispose().catch(() => undefined);
513
+ emitter.dispose();
514
+ await transport.dispose().catch(() => undefined);
515
+ },
516
+ };
517
+ }
518
+ function describeStartupError(error) {
519
+ return error instanceof Error ? error.message : String(error);
520
+ }
521
+ /**
522
+ * Bring up the publish + receive legs. A failed initial subscribe deliberately
523
+ * keeps the watch runner poll-only, but returns an offline handle that retries
524
+ * the complete startup sequence forever. Once it succeeds, the same handle
525
+ * forwards publishes and disposes the live legs just like an immediate start.
526
+ */
527
+ export async function startEventSync(opts) {
528
+ const log = opts.log ?? ((m) => console.error(m));
529
+ try {
530
+ return await startLiveEventSync(opts);
531
+ }
532
+ catch (error) {
533
+ log(`event-sync: startup failed, continuing poll-only: ${describeStartupError(error)}`);
503
534
  void emitCloudTelemetry(opts.telemetryClient, {
504
535
  eventName: "event_sync_live",
505
536
  source: "event-sync",
@@ -510,7 +541,92 @@ export async function startEventSync(opts) {
510
541
  publishState: "disabled",
511
542
  },
512
543
  }, { claims: opts.telemetryClaims });
513
- return null;
544
+ const clock = opts.clock ?? systemClock;
545
+ const initialDelayMs = opts.retryInitialMs ?? DEFAULT_EVENT_SYNC_RETRY_INITIAL_MS;
546
+ const maxDelayMs = opts.retryMaxMs ?? DEFAULT_EVENT_SYNC_RETRY_MAX_MS;
547
+ if (!Number.isSafeInteger(initialDelayMs) || initialDelayMs < 0) {
548
+ throw new Error("event-sync: retryInitialMs must be a non-negative safe integer");
549
+ }
550
+ if (!Number.isSafeInteger(maxDelayMs) || maxDelayMs < initialDelayMs) {
551
+ throw new Error("event-sync: retryMaxMs must be a safe integer no smaller than retryInitialMs");
552
+ }
553
+ let disposed = false;
554
+ let live = null;
555
+ let retryTimer = null;
556
+ let retryAttempt = null;
557
+ let disposePromise = null;
558
+ let failures = 0;
559
+ const jitteredDelay = () => {
560
+ const ceiling = Math.min(maxDelayMs, initialDelayMs * 2 ** failures);
561
+ const random = Math.min(1, Math.max(0, (opts.retryRandom ?? Math.random)()));
562
+ return Math.floor(ceiling * random);
563
+ };
564
+ const retry = async () => {
565
+ if (disposed || live)
566
+ return;
567
+ try {
568
+ const handles = await startLiveEventSync(opts);
569
+ if (disposed) {
570
+ await handles.dispose();
571
+ return;
572
+ }
573
+ live = handles;
574
+ }
575
+ catch (retryError) {
576
+ scheduleRetry(retryError);
577
+ }
578
+ };
579
+ const scheduleRetry = (retryError, initial = false) => {
580
+ if (disposed || live || retryTimer !== null)
581
+ return;
582
+ const delayMs = jitteredDelay();
583
+ failures += 1;
584
+ log(`event-sync: startup retry ${initial ? "scheduled" : "failed"} (attempt=${failures} reason=${describeStartupError(retryError)}); next retry in ${delayMs}ms`);
585
+ retryTimer = clock.setTimeout(() => {
586
+ retryTimer = null;
587
+ const attempt = retry();
588
+ retryAttempt = attempt;
589
+ void attempt.then(() => {
590
+ if (retryAttempt === attempt)
591
+ retryAttempt = null;
592
+ }, () => {
593
+ if (retryAttempt === attempt)
594
+ retryAttempt = null;
595
+ });
596
+ }, delayMs);
597
+ retryTimer.unref?.();
598
+ };
599
+ scheduleRetry(error, true);
600
+ const dispose = async () => {
601
+ if (disposePromise !== null)
602
+ return disposePromise;
603
+ disposed = true;
604
+ disposePromise = (async () => {
605
+ if (retryTimer !== null)
606
+ clock.clearTimeout(retryTimer);
607
+ retryTimer = null;
608
+ await retryAttempt;
609
+ const active = live;
610
+ live = null;
611
+ if (active)
612
+ await active.dispose();
613
+ })();
614
+ return disposePromise;
615
+ };
616
+ return {
617
+ publishBatch: (batch) => live?.publishBatch(batch),
618
+ receiver: {
619
+ start: async () => {
620
+ await live?.receiver.start();
621
+ },
622
+ dispose,
623
+ get connected() {
624
+ return live?.receiver.connected ?? false;
625
+ },
626
+ },
627
+ ownDeviceId: opts.deviceId,
628
+ dispose,
629
+ };
514
630
  }
515
631
  }
516
632
  //# sourceMappingURL=event-sync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-sync.js","sourceRoot":"","sources":["../../src/sync/event-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-sync.js","sourceRoot":"","sources":["../../src/sync/event-sync.ts"],"names":[],"mappings":"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"}