@indigoai-us/hq-cloud 6.18.25 → 6.18.27
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/outpost-session-host.d.ts +1 -0
- package/dist/bin/outpost-session-host.d.ts.map +1 -1
- package/dist/bin/outpost-session-host.js +3 -2
- package/dist/bin/outpost-session-host.js.map +1 -1
- package/dist/bin/outpost-session-host.test.js +16 -1
- package/dist/bin/outpost-session-host.test.js.map +1 -1
- package/dist/bin/sync-runner-delete-snapshot-mixed.bench.test.js +129 -5
- package/dist/bin/sync-runner-delete-snapshot-mixed.bench.test.js.map +1 -1
- package/dist/bin/sync-runner.test.js +98 -23
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/cli/core-source-stamp.d.ts +0 -5
- package/dist/cli/core-source-stamp.d.ts.map +1 -1
- package/dist/cli/core-source-stamp.js +1 -1
- package/dist/cli/core-source-stamp.js.map +1 -1
- package/dist/cli/rescue-breaker.test.js +75 -1
- package/dist/cli/rescue-breaker.test.js.map +1 -1
- package/dist/cli/rescue-core.d.ts +1 -0
- package/dist/cli/rescue-core.d.ts.map +1 -1
- package/dist/cli/rescue-core.js +57 -9
- package/dist/cli/rescue-core.js.map +1 -1
- package/dist/hq-root-recovery.d.ts +0 -1
- package/dist/hq-root-recovery.d.ts.map +1 -1
- package/dist/hq-root-recovery.js +1 -1
- package/dist/hq-root-recovery.js.map +1 -1
- package/dist/journal-snapshot-memory.test.js +3 -3
- package/dist/outposts/client.d.ts.map +1 -1
- package/dist/outposts/client.js +4 -1
- package/dist/outposts/client.js.map +1 -1
- package/dist/outposts/client.test.js +53 -0
- package/dist/outposts/client.test.js.map +1 -1
- package/dist/outposts/transport.d.ts.map +1 -1
- package/dist/outposts/transport.js +18 -1
- package/dist/outposts/transport.js.map +1 -1
- package/dist/outposts/transport.test.js +89 -0
- package/dist/outposts/transport.test.js.map +1 -1
- package/dist/session-log-retention.d.ts +0 -10
- package/dist/session-log-retention.d.ts.map +1 -1
- package/dist/session-log-retention.js +1 -1
- package/dist/session-log-retention.js.map +1 -1
- package/dist/sync/push-walk-matchers.bench.test.js +92 -42
- package/dist/sync/push-walk-matchers.bench.test.js.map +1 -1
- package/dist/telemetry.d.ts +0 -14
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +2 -2
- package/dist/telemetry.js.map +1 -1
- package/package.json +2 -2
|
@@ -3,4 +3,5 @@ import { Command } from "commander";
|
|
|
3
3
|
import { type SessionHostCommandDeps } from "../outposts/session-host-command.js";
|
|
4
4
|
/** The session-host command on its own, parsed from the bin's arguments. */
|
|
5
5
|
export declare function createOutpostSessionHostProgram(deps: SessionHostCommandDeps): Command;
|
|
6
|
+
export declare function packageVersion(readPackageJson?: (url: URL) => string): string;
|
|
6
7
|
//# sourceMappingURL=outpost-session-host.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outpost-session-host.d.ts","sourceRoot":"","sources":["../../src/bin/outpost-session-host.ts"],"names":[],"mappings":";AASA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAA8B,KAAK,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAG9G,4EAA4E;AAC5E,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAMrF"}
|
|
1
|
+
{"version":3,"file":"outpost-session-host.d.ts","sourceRoot":"","sources":["../../src/bin/outpost-session-host.ts"],"names":[],"mappings":";AASA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAA8B,KAAK,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAG9G,4EAA4E;AAC5E,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAMrF;AAED,wBAAgB,cAAc,CAC5B,eAAe,GAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAA2C,GACzE,MAAM,CAYR"}
|
|
@@ -19,12 +19,13 @@ export function createOutpostSessionHostProgram(deps) {
|
|
|
19
19
|
throw new Error("session-host command was not registered");
|
|
20
20
|
return command.name("hq-outpost-session-host");
|
|
21
21
|
}
|
|
22
|
-
function packageVersion() {
|
|
22
|
+
export function packageVersion(readPackageJson = (url) => readFileSync(url, "utf8")) {
|
|
23
23
|
try {
|
|
24
|
-
const pkg = JSON.parse(
|
|
24
|
+
const pkg = JSON.parse(readPackageJson(new URL("../../package.json", import.meta.url)));
|
|
25
25
|
return pkg.version ?? "unknown";
|
|
26
26
|
}
|
|
27
27
|
catch {
|
|
28
|
+
console.warn("hq-outpost-session-host: package version unavailable; using unknown.");
|
|
28
29
|
return "unknown";
|
|
29
30
|
}
|
|
30
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outpost-session-host.js","sourceRoot":"","sources":["../../src/bin/outpost-session-host.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAA+B,MAAM,qCAAqC,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,4EAA4E;AAC5E,MAAM,UAAU,+BAA+B,CAAC,IAA4B;IAC1E,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtD,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,cAAc,CAAC,CAAC;IACzE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACzE,OAAO,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACjD,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"outpost-session-host.js","sourceRoot":"","sources":["../../src/bin/outpost-session-host.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAA+B,MAAM,qCAAqC,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,4EAA4E;AAC5E,MAAM,UAAU,+BAA+B,CAAC,IAA4B;IAC1E,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtD,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,cAAc,CAAC,CAAC;IACzE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACzE,OAAO,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,kBAAwC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC;IAE1E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,eAAe,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CACxC,CAAC;QAC1B,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CACV,sEAAsE,CACvE,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACzD,+BAA+B,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC;SAC3D,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACnD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { readFileSync } from "node:fs";
|
|
7
7
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
8
|
-
import { createOutpostSessionHostProgram } from "./outpost-session-host.js";
|
|
8
|
+
import { createOutpostSessionHostProgram, packageVersion, } from "./outpost-session-host.js";
|
|
9
9
|
describe("hq-outpost-session-host bin", () => {
|
|
10
10
|
afterEach(() => {
|
|
11
11
|
process.exitCode = undefined;
|
|
@@ -15,6 +15,21 @@ describe("hq-outpost-session-host bin", () => {
|
|
|
15
15
|
const pkg = JSON.parse(readFileSync(new URL("../../package.json", import.meta.url), "utf8"));
|
|
16
16
|
expect(pkg.bin["hq-outpost-session-host"]).toBe("dist/bin/outpost-session-host.js");
|
|
17
17
|
});
|
|
18
|
+
it.each([
|
|
19
|
+
{
|
|
20
|
+
label: "read failure",
|
|
21
|
+
readPackageJson: () => {
|
|
22
|
+
throw new Error("private path or error detail");
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
{ label: "parse failure", readPackageJson: () => "not-json" },
|
|
26
|
+
])("logs a generic diagnostic and falls back to unknown on $label", ({ readPackageJson }) => {
|
|
27
|
+
const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
|
|
28
|
+
expect(packageVersion(readPackageJson)).toBe("unknown");
|
|
29
|
+
expect(warn).toHaveBeenCalledTimes(1);
|
|
30
|
+
expect(warn).toHaveBeenCalledWith("hq-outpost-session-host: package version unavailable; using unknown.");
|
|
31
|
+
expect(warn.mock.calls.flat().join(" ")).not.toContain("private path");
|
|
32
|
+
});
|
|
18
33
|
it("runs the session host with the same flags, refusing to start when the box is not signed in", async () => {
|
|
19
34
|
const errors = [];
|
|
20
35
|
vi.spyOn(console, "error").mockImplementation((line) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outpost-session-host.test.js","sourceRoot":"","sources":["../../src/bin/outpost-session-host.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"outpost-session-host.test.js","sourceRoot":"","sources":["../../src/bin/outpost-session-host.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
2
|
import * as os from "node:os";
|
|
3
3
|
import * as path from "node:path";
|
|
4
|
-
import { performance } from "node:perf_hooks";
|
|
4
|
+
import { monitorEventLoopDelay, performance, PerformanceObserver } from "node:perf_hooks";
|
|
5
5
|
import { describe, expect, it, vi } from "vitest";
|
|
6
6
|
import { AreaLedgerMigration, openJournalStateStoreForMigration, PERSONAL_VAULT_JOURNAL_SLUG, readJournal, writeJournal, } from "../journal.js";
|
|
7
7
|
import { AreaLedger, setAreaLedgerTestHooksForTest } from "../sync/area-ledger.js";
|
|
@@ -173,7 +173,35 @@ describe("sync-runner mixed delete capture benchmark", () => {
|
|
|
173
173
|
let capturesDone = Promise.resolve();
|
|
174
174
|
let activeMetrics;
|
|
175
175
|
let stopEventLoopProbe;
|
|
176
|
+
const gcActivity = [];
|
|
177
|
+
const gcObserver = new PerformanceObserver((list) => {
|
|
178
|
+
for (const entry of list.getEntries()) {
|
|
179
|
+
const detail = entry;
|
|
180
|
+
gcActivity.push({
|
|
181
|
+
kind: detail.detail?.kind ?? null,
|
|
182
|
+
duration: entry.duration,
|
|
183
|
+
startTime: entry.startTime,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
gcObserver.observe({ entryTypes: ["gc"] });
|
|
176
188
|
const originalReadRows = AreaLedger.prototype.readRows;
|
|
189
|
+
const originalReadCached = AreaLedger.prototype.readCached;
|
|
190
|
+
const readCachedSpy = vi.spyOn(AreaLedger.prototype, "readCached").mockImplementation(function () {
|
|
191
|
+
const metrics = activeMetrics;
|
|
192
|
+
const cpuStart = metrics ? process.cpuUsage() : undefined;
|
|
193
|
+
const startedAt = metrics ? performance.now() : 0;
|
|
194
|
+
try {
|
|
195
|
+
return originalReadCached.call(this);
|
|
196
|
+
}
|
|
197
|
+
finally {
|
|
198
|
+
if (metrics && cpuStart) {
|
|
199
|
+
const cpu = process.cpuUsage(cpuStart);
|
|
200
|
+
metrics.readCachedCpuMs += (cpu.user + cpu.system) / 1_000;
|
|
201
|
+
metrics.readCachedWallMs += performance.now() - startedAt;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
});
|
|
177
205
|
const readRowsSpy = vi.spyOn(AreaLedger.prototype, "readRows").mockImplementation(function (keys) {
|
|
178
206
|
const startedAt = performance.now();
|
|
179
207
|
const cpuStart = process.cpuUsage();
|
|
@@ -185,9 +213,15 @@ describe("sync-runner mixed delete capture benchmark", () => {
|
|
|
185
213
|
finally {
|
|
186
214
|
if (metrics && tracksBacklog) {
|
|
187
215
|
const cpu = process.cpuUsage(cpuStart);
|
|
216
|
+
const wallMs = performance.now() - startedAt;
|
|
188
217
|
metrics.readRowsCalls += 1;
|
|
189
218
|
metrics.readRowsCpuMs += (cpu.user + cpu.system) / 1_000;
|
|
190
|
-
metrics.maxReadRowsEventLoopDelayMs = Math.max(metrics.maxReadRowsEventLoopDelayMs,
|
|
219
|
+
metrics.maxReadRowsEventLoopDelayMs = Math.max(metrics.maxReadRowsEventLoopDelayMs, wallMs);
|
|
220
|
+
metrics.readRowsPhases.push({
|
|
221
|
+
startTime: startedAt,
|
|
222
|
+
wallMs,
|
|
223
|
+
cpuMs: (cpu.user + cpu.system) / 1_000,
|
|
224
|
+
});
|
|
191
225
|
}
|
|
192
226
|
}
|
|
193
227
|
});
|
|
@@ -282,12 +316,22 @@ describe("sync-runner mixed delete capture benchmark", () => {
|
|
|
282
316
|
const appendPrototype = StateStore.prototype;
|
|
283
317
|
const originalAppendUnlocked = appendPrototype.appendUnlocked;
|
|
284
318
|
const appendSpy = vi.spyOn(appendPrototype, "appendUnlocked").mockImplementation(function (type, payload, flags, refresh) {
|
|
319
|
+
const metrics = activeMetrics;
|
|
320
|
+
const tracked = metrics !== undefined && trackedStores.some((store) => store.stateDir === this.stateDir);
|
|
321
|
+
const startedAt = performance.now();
|
|
322
|
+
const cpuStart = tracked ? process.cpuUsage() : undefined;
|
|
285
323
|
const result = originalAppendUnlocked.call(this, type, payload, flags, refresh);
|
|
286
|
-
if (!
|
|
324
|
+
if (!metrics || !tracked || !cpuStart) {
|
|
287
325
|
return result;
|
|
288
326
|
}
|
|
289
|
-
|
|
290
|
-
|
|
327
|
+
const cpu = process.cpuUsage(cpuStart);
|
|
328
|
+
metrics.legacyAppendFrames += 1;
|
|
329
|
+
metrics.journalAppendPhases.push({
|
|
330
|
+
startTime: startedAt,
|
|
331
|
+
wallMs: performance.now() - startedAt,
|
|
332
|
+
cpuMs: (cpu.user + cpu.system) / 1_000,
|
|
333
|
+
});
|
|
334
|
+
const generations = metrics.generations.get(this.stateDir);
|
|
291
335
|
const generation = this.getGenerationIdentity().generation;
|
|
292
336
|
generations?.add(generation);
|
|
293
337
|
return result;
|
|
@@ -306,6 +350,14 @@ describe("sync-runner mixed delete capture benchmark", () => {
|
|
|
306
350
|
readRowsCalls: 0,
|
|
307
351
|
readRowsCpuMs: 0,
|
|
308
352
|
maxReadRowsEventLoopDelayMs: 0,
|
|
353
|
+
eventInjectionCpuMs: 0,
|
|
354
|
+
eventInjectionWallMs: 0,
|
|
355
|
+
captureWindowCpuMs: 0,
|
|
356
|
+
captureWindowWallMs: 0,
|
|
357
|
+
readCachedCpuMs: 0,
|
|
358
|
+
readCachedWallMs: 0,
|
|
359
|
+
readRowsPhases: [],
|
|
360
|
+
journalAppendPhases: [],
|
|
309
361
|
generations: new Map(trackedStores.map((store) => [
|
|
310
362
|
store.stateDir,
|
|
311
363
|
new Set([store.getGenerationIdentity().generation]),
|
|
@@ -344,14 +396,24 @@ describe("sync-runner mixed delete capture benchmark", () => {
|
|
|
344
396
|
if (eventLoopProbeTimer)
|
|
345
397
|
clearTimeout(eventLoopProbeTimer);
|
|
346
398
|
};
|
|
399
|
+
const eventInjectionStartedAt = performance.now();
|
|
400
|
+
const eventInjectionCpuStart = process.cpuUsage();
|
|
347
401
|
for (const item of events) {
|
|
348
402
|
watcher.handleEvent(path.join(hqRoot, item.relativePath), item.kind);
|
|
349
403
|
}
|
|
404
|
+
const eventInjectionCpu = process.cpuUsage(eventInjectionCpuStart);
|
|
405
|
+
metrics.eventInjectionCpuMs = (eventInjectionCpu.user + eventInjectionCpu.system) / 1_000;
|
|
406
|
+
metrics.eventInjectionWallMs = performance.now() - eventInjectionStartedAt;
|
|
350
407
|
// Measure the asynchronous capture path after the synthetic event turn
|
|
351
408
|
// has enqueued its watcher events. The tight injection loop is not part
|
|
352
409
|
// of the production watcher cadence and can itself block this test turn.
|
|
353
410
|
lastEventLoopTick = performance.now();
|
|
411
|
+
const captureWindowStartedAt = lastEventLoopTick;
|
|
412
|
+
const captureWindowCpuStart = process.cpuUsage();
|
|
354
413
|
eventLoopProbeTimer = setTimeout(probeEventLoop, 1);
|
|
414
|
+
const commitWindowStart = performance.now();
|
|
415
|
+
const loopDelay = monitorEventLoopDelay({ resolution: 10 });
|
|
416
|
+
loopDelay.enable();
|
|
355
417
|
let captureTimeout;
|
|
356
418
|
try {
|
|
357
419
|
await Promise.race([
|
|
@@ -362,10 +424,28 @@ describe("sync-runner mixed delete capture benchmark", () => {
|
|
|
362
424
|
}),
|
|
363
425
|
]);
|
|
364
426
|
}
|
|
427
|
+
catch (error) {
|
|
428
|
+
loopDelay.disable();
|
|
429
|
+
throw error;
|
|
430
|
+
}
|
|
365
431
|
finally {
|
|
366
432
|
if (captureTimeout)
|
|
367
433
|
clearTimeout(captureTimeout);
|
|
368
434
|
}
|
|
435
|
+
await new Promise((resolve) => setTimeout(resolve, 20));
|
|
436
|
+
const commitWindowEnd = performance.now();
|
|
437
|
+
const captureWindowCpu = process.cpuUsage(captureWindowCpuStart);
|
|
438
|
+
metrics.captureWindowCpuMs = (captureWindowCpu.user + captureWindowCpu.system) / 1_000;
|
|
439
|
+
metrics.captureWindowWallMs = commitWindowEnd - captureWindowStartedAt;
|
|
440
|
+
for (const entry of gcObserver.takeRecords()) {
|
|
441
|
+
const detail = entry;
|
|
442
|
+
gcActivity.push({
|
|
443
|
+
kind: detail.detail?.kind ?? null,
|
|
444
|
+
duration: entry.duration,
|
|
445
|
+
startTime: entry.startTime,
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
loopDelay.disable();
|
|
369
449
|
const elapsedMs = performance.now() - startedAt;
|
|
370
450
|
const cpu = process.cpuUsage(cpuStart);
|
|
371
451
|
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
@@ -385,12 +465,39 @@ describe("sync-runner mixed delete capture benchmark", () => {
|
|
|
385
465
|
readRowsCalls: metrics.readRowsCalls,
|
|
386
466
|
readRowsCpuMs: Number(metrics.readRowsCpuMs.toFixed(1)),
|
|
387
467
|
maxReadRowsEventLoopDelayMs: Number(metrics.maxReadRowsEventLoopDelayMs.toFixed(1)),
|
|
468
|
+
eventInjectionCpuMs: Number(metrics.eventInjectionCpuMs.toFixed(1)),
|
|
469
|
+
eventInjectionWallMs: Number(metrics.eventInjectionWallMs.toFixed(1)),
|
|
470
|
+
captureWindowCpuMs: Number(metrics.captureWindowCpuMs.toFixed(1)),
|
|
471
|
+
captureWindowWallMs: Number(metrics.captureWindowWallMs.toFixed(1)),
|
|
472
|
+
readCachedCpuMs: Number(metrics.readCachedCpuMs.toFixed(1)),
|
|
473
|
+
readCachedWallMs: Number(metrics.readCachedWallMs.toFixed(1)),
|
|
388
474
|
scenario,
|
|
389
475
|
eventCount: events.length,
|
|
390
476
|
compactions: Math.max(0, generationsSeen - startGenerationCount),
|
|
391
477
|
totalCpuMs: Number(((cpu.user + cpu.system) / 1_000).toFixed(1)),
|
|
392
478
|
elapsedMs: Number(elapsedMs.toFixed(1)),
|
|
393
479
|
maxEventLoopDelayMs: Number(maxEventLoopDelayMs.toFixed(1)),
|
|
480
|
+
monitorEventLoopDelayMaxMs: Number((loopDelay.max / 1e6).toFixed(1)),
|
|
481
|
+
commitWindowMs: Number((commitWindowEnd - commitWindowStart).toFixed(1)),
|
|
482
|
+
gc: gcActivity
|
|
483
|
+
.filter((entry) => entry.startTime >= commitWindowStart && entry.startTime <= commitWindowEnd)
|
|
484
|
+
.map((entry) => ({
|
|
485
|
+
kind: entry.kind,
|
|
486
|
+
duration: Number(entry.duration.toFixed(2)),
|
|
487
|
+
startTime: Number(entry.startTime.toFixed(2)),
|
|
488
|
+
})),
|
|
489
|
+
commitPhases: {
|
|
490
|
+
readRows: metrics.readRowsPhases.map((phase) => ({
|
|
491
|
+
startTime: Number(phase.startTime.toFixed(2)),
|
|
492
|
+
wallMs: Number(phase.wallMs.toFixed(2)),
|
|
493
|
+
cpuMs: Number(phase.cpuMs.toFixed(2)),
|
|
494
|
+
})),
|
|
495
|
+
journalAppend: metrics.journalAppendPhases.map((phase) => ({
|
|
496
|
+
startTime: Number(phase.startTime.toFixed(2)),
|
|
497
|
+
wallMs: Number(phase.wallMs.toFixed(2)),
|
|
498
|
+
cpuMs: Number(phase.cpuMs.toFixed(2)),
|
|
499
|
+
})),
|
|
500
|
+
},
|
|
394
501
|
};
|
|
395
502
|
process.stderr.write("delete-snapshot-mixed-benchmark " + JSON.stringify(output) + "\n");
|
|
396
503
|
expect(metrics.completedCaptures).toBe(events.length);
|
|
@@ -446,6 +553,19 @@ describe("sync-runner mixed delete capture benchmark", () => {
|
|
|
446
553
|
}
|
|
447
554
|
backlogLedger.append({ deletes, upserts });
|
|
448
555
|
}
|
|
556
|
+
// The runner and its cached AreaLedger instance predate the synthetic
|
|
557
|
+
// backlog above. Reconcile and hydrate that peer-written tail before the
|
|
558
|
+
// timed burst so the benchmark measures the watcher capture path, not
|
|
559
|
+
// reverse-shadow recovery plus cold aggregate reconstruction.
|
|
560
|
+
const recovery = new AreaLedgerMigration({
|
|
561
|
+
rootDir: stateDir,
|
|
562
|
+
journalSlug: PERSONAL_VAULT_JOURNAL_SLUG,
|
|
563
|
+
resolver: personalResolver,
|
|
564
|
+
legacyStore: openJournalStateStoreForMigration(PERSONAL_VAULT_JOURNAL_SLUG),
|
|
565
|
+
});
|
|
566
|
+
recovery.reverseShadow({});
|
|
567
|
+
recovery.dispose();
|
|
568
|
+
readJournal(PERSONAL_VAULT_JOURNAL_SLUG);
|
|
449
569
|
const backlogEvents = backlogFiles.map((key) => event(key, "unlink"));
|
|
450
570
|
fs.rmSync(path.join(hqRoot, backlogRoot, "removed"), { recursive: true, force: true });
|
|
451
571
|
const backlogMetrics = await measure("readrows-backlog-5000x10-1000-unlinks", backlogEvents, 300_000);
|
|
@@ -455,6 +575,8 @@ describe("sync-runner mixed delete capture benchmark", () => {
|
|
|
455
575
|
expect.soft(backlogMetrics.readRowsCalls).toBe(1);
|
|
456
576
|
expect.soft(backlogMetrics.readRowsCpuMs).toBeLessThan(100);
|
|
457
577
|
expect.soft(backlogMetrics.maxReadRowsEventLoopDelayMs).toBeLessThan(200);
|
|
578
|
+
expect.soft(backlogMetrics.captureWindowCpuMs).toBeLessThan(1_000);
|
|
579
|
+
expect.soft(backlogMetrics.maxEventLoopDelayMs).toBeLessThan(1_000);
|
|
458
580
|
expect.soft(backlogMetrics.totalCpuMs).toBeLessThan(4_000);
|
|
459
581
|
expect.soft(backlogMetrics.maxEventLoopDelayMs).toBeLessThan(4_000);
|
|
460
582
|
expect(backlogFiles.every((key) => readJournal(PERSONAL_VAULT_JOURNAL_SLUG).files[key]?.localDeleteIntent)).toBe(true);
|
|
@@ -476,6 +598,8 @@ describe("sync-runner mixed delete capture benchmark", () => {
|
|
|
476
598
|
finally {
|
|
477
599
|
activeMetrics = undefined;
|
|
478
600
|
setAreaLedgerTestHooksForTest(undefined);
|
|
601
|
+
gcObserver.disconnect();
|
|
602
|
+
readCachedSpy.mockRestore();
|
|
479
603
|
readRowsSpy.mockRestore();
|
|
480
604
|
stopEventLoopProbe?.();
|
|
481
605
|
stopEventLoopProbe = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-runner-delete-snapshot-mixed.bench.test.js","sourceRoot":"","sources":["../../src/bin/sync-runner-delete-snapshot-mixed.bench.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-runner-delete-snapshot-mixed.bench.test.js","sourceRoot":"","sources":["../../src/bin/sync-runner-delete-snapshot-mixed.bench.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import * as os from "os";
|
|
|
12
12
|
import * as path from "path";
|
|
13
13
|
import * as v8 from "node:v8";
|
|
14
14
|
import * as vm from "node:vm";
|
|
15
|
-
import { monitorEventLoopDelay } from "node:perf_hooks";
|
|
15
|
+
import { monitorEventLoopDelay, PerformanceObserver } from "node:perf_hooks";
|
|
16
16
|
import { runRunner, parseArgs, loopPassDeps, runRunnerWithLoop as runRunnerWithOwnerLease, resolveDeletePolicy, resolveSkipPersonal, resolveSkipCompanies, selectObjectIOFactory, routeChangeToTarget, buildTargetedPushArgv, resolvePullScope, readPinnedPrefixes, SESSIONS_SCOPE_PREFIX, defaultCollectTelemetry, AUTH_REQUIRED_PASS_EXIT, conventionalWatchSignalExitCode, DEFAULT_WATCH_RUNNER_SHUTDOWN_TIMEOUT_MS, resolveWatchRunnerShutdownTimeoutMs, WATCH_RUNNER_SHUTDOWN_TIMEOUT_ENV, } from "./sync-runner.js";
|
|
17
17
|
import { SESSION_LOGS_PUSH_ONLY_PREFIX } from "../sync/pull-scope.js";
|
|
18
18
|
import { WATCH_RUNNER_ALREADY_OWNED_EXIT, WATCH_OWNER_LEASE_LOST_EXIT, } from "../lib/exit-codes.js";
|
|
@@ -23,7 +23,7 @@ import { POST_SYNC_FLAG_KEYS, } from "./sync-runner-post-sync-flags.js";
|
|
|
23
23
|
import { FakeClock, TreeWatcher, } from "../watcher.js";
|
|
24
24
|
import { adaptivePollMs, advanceMonotonicDeadline, DEFAULT_EVENT_BATCH_LIMIT, DEFAULT_FAST_LANE_MAX_BYTES, DEFAULT_FAST_LANE_MAX_FILE_BYTES, DEFAULT_FAST_LANE_MAX_FILES, DEFAULT_FULL_RECONCILE_MS, EVENT_BATCH_LIMIT_ENV, FAST_LANE_MAX_BYTES_ENV, FAST_LANE_MAX_FILES_ENV, FULL_RECONCILE_MS_ENV, isFastLocalBatch, isFastReceiverBatch, partitionLocalBatch, journalEntriesForWatcherDelete, resolveEventBatchLimit, resolveFullReconcileMs, resolveWatchPollMs, CHORE_STARVATION_CAP_MS, CooperativePassScheduler, REALTIME_ADMISSION_DEADLINE_MS, REALTIME_DRAIN_BURST_MS, REALTIME_WORKER_OCCUPANCY_CAP, RealtimeAdmissionTimeoutError, setRealtimeAdmissionDeadlineMsForTesting, setRealtimeDrainBurstMsForTesting, normalizeCoordinatorPaths, shouldQuarantineWatcherDeleteIntents, shouldUseAreaStorage, WATCHER_REDISCOVERY_RETRY_MS, WATCHER_REDISCOVERY_RETRY_MAX_MS, EVENT_SYNC_STARTUP_SHUTDOWN_WAIT_MS, } from "./sync-runner-watch-loop.js";
|
|
25
25
|
import { FullPassCapController, resetFullPassCapLogForTest, } from "../sync/full-pass-caps.js";
|
|
26
|
-
import { AreaLedgerMigration, JournalStore, openJournalStateStoreForMigration, PERSONAL_VAULT_JOURNAL_SLUG, readJournal, readJournalScoped, writeJournal, } from "../journal.js";
|
|
26
|
+
import { AreaLedgerMigration, JournalStore, openJournalStateStoreForMigration, PERSONAL_VAULT_JOURNAL_SLUG, readJournal, readJournalForPass, readJournalScoped, readJournalScopedAsync, writeJournal, } from "../journal.js";
|
|
27
27
|
import { AreaLedger } from "../sync/area-ledger.js";
|
|
28
28
|
import { AreaResolver } from "../sync/area-resolver.js";
|
|
29
29
|
import { AREA_LEGACY_MIRROR_LINGER_MS } from "../sync/area-ledger-migration.js";
|
|
@@ -7737,22 +7737,43 @@ describe("runRunnerWithLoop — event-push wiring", () => {
|
|
|
7737
7737
|
const watcher = makeBatchWatcherStub();
|
|
7738
7738
|
let shutdown = () => { };
|
|
7739
7739
|
let committedAt;
|
|
7740
|
+
let activeCommitSample;
|
|
7741
|
+
let scopedCommitSequence = 0;
|
|
7742
|
+
const commitPhases = [];
|
|
7740
7743
|
const runPass = vi.fn(async (argv) => {
|
|
7741
7744
|
if (!argv.includes("--scope-path")) {
|
|
7742
7745
|
// Production opens the packed journal during the initial full pass,
|
|
7743
7746
|
// before the watcher accepts realtime work. That recovered projection
|
|
7744
7747
|
// is the one a scoped commit must reuse.
|
|
7745
|
-
|
|
7748
|
+
readJournalForPass(PERSONAL_VAULT_JOURNAL_SLUG);
|
|
7746
7749
|
}
|
|
7747
7750
|
if (argv.includes("--scope-path") && argv.includes("push")) {
|
|
7748
|
-
const
|
|
7751
|
+
const passStartedAt = performance.now();
|
|
7752
|
+
const scopedReadStartedAt = performance.now();
|
|
7753
|
+
const scoped = await readJournalScopedAsync(PERSONAL_VAULT_JOURNAL_SLUG, targetPaths);
|
|
7754
|
+
const scopedReadMs = performance.now() - scopedReadStartedAt;
|
|
7755
|
+
const mutationStartedAt = performance.now();
|
|
7749
7756
|
const target = targetPaths[0];
|
|
7750
7757
|
scoped.files[target] = {
|
|
7751
7758
|
...scoped.files[target],
|
|
7752
|
-
syncedAt: "2026-09-16T21:38:18.000Z",
|
|
7759
|
+
syncedAt: new Date(Date.parse("2026-09-16T21:38:18.000Z") + scopedCommitSequence++).toISOString(),
|
|
7753
7760
|
};
|
|
7761
|
+
const entryMutationMs = performance.now() - mutationStartedAt;
|
|
7762
|
+
const journalWriteStartedAt = performance.now();
|
|
7754
7763
|
writeJournal(PERSONAL_VAULT_JOURNAL_SLUG, scoped);
|
|
7764
|
+
const journalWriteMs = performance.now() - journalWriteStartedAt;
|
|
7755
7765
|
committedAt = performance.now();
|
|
7766
|
+
if (activeCommitSample) {
|
|
7767
|
+
commitPhases.push({
|
|
7768
|
+
sample: activeCommitSample.sample,
|
|
7769
|
+
dispatchToPassMs: passStartedAt - activeCommitSample.submittedAt,
|
|
7770
|
+
scopedReadMs,
|
|
7771
|
+
entryMutationMs,
|
|
7772
|
+
journalWriteMs,
|
|
7773
|
+
passRemainderMs: committedAt - passStartedAt - scopedReadMs - entryMutationMs - journalWriteMs,
|
|
7774
|
+
submitToCommitMs: committedAt - activeCommitSample.submittedAt,
|
|
7775
|
+
});
|
|
7776
|
+
}
|
|
7756
7777
|
}
|
|
7757
7778
|
return completedPassOutcome();
|
|
7758
7779
|
});
|
|
@@ -7765,21 +7786,19 @@ describe("runRunnerWithLoop — event-push wiring", () => {
|
|
|
7765
7786
|
return () => { };
|
|
7766
7787
|
},
|
|
7767
7788
|
});
|
|
7789
|
+
const gcActivity = [];
|
|
7790
|
+
const gcObserver = new PerformanceObserver((list) => {
|
|
7791
|
+
for (const entry of list.getEntries()) {
|
|
7792
|
+
const detail = entry;
|
|
7793
|
+
gcActivity.push({ kind: detail.detail?.kind ?? null, duration: entry.duration, startTime: entry.startTime });
|
|
7794
|
+
}
|
|
7795
|
+
});
|
|
7796
|
+
gcObserver.observe({ entryTypes: ["gc"] });
|
|
7768
7797
|
try {
|
|
7769
7798
|
await flushLoopMicrotasks(30);
|
|
7770
7799
|
runPass.mockClear();
|
|
7771
7800
|
resetStateStoreSnapshotRecoveryCountForTest();
|
|
7772
|
-
const eventLoopDelay = monitorEventLoopDelay({ resolution: 10 });
|
|
7773
|
-
eventLoopDelay.enable();
|
|
7774
7801
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
7775
|
-
const submittedAt = performance.now();
|
|
7776
|
-
let timerDelayMs;
|
|
7777
|
-
const eventLoopTurn = new Promise((resolve) => {
|
|
7778
|
-
setTimeout(() => {
|
|
7779
|
-
timerDelayMs = performance.now() - submittedAt;
|
|
7780
|
-
resolve();
|
|
7781
|
-
}, 0);
|
|
7782
|
-
});
|
|
7783
7802
|
const batch = {
|
|
7784
7803
|
paths: new Map(targetPaths.map((relativePath) => [path.join(hqRoot, relativePath), relativePath])),
|
|
7785
7804
|
changes: new Map(targetPaths.map((relativePath) => [
|
|
@@ -7787,17 +7806,73 @@ describe("runRunnerWithLoop — event-push wiring", () => {
|
|
|
7787
7806
|
{ kind: "change" },
|
|
7788
7807
|
])),
|
|
7789
7808
|
};
|
|
7790
|
-
|
|
7791
|
-
|
|
7792
|
-
|
|
7793
|
-
|
|
7794
|
-
|
|
7795
|
-
|
|
7796
|
-
|
|
7809
|
+
// Measure each commit independently so one long event-loop block cannot
|
|
7810
|
+
// disappear inside an aggregate statistic.
|
|
7811
|
+
const loopDelayMaxMs = [];
|
|
7812
|
+
const commitDurations = [];
|
|
7813
|
+
for (let sample = 0; sample < 5; sample += 1) {
|
|
7814
|
+
const loopDelay = monitorEventLoopDelay({ resolution: 10 });
|
|
7815
|
+
loopDelay.enable();
|
|
7816
|
+
try {
|
|
7817
|
+
// Preserve the old pre-commit window as a separately reported idle
|
|
7818
|
+
// baseline. The guarded histogram starts only after this window.
|
|
7819
|
+
const warmupStart = performance.now();
|
|
7820
|
+
await new Promise((resolve) => setTimeout(resolve, 30));
|
|
7821
|
+
const warmupEnd = performance.now();
|
|
7822
|
+
for (const entry of gcObserver.takeRecords()) {
|
|
7823
|
+
const detail = entry;
|
|
7824
|
+
gcActivity.push({ kind: detail.detail?.kind ?? null, duration: entry.duration, startTime: entry.startTime });
|
|
7825
|
+
}
|
|
7826
|
+
const warmupMaxDelayMs = loopDelay.max / 1e6;
|
|
7827
|
+
const warmupGc = gcActivity
|
|
7828
|
+
.filter((entry) => entry.startTime >= warmupStart && entry.startTime <= warmupEnd)
|
|
7829
|
+
.map((entry) => ({ kind: entry.kind, duration: Number(entry.duration.toFixed(2)), startTime: Number(entry.startTime.toFixed(2)) }));
|
|
7830
|
+
loopDelay.reset();
|
|
7831
|
+
committedAt = undefined;
|
|
7832
|
+
const windowStart = performance.now();
|
|
7833
|
+
activeCommitSample = { sample: sample + 1, submittedAt: windowStart };
|
|
7834
|
+
const watcherCallbackStartedAt = performance.now();
|
|
7835
|
+
watcher.emit(targetPaths[0], batch);
|
|
7836
|
+
const watcherCallbackSyncMs = performance.now() - watcherCallbackStartedAt;
|
|
7837
|
+
await vi.waitFor(() => expect(committedAt).toBeDefined(), { timeout: 30_000, interval: 10 });
|
|
7838
|
+
commitDurations.push(committedAt - windowStart);
|
|
7839
|
+
// Give the histogram's next 10 ms sample time to observe a stall that
|
|
7840
|
+
// ended in the commit callback before reading this window's maximum.
|
|
7841
|
+
await new Promise((resolve) => setTimeout(resolve, 20));
|
|
7842
|
+
const windowEnd = performance.now();
|
|
7843
|
+
for (const entry of gcObserver.takeRecords()) {
|
|
7844
|
+
const detail = entry;
|
|
7845
|
+
gcActivity.push({ kind: detail.detail?.kind ?? null, duration: entry.duration, startTime: entry.startTime });
|
|
7846
|
+
}
|
|
7847
|
+
const maxDelayMs = loopDelay.max / 1e6;
|
|
7848
|
+
loopDelayMaxMs.push(maxDelayMs);
|
|
7849
|
+
const phases = commitPhases.find((phase) => phase.sample === sample + 1);
|
|
7850
|
+
const sampleGc = gcActivity
|
|
7851
|
+
.filter((entry) => entry.startTime >= windowStart && entry.startTime <= windowEnd)
|
|
7852
|
+
.map((entry) => ({ kind: entry.kind, duration: Number(entry.duration.toFixed(2)), startTime: Number(entry.startTime.toFixed(2)) }));
|
|
7853
|
+
process.stdout.write(`realtime-commit-sample ${JSON.stringify({
|
|
7854
|
+
sample: sample + 1,
|
|
7855
|
+
warmupMaxDelayMs: Number(warmupMaxDelayMs.toFixed(1)),
|
|
7856
|
+
warmupGc,
|
|
7857
|
+
maxDelayMs: Number(maxDelayMs.toFixed(1)),
|
|
7858
|
+
windowStart: Number(windowStart.toFixed(2)),
|
|
7859
|
+
windowEnd: Number(windowEnd.toFixed(2)),
|
|
7860
|
+
phases: phases ? { ...phases, watcherCallbackSyncMs } : null,
|
|
7861
|
+
gc: sampleGc,
|
|
7862
|
+
})}\n`);
|
|
7863
|
+
activeCommitSample = undefined;
|
|
7864
|
+
}
|
|
7865
|
+
finally {
|
|
7866
|
+
loopDelay.disable();
|
|
7867
|
+
}
|
|
7868
|
+
}
|
|
7869
|
+
expect(Math.max(...commitDurations)).toBeLessThan(1_000);
|
|
7870
|
+
expect(Math.max(...loopDelayMaxMs)).toBeLessThan(100);
|
|
7797
7871
|
expect(getStateStoreSnapshotRecoveryCountForTest()).toBe(0);
|
|
7798
|
-
expect(runPass.mock.calls.filter(([argv]) => argv.includes("--scope-path"))).toHaveLength(
|
|
7872
|
+
expect(runPass.mock.calls.filter(([argv]) => argv.includes("--scope-path"))).toHaveLength(5);
|
|
7799
7873
|
}
|
|
7800
7874
|
finally {
|
|
7875
|
+
gcObserver.disconnect();
|
|
7801
7876
|
shutdown();
|
|
7802
7877
|
await loop;
|
|
7803
7878
|
if (previousCoordinator === undefined)
|