@indigoai-us/hq-cloud 6.18.14-alpha.1 → 6.18.14

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 (33) hide show
  1. package/dist/bin/sync-runner-receiver-unresolved-company.test.d.ts +2 -0
  2. package/dist/bin/sync-runner-receiver-unresolved-company.test.d.ts.map +1 -0
  3. package/dist/bin/sync-runner-receiver-unresolved-company.test.js +379 -0
  4. package/dist/bin/sync-runner-receiver-unresolved-company.test.js.map +1 -0
  5. package/dist/bin/sync-runner-watch-loop.d.ts +1 -0
  6. package/dist/bin/sync-runner-watch-loop.d.ts.map +1 -1
  7. package/dist/bin/sync-runner-watch-loop.js +55 -27
  8. package/dist/bin/sync-runner-watch-loop.js.map +1 -1
  9. package/dist/cli/sync.d.ts.map +1 -1
  10. package/dist/cli/sync.js +20 -1
  11. package/dist/cli/sync.js.map +1 -1
  12. package/dist/cli/sync.test.js +31 -0
  13. package/dist/cli/sync.test.js.map +1 -1
  14. package/dist/object-io.d.ts.map +1 -1
  15. package/dist/object-io.js +10 -0
  16. package/dist/object-io.js.map +1 -1
  17. package/dist/object-io.test.js +28 -1
  18. package/dist/object-io.test.js.map +1 -1
  19. package/dist/sync/event-sync.d.ts +0 -2
  20. package/dist/sync/event-sync.d.ts.map +1 -1
  21. package/dist/sync/event-sync.js +0 -11
  22. package/dist/sync/event-sync.js.map +1 -1
  23. package/dist/sync/event-sync.test.js +0 -103
  24. package/dist/sync/event-sync.test.js.map +1 -1
  25. package/dist/sync/push-receiver.d.ts +5 -0
  26. package/dist/sync/push-receiver.d.ts.map +1 -1
  27. package/dist/sync/push-receiver.js +25 -10
  28. package/dist/sync/push-receiver.js.map +1 -1
  29. package/dist/sync-core.d.ts +7 -0
  30. package/dist/sync-core.d.ts.map +1 -1
  31. package/dist/sync-core.js +12 -0
  32. package/dist/sync-core.js.map +1 -1
  33. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sync-runner-receiver-unresolved-company.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-runner-receiver-unresolved-company.test.d.ts","sourceRoot":"","sources":["../../src/bin/sync-runner-receiver-unresolved-company.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,379 @@
1
+ import * as fs from "node:fs";
2
+ import * as os from "node:os";
3
+ import * as path from "node:path";
4
+ import { afterEach, describe, expect, it } from "vitest";
5
+ import { encodePushEvent } from "../sync/push-event.js";
6
+ import { SqsPushReceiver, } from "../sync/push-receiver.js";
7
+ import { UNRESOLVED_COMPANY_EXIT } from "../lib/exit-codes.js";
8
+ import { runRunnerWithLoop } from "./sync-runner.js";
9
+ import { shouldAcknowledgeParallelUnresolvedCompany } from "./sync-runner-watch-loop.js";
10
+ const TEST_QUEUE = "https://sqs.invalid.test/queue";
11
+ const TEST_TENANT = "tenant-test";
12
+ const hasRetryVisibility = (sqs) => sqs.visibilityChanges.some((change) => change.visibilityTimeoutSeconds === 20);
13
+ class SingleBatchSqs {
14
+ messages;
15
+ deleted = [];
16
+ visibilityChanges = [];
17
+ delivered = false;
18
+ constructor(messages) {
19
+ this.messages = messages;
20
+ }
21
+ async receiveMessage(args) {
22
+ if (!this.delivered) {
23
+ this.delivered = true;
24
+ return { messages: this.messages };
25
+ }
26
+ if (args.waitTimeSeconds <= 1)
27
+ return { messages: [] };
28
+ if (args.signal.aborted)
29
+ return { messages: [] };
30
+ return new Promise((resolve) => {
31
+ args.signal.addEventListener("abort", () => resolve({ messages: [] }), {
32
+ once: true,
33
+ });
34
+ });
35
+ }
36
+ async deleteMessage(args) {
37
+ this.deleted.push(args.receiptHandle);
38
+ }
39
+ async changeMessageVisibility(args) {
40
+ this.visibilityChanges.push(args);
41
+ }
42
+ async changeMessageVisibilityBatch(args) {
43
+ this.visibilityChanges.push(...args.entries.map((entry) => ({
44
+ receiptHandle: entry.receiptHandle,
45
+ visibilityTimeoutSeconds: args.visibilityTimeoutSeconds,
46
+ })));
47
+ return { failedEntries: [] };
48
+ }
49
+ }
50
+ function message(event, receiptHandle, approximateReceiveCount) {
51
+ return {
52
+ Body: encodePushEvent(event),
53
+ ReceiptHandle: receiptHandle,
54
+ MessageId: `message-${receiptHandle}`,
55
+ ...(approximateReceiveCount === undefined ? {} : { approximateReceiveCount }),
56
+ };
57
+ }
58
+ const originalEnvironment = new Map();
59
+ const scratchDirs = [];
60
+ function setTestEnvironment(parallel) {
61
+ for (const key of [
62
+ "HQ_STATE_DIR",
63
+ "HQ_FLAGS_API_URL",
64
+ "HQ_SYNC_EVENT_SYNC",
65
+ "HQ_SYNC_PARALLEL_COORDINATOR",
66
+ ]) {
67
+ if (!originalEnvironment.has(key))
68
+ originalEnvironment.set(key, process.env[key]);
69
+ }
70
+ const scratch = fs.mkdtempSync(path.join(os.tmpdir(), "hq-c206-receiver-"));
71
+ scratchDirs.push(scratch);
72
+ process.env.HQ_STATE_DIR = path.join(scratch, "state");
73
+ fs.mkdirSync(process.env.HQ_STATE_DIR, { recursive: true });
74
+ delete process.env.HQ_FLAGS_API_URL;
75
+ process.env.HQ_SYNC_EVENT_SYNC = "0";
76
+ process.env.HQ_SYNC_PARALLEL_COORDINATOR = parallel ? "1" : "0";
77
+ return path.join(scratch, "hq");
78
+ }
79
+ async function waitFor(predicate, description) {
80
+ const deadline = Date.now() + 2_000;
81
+ while (!predicate()) {
82
+ if (Date.now() >= deadline)
83
+ throw new Error(`timed out waiting for ${description}`);
84
+ await new Promise((resolve) => setTimeout(resolve, 5));
85
+ }
86
+ }
87
+ function makeEvent(relativePath, sequenceNumber) {
88
+ return {
89
+ relativePath,
90
+ kind: "upsert",
91
+ contentHash: "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
92
+ mtime: "2026-09-28T00:00:00.000Z",
93
+ originDeviceId: "peer-device",
94
+ originTenantId: TEST_TENANT,
95
+ sequenceNumber,
96
+ eventTimestamp: "2026-09-28T00:00:00.000Z",
97
+ };
98
+ }
99
+ async function runReceiverCase(options) {
100
+ const hqRoot = setTestEnvironment(options.parallel);
101
+ fs.mkdirSync(path.join(hqRoot, "companies", "alpha"), { recursive: true });
102
+ fs.mkdirSync(path.join(hqRoot, "companies", "beta"), { recursive: true });
103
+ for (const event of options.events) {
104
+ const companySlug = /^companies\/([^/]+)\//.exec(event.relativePath)?.[1];
105
+ if (companySlug) {
106
+ fs.mkdirSync(path.join(hqRoot, "companies", companySlug), { recursive: true });
107
+ }
108
+ }
109
+ const sqs = new SingleBatchSqs(options.events.map((event, index) => message(event, `receipt-${index + 1}`, options.receiveCountForEvent?.(event, index))));
110
+ const stderr = [];
111
+ const runPassCalls = [];
112
+ let shutdownHandler;
113
+ const loop = runRunnerWithLoop(["--companies", "--watch", "--event-push", "--direction", "pull", "--hq-root", hqRoot], {
114
+ runPass: async (argv) => {
115
+ runPassCalls.push(argv);
116
+ if (!argv.includes("--scope-path"))
117
+ return 0;
118
+ const companyIndex = argv.indexOf("--company");
119
+ const slug = companyIndex >= 0 ? argv[companyIndex + 1] : undefined;
120
+ const event = options.events.find((candidate) => slug === undefined || candidate.relativePath.startsWith(`companies/${slug}/`));
121
+ if (!event)
122
+ throw new Error("targeted pull did not include a test event path");
123
+ return options.exitForEvent(event);
124
+ },
125
+ acquireWatchOwnerLease: () => ({
126
+ status: "acquired",
127
+ lease: {
128
+ statusPath: "test://watch-owner",
129
+ lost: new Promise(() => { }),
130
+ release: async () => { },
131
+ },
132
+ }),
133
+ createWatcher: () => ({
134
+ onChange: () => () => { },
135
+ start: () => { },
136
+ stop: () => { },
137
+ dispose: () => { },
138
+ }),
139
+ createReceiver: ({ syncBatchFn }) => new SqsPushReceiver({
140
+ tenantId: TEST_TENANT,
141
+ queueUrl: TEST_QUEUE,
142
+ sqs,
143
+ syncBatchFn,
144
+ sleep: async () => { },
145
+ publishMetric: async () => undefined,
146
+ logger: { debug: () => { }, info: () => { }, warn: () => { }, error: () => { } },
147
+ }),
148
+ getIdTokenClaims: () => null,
149
+ getAccessToken: async () => "test-token",
150
+ startEventSync: async () => null,
151
+ sleep: () => new Promise(() => { }),
152
+ stderr: { write: (line) => { stderr.push(line); } },
153
+ onShutdownSignal: (handler) => {
154
+ shutdownHandler = handler;
155
+ return () => { };
156
+ },
157
+ });
158
+ return {
159
+ sqs,
160
+ stderr,
161
+ runPassCalls,
162
+ shutdown: () => shutdownHandler?.(),
163
+ loop,
164
+ };
165
+ }
166
+ afterEach(() => {
167
+ for (const [key, value] of originalEnvironment) {
168
+ if (value === undefined)
169
+ delete process.env[key];
170
+ else
171
+ process.env[key] = value;
172
+ }
173
+ originalEnvironment.clear();
174
+ for (const dir of scratchDirs.splice(0))
175
+ fs.rmSync(dir, { recursive: true, force: true });
176
+ });
177
+ describe("receiver unresolved-company exit handling", () => {
178
+ it("serial lane acknowledges a redelivered exit 19 and warns once with only company and path count", async () => {
179
+ const events = [
180
+ makeEvent("companies/alpha/docs/one.md", 1),
181
+ makeEvent("companies/alpha/docs/two.md", 2),
182
+ ];
183
+ const result = await runReceiverCase({
184
+ parallel: false,
185
+ events,
186
+ exitForEvent: () => UNRESOLVED_COMPANY_EXIT,
187
+ receiveCountForEvent: () => 2,
188
+ });
189
+ try {
190
+ await waitFor(() => result.sqs.deleted.length === 2 || hasRetryVisibility(result.sqs), "serial receipt outcome");
191
+ expect(result.sqs.deleted).toEqual(["receipt-1", "receipt-2"]);
192
+ expect(result.sqs.visibilityChanges).toEqual([]);
193
+ const warnings = result.stderr.filter((line) => line.includes('"event":"receiver.unresolved-company"'));
194
+ expect(warnings).toHaveLength(1);
195
+ expect(JSON.parse(warnings[0])).toMatchObject({
196
+ level: "warn",
197
+ event: "receiver.unresolved-company",
198
+ companySlug: "alpha",
199
+ pathCount: 2,
200
+ });
201
+ expect(warnings[0]).not.toContain("one.md");
202
+ expect(warnings[0]).not.toContain("two.md");
203
+ }
204
+ finally {
205
+ result.shutdown();
206
+ await result.loop;
207
+ }
208
+ });
209
+ it("parallel coordinator acknowledges a redelivered exit 19 without a visibility retry", async () => {
210
+ const result = await runReceiverCase({
211
+ parallel: true,
212
+ events: [makeEvent("companies/beta/docs/parallel.md", 1)],
213
+ exitForEvent: () => UNRESOLVED_COMPANY_EXIT,
214
+ receiveCountForEvent: () => 2,
215
+ });
216
+ try {
217
+ await waitFor(() => result.sqs.deleted.length === 1 || hasRetryVisibility(result.sqs), "parallel receipt outcome");
218
+ expect(result.sqs.deleted).toEqual(["receipt-1"]);
219
+ expect(result.sqs.visibilityChanges).toEqual([]);
220
+ expect(result.stderr.some((line) => line.includes('"event":"receiver.unresolved-company"'))).toBe(true);
221
+ }
222
+ finally {
223
+ result.shutdown();
224
+ await result.loop;
225
+ }
226
+ });
227
+ it("warns once per company across watch-loop restarts in one runner process", async () => {
228
+ const first = await runReceiverCase({
229
+ parallel: false,
230
+ events: [makeEvent("companies/restart/docs/first.md", 1)],
231
+ exitForEvent: () => UNRESOLVED_COMPANY_EXIT,
232
+ receiveCountForEvent: () => 2,
233
+ });
234
+ try {
235
+ await waitFor(() => first.sqs.deleted.length === 1 || hasRetryVisibility(first.sqs), "first restart receipt outcome");
236
+ expect(first.sqs.deleted).toEqual(["receipt-1"]);
237
+ expect(first.stderr.filter((line) => line.includes('"event":"receiver.unresolved-company"'))).toHaveLength(1);
238
+ }
239
+ finally {
240
+ first.shutdown();
241
+ await first.loop;
242
+ }
243
+ const restarted = await runReceiverCase({
244
+ parallel: false,
245
+ events: [makeEvent("companies/restart/docs/second.md", 2)],
246
+ exitForEvent: () => UNRESOLVED_COMPANY_EXIT,
247
+ receiveCountForEvent: () => 2,
248
+ });
249
+ try {
250
+ await waitFor(() => restarted.sqs.deleted.length === 1 || hasRetryVisibility(restarted.sqs), "restarted receipt outcome");
251
+ expect(restarted.sqs.deleted).toEqual(["receipt-1"]);
252
+ expect(restarted.sqs.visibilityChanges).toEqual([]);
253
+ expect(restarted.stderr.filter((line) => line.includes('"event":"receiver.unresolved-company"'))).toHaveLength(0);
254
+ }
255
+ finally {
256
+ restarted.shutdown();
257
+ await restarted.loop;
258
+ }
259
+ });
260
+ it("retries only the failing route in a mixed batch", async () => {
261
+ const result = await runReceiverCase({
262
+ parallel: false,
263
+ events: [
264
+ makeEvent("companies/alpha/docs/unresolved.md", 1),
265
+ makeEvent("companies/beta/docs/failing.md", 2),
266
+ ],
267
+ exitForEvent: (event) => event.relativePath.includes("alpha/")
268
+ ? UNRESOLVED_COMPANY_EXIT
269
+ : 1,
270
+ receiveCountForEvent: (event) => event.relativePath.includes("alpha/") ? 2 : 1,
271
+ });
272
+ try {
273
+ await waitFor(() => result.sqs.deleted.includes("receipt-2") ||
274
+ result.sqs.visibilityChanges.some((change) => change.receiptHandle === "receipt-2" && change.visibilityTimeoutSeconds === 20), "mixed route failing receipt outcome");
275
+ expect(result.sqs.deleted).toEqual(["receipt-1"]);
276
+ expect(result.sqs.visibilityChanges).toEqual([
277
+ { receiptHandle: "receipt-2", visibilityTimeoutSeconds: 20 },
278
+ ]);
279
+ }
280
+ finally {
281
+ result.shutdown();
282
+ await result.loop;
283
+ }
284
+ });
285
+ it.each([
286
+ { parallel: false, lane: "serial" },
287
+ { parallel: true, lane: "parallel coordinator" },
288
+ ])("$lane retries an exit 19 on first delivery without deleting or warning", async ({ parallel }) => {
289
+ const result = await runReceiverCase({
290
+ parallel,
291
+ events: [makeEvent(`companies/first-${parallel ? "parallel" : "serial"}/docs/first.md`, 1)],
292
+ exitForEvent: () => UNRESOLVED_COMPANY_EXIT,
293
+ receiveCountForEvent: () => 1,
294
+ });
295
+ try {
296
+ await waitFor(() => hasRetryVisibility(result.sqs) || result.sqs.deleted.length > 0, "first-delivery receipt outcome");
297
+ expect(result.sqs.deleted).toEqual([]);
298
+ expect(result.sqs.visibilityChanges).toEqual([
299
+ { receiptHandle: "receipt-1", visibilityTimeoutSeconds: 20 },
300
+ ]);
301
+ expect(result.stderr.filter((line) => line.includes('"event":"receiver.unresolved-company"'))).toHaveLength(0);
302
+ }
303
+ finally {
304
+ result.shutdown();
305
+ await result.loop;
306
+ }
307
+ });
308
+ it.each([
309
+ { parallel: false, lane: "serial" },
310
+ { parallel: true, lane: "parallel coordinator" },
311
+ ])("$lane leaves an exit 19 unacknowledged when receive count is missing", async ({ parallel }) => {
312
+ const result = await runReceiverCase({
313
+ parallel,
314
+ events: [makeEvent(`companies/missing-${parallel ? "parallel" : "serial"}/docs/missing.md`, 1)],
315
+ exitForEvent: () => UNRESOLVED_COMPANY_EXIT,
316
+ });
317
+ try {
318
+ await waitFor(() => hasRetryVisibility(result.sqs) || result.sqs.deleted.length > 0, "missing-count receipt outcome");
319
+ expect(result.sqs.deleted).toEqual([]);
320
+ expect(result.sqs.visibilityChanges).toEqual([
321
+ { receiptHandle: "receipt-1", visibilityTimeoutSeconds: 20 },
322
+ ]);
323
+ expect(result.stderr.filter((line) => line.includes('"event":"receiver.unresolved-company"'))).toHaveLength(0);
324
+ }
325
+ finally {
326
+ result.shutdown();
327
+ await result.loop;
328
+ }
329
+ });
330
+ it("decides unresolved receipts independently when a parallel batch has mixed receive counts", async () => {
331
+ const result = await runReceiverCase({
332
+ parallel: true,
333
+ events: [
334
+ makeEvent("companies/alpha/docs/retried.md", 1),
335
+ makeEvent("companies/beta/docs/first.md", 2),
336
+ ],
337
+ exitForEvent: () => UNRESOLVED_COMPANY_EXIT,
338
+ receiveCountForEvent: (event) => event.relativePath.includes("alpha/") ? 2 : 1,
339
+ });
340
+ try {
341
+ await waitFor(() => result.sqs.deleted.length > 0 || hasRetryVisibility(result.sqs), "mixed receive-count receipt outcome");
342
+ expect(result.sqs.deleted).toEqual(["receipt-1"]);
343
+ expect(result.sqs.visibilityChanges).toEqual([
344
+ { receiptHandle: "receipt-2", visibilityTimeoutSeconds: 20 },
345
+ ]);
346
+ }
347
+ finally {
348
+ result.shutdown();
349
+ await result.loop;
350
+ }
351
+ });
352
+ it("parallel coordinator retries an exit 1 route in a mixed batch while acknowledging exit 19", async () => {
353
+ expect(shouldAcknowledgeParallelUnresolvedCompany(true, 1)).toBe(false);
354
+ expect(shouldAcknowledgeParallelUnresolvedCompany(true, UNRESOLVED_COMPANY_EXIT)).toBe(true);
355
+ const result = await runReceiverCase({
356
+ parallel: true,
357
+ events: [
358
+ makeEvent("companies/alpha/docs/unresolved.md", 1),
359
+ makeEvent("companies/beta/docs/failing.md", 2),
360
+ ],
361
+ exitForEvent: (event) => event.relativePath.includes("alpha/")
362
+ ? UNRESOLVED_COMPANY_EXIT
363
+ : 1,
364
+ receiveCountForEvent: () => 2,
365
+ });
366
+ try {
367
+ await waitFor(() => result.sqs.deleted.length > 0 || hasRetryVisibility(result.sqs), "parallel mixed-route receipt outcome");
368
+ expect(result.sqs.deleted).toEqual(["receipt-1"]);
369
+ expect(result.sqs.visibilityChanges).toEqual([
370
+ { receiptHandle: "receipt-2", visibilityTimeoutSeconds: 20 },
371
+ ]);
372
+ }
373
+ finally {
374
+ result.shutdown();
375
+ await result.loop;
376
+ }
377
+ });
378
+ });
379
+ //# sourceMappingURL=sync-runner-receiver-unresolved-company.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-runner-receiver-unresolved-company.test.js","sourceRoot":"","sources":["../../src/bin/sync-runner-receiver-unresolved-company.test.ts"],"names":[],"mappings":"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"}
@@ -387,6 +387,7 @@ export declare function publishedContentHashFromJournalEntry(entry: Readonly<Jou
387
387
  * Pure so the threshold is unit-testable without a watcher or a journal.
388
388
  */
389
389
  export declare function shouldQuarantineWatcherDeleteIntents(expandedEntries: number, journalEntries: number): boolean;
390
+ export declare function shouldAcknowledgeParallelUnresolvedCompany(accepted: boolean, exitCode: number): boolean;
390
391
  export declare function runOneShotWithOperationLock(argv: string[], parsed: ParsedLoopArgs, deps: RunnerLoopDeps, runtime: WatchLoopRuntime): Promise<number>;
391
392
  export declare function runWatchLoop(argv: string[], parsed: ParsedLoopArgs, deps: RunnerLoopDeps, runtime: WatchLoopRuntime): Promise<number>;
392
393
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"sync-runner-watch-loop.d.ts","sourceRoot":"","sources":["../../src/bin/sync-runner-watch-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-runner-watch-loop.d.ts","sourceRoot":"","sources":["../../src/bin/sync-runner-watch-loop.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ import { InlineSyncWorkerAdapter, } from "../sync/sync-work.js";
35
35
  import { buildRoutePullArgv, buildScopedPushArgv, buildScopedDrainPullArgv, buildTargetedPullArgv, isWatchRouteSelected, routeChangeToTarget, routeKey, scopePathForRoute, } from "./sync-runner-watch-routes.js";
36
36
  import { resolveSkipCompanies } from "./sync-runner-planning.js";
37
37
  const FULL_RECONCILE_EVERY_TICKS = 10;
38
+ const warnedUnresolvedReceiverCompanies = new Set();
38
39
  /** Maximum time shutdown waits for event-sync startup before abandoning it. */
39
40
  export const EVENT_SYNC_STARTUP_SHUTDOWN_WAIT_MS = 5_000;
40
41
  /** A deferred full chore must get the next admission after this long. */
@@ -1318,6 +1319,17 @@ function isBulkIntentOverride() {
1318
1319
  function passExitCode(outcome) {
1319
1320
  return typeof outcome === "number" ? outcome : outcome.exitCode;
1320
1321
  }
1322
+ export function shouldAcknowledgeParallelUnresolvedCompany(accepted, exitCode) {
1323
+ return accepted && exitCode === UNRESOLVED_COMPANY_EXIT;
1324
+ }
1325
+ function unresolvedReceiverMessagesWereRedelivered(events, receiveCountsByPath) {
1326
+ return events.every((event) => {
1327
+ const receiveCounts = receiveCountsByPath?.get(event.relativePath);
1328
+ return receiveCounts !== undefined &&
1329
+ receiveCounts.length > 0 &&
1330
+ receiveCounts.every((count) => count !== undefined && Number.isFinite(count) && count >= 2);
1331
+ });
1332
+ }
1321
1333
  function targetedReceiverDispatchError(outcome, accepted, authRequiredExitCode) {
1322
1334
  const exitCode = passExitCode(outcome);
1323
1335
  const result = typeof outcome === "number" ? undefined : outcome.result;
@@ -3295,6 +3307,18 @@ export async function runWatchLoop(argv, parsed, deps, runtime) {
3295
3307
  };
3296
3308
  let receiver = null;
3297
3309
  let receiverHasQueuedWork = false;
3310
+ const warnUnresolvedReceiverCompany = (route, pathCount) => {
3311
+ if (route.kind !== "company" ||
3312
+ warnedUnresolvedReceiverCompanies.has(route.slug))
3313
+ return;
3314
+ warnedUnresolvedReceiverCompanies.add(route.slug);
3315
+ (deps.stderr ?? process.stderr).write(`${JSON.stringify({
3316
+ level: "warn",
3317
+ event: "receiver.unresolved-company",
3318
+ companySlug: route.slug,
3319
+ pathCount,
3320
+ })}\n`);
3321
+ };
3298
3322
  const onReceiveActivity = (hasMessages) => {
3299
3323
  receiverHasQueuedWork = hasMessages;
3300
3324
  if (hasMessages)
@@ -3542,7 +3566,7 @@ export async function runWatchLoop(argv, parsed, deps, runtime) {
3542
3566
  // a known-small event can be slow solely because an earlier event exhausted
3543
3567
  // the delivery-wide fast budget.
3544
3568
  const receiverLaneByBatch = new WeakMap();
3545
- const drainParallelReceiverLane = async (lane, laneEvents) => {
3569
+ const drainParallelReceiverLane = async (lane, laneEvents, receiveCountsByPath) => {
3546
3570
  const eventsByRoute = new Map();
3547
3571
  for (const event of laneEvents) {
3548
3572
  const route = routeChangeToTarget(event.relativePath);
@@ -3556,20 +3580,31 @@ export async function runWatchLoop(argv, parsed, deps, runtime) {
3556
3580
  // Submit every route in this lane before awaiting any result. In
3557
3581
  // particular, a later route's fast receipt must never wait for an
3558
3582
  // earlier route's slow pull to finish.
3559
- const completed = await Promise.all([...eventsByRoute.values()].map(({ route, events }) => {
3583
+ const routeGroups = [...eventsByRoute.values()];
3584
+ const completed = await Promise.all(routeGroups.map(({ route, events }) => {
3560
3585
  return runRealtimePass("receiver", "pull", events.map((event) => event.relativePath), lane, (slice, telemetry, coordinatorFenced) => {
3561
3586
  const slicePaths = slice.paths.map((path) => path.canonicalPath);
3562
3587
  const exactFileUpserts = exactUpsertPathsForCoordinatorSlice(events, slicePaths);
3563
3588
  return withScopeContentHashesFile(route, events, slicePaths, (contentHashesFile) => runGuarded(buildTargetedPullArgv(route, passArgv, slicePaths, exactFileUpserts, contentHashesFile), undefined, lane, "realtime", lane === "fast", slice.signal, false, telemetry, coordinatorFenced));
3564
3589
  });
3565
3590
  }));
3566
- for (const execution of completed) {
3567
- if (!execution.accepted || passExitCode(execution.result) !== 0) {
3591
+ for (const [index, execution] of completed.entries()) {
3592
+ const { route, events } = routeGroups[index];
3593
+ const pathCount = events.length;
3594
+ const exitCode = passExitCode(execution.result);
3595
+ if (shouldAcknowledgeParallelUnresolvedCompany(execution.accepted, exitCode)) {
3596
+ if (!unresolvedReceiverMessagesWereRedelivered(events, receiveCountsByPath)) {
3597
+ throw targetedReceiverDispatchError(execution.result, execution.accepted, runtime.authRequiredPassExit);
3598
+ }
3599
+ warnUnresolvedReceiverCompany(route, pathCount);
3600
+ continue;
3601
+ }
3602
+ if (!execution.accepted || exitCode !== 0) {
3568
3603
  throw targetedReceiverDispatchError(execution.result, execution.accepted, runtime.authRequiredPassExit);
3569
3604
  }
3570
3605
  }
3571
3606
  };
3572
- const receiverSyncBatchFn = async ({ events }) => {
3607
+ const receiverSyncBatchFn = async ({ events, approximateReceiveCountsByPath, }) => {
3573
3608
  if (stopped)
3574
3609
  return;
3575
3610
  // The injectable receiver seam and the production SQS receiver both
@@ -3587,19 +3622,19 @@ export async function runWatchLoop(argv, parsed, deps, runtime) {
3587
3622
  const lane = receiverLaneByBatch.get(events);
3588
3623
  if (lane) {
3589
3624
  receiverLaneByBatch.delete(events);
3590
- await drainParallelReceiverLane(lane, events);
3625
+ await drainParallelReceiverLane(lane, events, approximateReceiveCountsByPath);
3591
3626
  return;
3592
3627
  }
3593
3628
  // Direct embedders may invoke the engine without first going through
3594
3629
  // SqsPushReceiver. Preserve that seam while applying the same
3595
3630
  // delivery-wide partition the receiver would expose.
3596
3631
  const lanes = partitionByKnownSizes(events, receiverEventSize);
3597
- await drainParallelReceiverLane("fast", lanes.fast);
3598
- await drainParallelReceiverLane("slow", lanes.slow);
3632
+ await drainParallelReceiverLane("fast", lanes.fast, approximateReceiveCountsByPath);
3633
+ await drainParallelReceiverLane("slow", lanes.slow, approximateReceiveCountsByPath);
3599
3634
  return;
3600
3635
  }
3601
3636
  const lanes = partitionByKnownSizes(events, receiverEventSize);
3602
- const drainLane = async (lane, laneEvents) => {
3637
+ const drainLane = async (lane, laneEvents, receiveCountsByPath) => {
3603
3638
  const eventsByRoute = new Map();
3604
3639
  for (const event of laneEvents) {
3605
3640
  const route = routeChangeToTarget(event.relativePath);
@@ -3619,7 +3654,15 @@ export async function runWatchLoop(argv, parsed, deps, runtime) {
3619
3654
  for (const { route, events: routeEvents, upsertPaths } of eventsByRoute.values()) {
3620
3655
  const paths = routeEvents.map((event) => event.relativePath);
3621
3656
  const result = await withScopeContentHashesFile(route, routeEvents, paths, (contentHashesFile) => runGuarded(buildTargetedPullArgv(route, passArgv, paths, upsertPaths, contentHashesFile), undefined, lane, "realtime"));
3622
- if (passExitCode(result) !== 0) {
3657
+ const exitCode = passExitCode(result);
3658
+ if (exitCode === UNRESOLVED_COMPANY_EXIT) {
3659
+ if (!unresolvedReceiverMessagesWereRedelivered(routeEvents, receiveCountsByPath)) {
3660
+ throw targetedReceiverDispatchError(result, true, runtime.authRequiredPassExit);
3661
+ }
3662
+ warnUnresolvedReceiverCompany(route, routeEvents.length);
3663
+ continue;
3664
+ }
3665
+ if (exitCode !== 0) {
3623
3666
  throw targetedReceiverDispatchError(result, true, runtime.authRequiredPassExit);
3624
3667
  }
3625
3668
  }
@@ -3628,8 +3671,8 @@ export async function runWatchLoop(argv, parsed, deps, runtime) {
3628
3671
  // established slow pass continue while the small scoped pull uses its
3629
3672
  // ref-counted lock carve-out; the residue remains serialized and cannot
3630
3673
  // starve the slow lane.
3631
- await drainLane("fast", lanes.fast);
3632
- await drainLane("slow", lanes.slow);
3674
+ await drainLane("fast", lanes.fast, approximateReceiveCountsByPath);
3675
+ await drainLane("slow", lanes.slow, approximateReceiveCountsByPath);
3633
3676
  };
3634
3677
  receiverSyncBatchFn.partition = (events) => {
3635
3678
  const lanes = partitionByKnownSizes(events, receiverEventSize);
@@ -3711,20 +3754,6 @@ export async function runWatchLoop(argv, parsed, deps, runtime) {
3711
3754
  if (resolveEventSync(process.env.HQ_SYNC_EVENT_SYNC)) {
3712
3755
  const startES = deps.startEventSync ?? defaultStartEventSync;
3713
3756
  eventSyncStartup = (async () => {
3714
- const reportRealtimeStatus = (mode) => {
3715
- const interval = explicitPollMs;
3716
- const status = {
3717
- type: "realtime-mode",
3718
- mode,
3719
- ...(mode === "poll-only"
3720
- ? {
3721
- minPollMs: interval ?? ADAPTIVE_POLL_FLOOR_MS,
3722
- maxPollMs: interval ?? ADAPTIVE_POLL_CEIL_MS,
3723
- }
3724
- : {}),
3725
- };
3726
- stdout.write(`${JSON.stringify(status)}\n`);
3727
- };
3728
3757
  const eventSyncClient = new VaultClient({
3729
3758
  apiUrl: runtime.apiUrl,
3730
3759
  authToken: getAccessToken,
@@ -3753,7 +3782,6 @@ export async function runWatchLoop(argv, parsed, deps, runtime) {
3753
3782
  publishedContentHashStateDir: getStateDir(),
3754
3783
  publishedContentHashLookup,
3755
3784
  onReceiveActivity,
3756
- onRealtimeStatus: reportRealtimeStatus,
3757
3785
  });
3758
3786
  if (!handles)
3759
3787
  return;