test: normalize perf manifest paths

This commit is contained in:
Peter Steinberger
2026-03-20 22:06:16 +00:00
parent c3972982b5
commit 39a4fe576d
4 changed files with 513 additions and 185 deletions

View File

@@ -25,14 +25,25 @@ const readJson = (filePath, fallback) => {
};
const normalizeRepoPath = (value) => value.split(path.sep).join("/");
const repoRoot = path.resolve(process.cwd());
const normalizeTrackedRepoPath = (value) => {
const normalizedValue = typeof value === "string" ? value : String(value ?? "");
const repoRelative = path.isAbsolute(normalizedValue)
? path.relative(repoRoot, path.resolve(normalizedValue))
: normalizedValue;
if (path.isAbsolute(repoRelative) || repoRelative.startsWith("..") || repoRelative === "") {
return normalizeRepoPath(normalizedValue);
}
return normalizeRepoPath(repoRelative);
};
const normalizeManifestEntries = (entries) =>
entries
.map((entry) =>
typeof entry === "string"
? { file: normalizeRepoPath(entry), reason: "" }
? { file: normalizeTrackedRepoPath(entry), reason: "" }
: {
file: normalizeRepoPath(String(entry?.file ?? "")),
file: normalizeTrackedRepoPath(String(entry?.file ?? "")),
reason: typeof entry?.reason === "string" ? entry.reason : "",
},
)
@@ -60,7 +71,7 @@ export function loadUnitTimingManifest() {
const files = Object.fromEntries(
Object.entries(raw.files ?? {})
.map(([file, value]) => {
const normalizedFile = normalizeRepoPath(file);
const normalizedFile = normalizeTrackedRepoPath(file);
const durationMs =
Number.isFinite(value?.durationMs) && value.durationMs >= 0 ? value.durationMs : null;
const testCount =
@@ -97,7 +108,7 @@ export function loadUnitMemoryHotspotManifest() {
const files = Object.fromEntries(
Object.entries(raw.files ?? {})
.map(([file, value]) => {
const normalizedFile = normalizeRepoPath(file);
const normalizedFile = normalizeTrackedRepoPath(file);
const deltaKb =
Number.isFinite(value?.deltaKb) && value.deltaKb > 0 ? Math.round(value.deltaKb) : null;
const sources = Array.isArray(value?.sources)

View File

@@ -57,10 +57,24 @@ function parseArgs(argv) {
return args;
}
const normalizeRepoPath = (value) => value.split(path.sep).join("/");
const repoRoot = path.resolve(process.cwd());
const normalizeTrackedRepoPath = (value) => {
const normalizedValue = typeof value === "string" ? value : String(value ?? "");
const repoRelative = path.isAbsolute(normalizedValue)
? path.relative(repoRoot, path.resolve(normalizedValue))
: normalizedValue;
if (path.isAbsolute(repoRelative) || repoRelative.startsWith("..") || repoRelative === "") {
return normalizeRepoPath(normalizedValue);
}
return normalizeRepoPath(repoRelative);
};
function mergeHotspotEntry(aggregated, file, value) {
if (!(Number.isFinite(value?.deltaKb) && value.deltaKb > 0)) {
return;
}
const normalizedFile = normalizeTrackedRepoPath(file);
const normalizeSourceLabel = (source) => {
const separator = source.lastIndexOf(":");
if (separator === -1) {
@@ -75,9 +89,9 @@ function mergeHotspotEntry(aggregated, file, value) {
.filter((source) => typeof source === "string" && source.length > 0)
.map(normalizeSourceLabel)
: [];
const previous = aggregated.get(file);
const previous = aggregated.get(normalizedFile);
if (!previous) {
aggregated.set(file, {
aggregated.set(normalizedFile, {
deltaKb: Math.round(value.deltaKb),
sources: [...new Set(nextSources)],
});

View File

@@ -50,6 +50,17 @@ function parseArgs(argv) {
}
const normalizeRepoPath = (value) => value.split(path.sep).join("/");
const repoRoot = path.resolve(process.cwd());
const normalizeTrackedRepoPath = (value) => {
const normalizedValue = typeof value === "string" ? value : String(value ?? "");
const repoRelative = path.isAbsolute(normalizedValue)
? path.relative(repoRoot, path.resolve(normalizedValue))
: normalizedValue;
if (path.isAbsolute(repoRelative) || repoRelative.startsWith("..") || repoRelative === "") {
return normalizeRepoPath(normalizedValue);
}
return normalizeRepoPath(repoRelative);
};
const opts = parseArgs(process.argv.slice(2));
const reportPath =
@@ -74,7 +85,7 @@ const report = JSON.parse(fs.readFileSync(reportPath, "utf8"));
const files = Object.fromEntries(
(report.testResults ?? [])
.map((result) => {
const file = typeof result.name === "string" ? normalizeRepoPath(result.name) : "";
const file = typeof result.name === "string" ? normalizeTrackedRepoPath(result.name) : "";
const start = typeof result.startTime === "number" ? result.startTime : 0;
const end = typeof result.endTime === "number" ? result.endTime : 0;
const testCount = Array.isArray(result.assertionResults) ? result.assertionResults.length : 0;

View File

@@ -1,227 +1,519 @@
{
"config": "vitest.unit.config.ts",
"generatedAt": "2026-03-18T17:10:00.000Z",
"generatedAt": "2026-03-20T21:59:18.104Z",
"defaultDurationMs": 250,
"files": {
"src/security/audit.test.ts": {
"durationMs": 6200,
"testCount": 380
},
"src/plugins/loader.test.ts": {
"durationMs": 6100,
"testCount": 260
"durationMs": 9585.06884765625,
"testCount": 77
},
"src/cli/update-cli.test.ts": {
"durationMs": 5400,
"testCount": 210
"src/plugin-sdk/index.bundle.test.ts": {
"durationMs": 8950.05517578125,
"testCount": 1
},
"src/agents/pi-embedded-runner.test.ts": {
"durationMs": 5200,
"testCount": 140
"src/cron/isolated-agent/run.sandbox-config-preserved.test.ts": {
"durationMs": 8918.584228515625,
"testCount": 2
},
"src/process/supervisor/supervisor.test.ts": {
"durationMs": 5000,
"testCount": 120
"src/memory/manager.readonly-recovery.test.ts": {
"durationMs": 8524.26123046875,
"testCount": 4
},
"src/agents/bash-tools.test.ts": {
"durationMs": 4700,
"testCount": 150
"src/context-engine/context-engine.test.ts": {
"durationMs": 8457.03515625,
"testCount": 27
},
"src/cli/program.smoke.test.ts": {
"durationMs": 4500,
"testCount": 95
"src/channels/plugins/setup-wizard-helpers.test.ts": {
"durationMs": 8405.74267578125,
"testCount": 83
},
"src/hooks/install.test.ts": {
"durationMs": 4300,
"testCount": 95
"test/extension-plugin-sdk-boundary.test.ts": {
"durationMs": 7965.701171875,
"testCount": 7
},
"src/agents/skills.test.ts": {
"durationMs": 4200,
"testCount": 135
"src/config/doc-baseline.integration.test.ts": {
"durationMs": 6192.561767578125,
"testCount": 7
},
"src/config/schema.test.ts": {
"durationMs": 4000,
"testCount": 110
"src/daemon/schtasks.stop.test.ts": {
"durationMs": 5804.337158203125,
"testCount": 4
},
"src/media/store.test.ts": {
"durationMs": 3900,
"testCount": 120
"src/media/fetch.telegram-network.test.ts": {
"durationMs": 5003.539306640625,
"testCount": 5
},
"src/commands/agent.test.ts": {
"durationMs": 3700,
"testCount": 110
"src/infra/restart.test.ts": {
"durationMs": 4300.315673828125,
"testCount": 5
},
"extensions/telegram/src/bot.create-telegram-bot.test.ts": {
"durationMs": 3600,
"testCount": 80
"src/channels/plugins/contracts/registry.contract.test.ts": {
"durationMs": 3514.9697265625,
"testCount": 10
},
"extensions/telegram/src/bot.test.ts": {
"durationMs": 3400,
"testCount": 95
"src/media-understanding/providers/image.test.ts": {
"durationMs": 3185.248779296875,
"testCount": 4
},
"src/agents/openclaw-tools.subagents.sessions-spawn.lifecycle.test.ts": {
"durationMs": 3300,
"testCount": 85
"test/web-search-provider-boundary.test.ts": {
"durationMs": 2782.843505859375,
"testCount": 4
},
"src/infra/archive.test.ts": {
"durationMs": 3200,
"testCount": 75
"src/infra/outbound/message.test.ts": {
"durationMs": 2701.229736328125,
"testCount": 3
},
"src/auto-reply/reply.block-streaming.test.ts": {
"durationMs": 3100,
"testCount": 60
"src/tts/edge-tts-validation.test.ts": {
"durationMs": 2662.32421875,
"testCount": 2
},
"src/agents/pi-embedded-runner.run-embedded-pi-agent.auth-profile-rotation.test.ts": {
"durationMs": 3000,
"testCount": 55
"src/media-understanding/runner.vision-skip.test.ts": {
"durationMs": 2446.17724609375,
"testCount": 1
},
"src/agents/skills.buildworkspaceskillsnapshot.test.ts": {
"durationMs": 2900,
"testCount": 70
"src/infra/outbound/agent-delivery.test.ts": {
"durationMs": 2414.775390625,
"testCount": 6
},
"src/docker-setup.test.ts": {
"durationMs": 2800,
"testCount": 65
"src/memory/manager.read-file.test.ts": {
"durationMs": 2413.658203125,
"testCount": 4
},
"src/agents/skills-install.download.test.ts": {
"durationMs": 2700,
"testCount": 60
"src/memory/manager.sync-errors-do-not-crash.test.ts": {
"durationMs": 2389.0439453125,
"testCount": 1
},
"src/config/schema.tags.test.ts": {
"durationMs": 2600,
"testCount": 70
"src/acp/runtime/session-meta.test.ts": {
"durationMs": 2388.85302734375,
"testCount": 1
},
"src/cli/daemon-cli.coverage.test.ts": {
"durationMs": 2500,
"testCount": 50
"src/infra/provider-usage.auth.plugin.test.ts": {
"durationMs": 2376.7861328125,
"testCount": 1
},
"extensions/slack/src/monitor/slash.test.ts": {
"durationMs": 2400,
"testCount": 55
"src/infra/provider-usage.load.plugin.test.ts": {
"durationMs": 2347.157470703125,
"testCount": 1
},
"test/git-hooks-pre-commit.test.ts": {
"durationMs": 2300,
"testCount": 20
"src/index.test.ts": {
"durationMs": 2344.759521484375,
"testCount": 2
},
"src/commands/doctor.warns-state-directory-is-missing.test.ts": {
"durationMs": 2200,
"testCount": 35
},
"src/commands/doctor.warns-per-agent-sandbox-docker-browser-prune.test.ts": {
"durationMs": 2100,
"testCount": 30
},
"src/commands/doctor.runs-legacy-state-migrations-yes-mode-without.test.ts": {
"durationMs": 2000,
"testCount": 28
},
"src/browser/server.agent-contract-snapshot-endpoints.test.ts": {
"durationMs": 1900,
"testCount": 45
},
"src/browser/server.agent-contract-form-layout-act-commands.test.ts": {
"durationMs": 1800,
"testCount": 40
},
"src/agents/models-config.normalizes-gemini-3-ids-preview-google-providers.test.ts": {
"durationMs": 1700,
"testCount": 25
},
"src/agents/session-tool-result-guard.tool-result-persist-hook.test.ts": {
"durationMs": 1600,
"testCount": 22
},
"src/plugins/tools.optional.test.ts": {
"durationMs": 1590,
"testCount": 18
},
"src/security/fix.test.ts": {
"durationMs": 1580,
"testCount": 24
},
"src/utils.test.ts": {
"durationMs": 1570,
"src/plugins/install.test.ts": {
"durationMs": 1894.49658203125,
"testCount": 34
},
"src/auto-reply/tool-meta.test.ts": {
"durationMs": 1560,
"testCount": 26
"src/config/plugin-auto-enable.test.ts": {
"durationMs": 1378.89013671875,
"testCount": 25
},
"src/auto-reply/envelope.test.ts": {
"durationMs": 1550,
"testCount": 20
"src/plugin-sdk/channel-import-guardrails.test.ts": {
"durationMs": 1158.282470703125,
"testCount": 9
},
"src/commands/auth-choice.test.ts": {
"durationMs": 1540,
"testCount": 18
"src/hooks/bundled/session-memory/handler.test.ts": {
"durationMs": 1136.251953125,
"testCount": 17
},
"src/agents/skills.build-workspace-skills-prompt.syncs-merged-skills-into-target-workspace.test.ts": {
"durationMs": 1530,
"testCount": 14
},
"src/media/store.header-ext.test.ts": {
"durationMs": 1520,
"testCount": 16
},
"extensions/whatsapp/src/media.test.ts": {
"durationMs": 1510,
"testCount": 16
},
"extensions/whatsapp/src/auto-reply.web-auto-reply.falls-back-text-media-send-fails.test.ts": {
"durationMs": 1500,
"testCount": 10
},
"src/browser/server.covers-additional-endpoint-branches.test.ts": {
"durationMs": 1490,
"testCount": 18
},
"src/browser/server.post-tabs-open-profile-unknown-returns-404.test.ts": {
"durationMs": 1480,
"testCount": 12
},
"src/browser/server.skips-default-maxchars-explicitly-set-zero.test.ts": {
"durationMs": 1470,
"testCount": 10
},
"src/browser/server.auth-token-gates-http.test.ts": {
"durationMs": 1460,
"src/hooks/install.test.ts": {
"durationMs": 978.206298828125,
"testCount": 15
},
"extensions/acpx/src/runtime.test.ts": {
"durationMs": 1450,
"testCount": 12
"test/plugin-extension-import-boundary.test.ts": {
"durationMs": 975.744873046875,
"testCount": 5
},
"test/scripts/ios-team-id.test.ts": {
"durationMs": 1440,
"testCount": 12
"test/architecture-smells.test.ts": {
"durationMs": 741.625732421875,
"testCount": 2
},
"src/agents/bash-tools.exec.background-abort.test.ts": {
"durationMs": 1430,
"testCount": 10
},
"src/agents/subagent-announce.format.test.ts": {
"durationMs": 1420,
"testCount": 12
},
"src/auto-reply/reply.triggers.trigger-handling.filters-usage-summary-current-model-provider.test.ts": {
"durationMs": 1410,
"src/hooks/loader.test.ts": {
"durationMs": 735.1630859375,
"testCount": 14
},
"src/auto-reply/reply.triggers.trigger-handling.targets-active-session-native-stop.test.ts": {
"durationMs": 1400,
"testCount": 10
"src/infra/fs-safe.test.ts": {
"durationMs": 729.53564453125,
"testCount": 27
},
"src/auto-reply/reply.triggers.group-intro-prompts.test.ts": {
"durationMs": 1390,
"test/scripts/committer.test.ts": {
"durationMs": 626.26806640625,
"testCount": 3
},
"src/cron/isolated-agent.model-formatting.test.ts": {
"durationMs": 593.440185546875,
"testCount": 22
},
"src/cron/isolated-agent.uses-last-non-empty-agent-text-as.test.ts": {
"durationMs": 571.946533203125,
"testCount": 18
},
"src/config/config.plugin-validation.test.ts": {
"durationMs": 565.86474609375,
"testCount": 14
},
"src/cron/isolated-agent.skips-delivery-without-whatsapp-recipient-besteffortdeliver-true.test.ts": {
"durationMs": 530.2373046875,
"testCount": 15
},
"src/infra/provider-usage.test.ts": {
"durationMs": 524.179443359375,
"testCount": 11
},
"src/cron/service.issue-regressions.test.ts": {
"durationMs": 457.494873046875,
"testCount": 38
},
"src/infra/provider-usage.auth.normalizes-keys.test.ts": {
"durationMs": 450.132568359375,
"testCount": 19
},
"src/infra/fs-pinned-write-helper.test.ts": {
"durationMs": 338.172119140625,
"testCount": 3
},
"src/infra/archive.test.ts": {
"durationMs": 329.4638671875,
"testCount": 15
},
"src/memory/manager.get-concurrency.test.ts": {
"durationMs": 276.911376953125,
"testCount": 2
},
"src/cli/program/preaction.test.ts": {
"durationMs": 266.180908203125,
"testCount": 7
},
"src/memory/index.test.ts": {
"durationMs": 263.556884765625,
"testCount": 21
},
"src/security/temp-path-guard.test.ts": {
"durationMs": 262.98779296875,
"testCount": 3
},
"src/security/audit.test.ts": {
"durationMs": 258.43408203125,
"testCount": 65
},
"src/memory/embeddings.test.ts": {
"durationMs": 243.285888671875,
"testCount": 19
},
"src/cron/isolated-agent.delivers-response-has-heartbeat-ok-but-includes.test.ts": {
"durationMs": 239.01611328125,
"testCount": 6
},
"src/memory/qmd-manager.test.ts": {
"durationMs": 238.613525390625,
"testCount": 57
},
"src/infra/archive-staging.test.ts": {
"durationMs": 228.458740234375,
"testCount": 7
},
"src/secrets/audit.test.ts": {
"durationMs": 226.931396484375,
"testCount": 18
},
"test/scripts/test-extension.test.ts": {
"durationMs": 224.01171875,
"testCount": 8
},
"src/infra/git-commit.test.ts": {
"durationMs": 214.883056640625,
"testCount": 13
},
"src/tui/gateway-chat.test.ts": {
"durationMs": 210.46240234375,
"testCount": 14
},
"src/secrets/runtime.integration.test.ts": {
"durationMs": 210.15087890625,
"testCount": 5
},
"src/secrets/apply.test.ts": {
"durationMs": 208.744140625,
"testCount": 15
},
"src/entry.version-fast-path.test.ts": {
"durationMs": 192.80029296875,
"testCount": 2
},
"src/acp/control-plane/manager.test.ts": {
"durationMs": 183.112548828125,
"testCount": 33
},
"src/install-sh-version.test.ts": {
"durationMs": 180.623291015625,
"testCount": 3
},
"src/infra/host-env-security.test.ts": {
"durationMs": 180.501220703125,
"testCount": 18
},
"src/plugins/loader.git-path-regression.test.ts": {
"durationMs": 178.922119140625,
"testCount": 1
},
"src/hooks/plugin-hooks.test.ts": {
"durationMs": 177.90771484375,
"testCount": 4
},
"src/cli/daemon-cli/install.integration.test.ts": {
"durationMs": 174.057861328125,
"testCount": 2
},
"src/plugins/bundle-mcp.test.ts": {
"durationMs": 169.723876953125,
"testCount": 3
},
"src/acp/server.startup.test.ts": {
"durationMs": 161.5439453125,
"testCount": 4
},
"src/media-understanding/apply.test.ts": {
"durationMs": 150.961181640625,
"testCount": 32
},
"src/cron/isolated-agent.direct-delivery-core-channels.test.ts": {
"durationMs": 148.2373046875,
"testCount": 4
},
"src/daemon/schtasks.startup-fallback.test.ts": {
"durationMs": 144.08154296875,
"testCount": 6
},
"src/cron/isolated-agent.subagent-model.test.ts": {
"durationMs": 142.85693359375,
"testCount": 4
},
"src/channels/plugins/plugins-core.test.ts": {
"durationMs": 142.499755859375,
"testCount": 39
},
"src/infra/heartbeat-runner.returns-default-unset.test.ts": {
"durationMs": 135.578369140625,
"testCount": 25
},
"src/plugins/manifest-registry.test.ts": {
"durationMs": 133.34912109375,
"testCount": 21
},
"src/plugin-sdk/subpaths.test.ts": {
"durationMs": 132.722900390625,
"testCount": 45
},
"src/node-host/invoke-system-run-plan.test.ts": {
"durationMs": 128.076171875,
"testCount": 41
},
"test/scripts/ios-team-id.test.ts": {
"durationMs": 124.882568359375,
"testCount": 3
},
"src/config/schema.hints.test.ts": {
"durationMs": 124.705810546875,
"testCount": 7
},
"src/infra/system-presence.version.test.ts": {
"durationMs": 124.248046875,
"testCount": 5
},
"src/config/config.nix-integration-u3-u5-u9.test.ts": {
"durationMs": 123.738037109375,
"testCount": 19
},
"src/infra/run-node.test.ts": {
"durationMs": 122.07763671875,
"testCount": 12
},
"src/auto-reply/reply.triggers.trigger-handling.handles-inline-commands-strips-it-before-agent.test.ts": {
"durationMs": 1380,
"src/secrets/resolve.test.ts": {
"durationMs": 121.808837890625,
"testCount": 17
},
"ui/src/ui/views/chat.test.ts": {
"durationMs": 121.7890625,
"testCount": 26
},
"src/media/store.outside-workspace.test.ts": {
"durationMs": 117.4501953125,
"testCount": 1
},
"src/plugins/marketplace.test.ts": {
"durationMs": 117.027587890625,
"testCount": 3
},
"src/config/sessions/sessions.test.ts": {
"durationMs": 116.381591796875,
"testCount": 23
},
"src/memory/manager.batch.test.ts": {
"durationMs": 113.201416015625,
"testCount": 3
},
"src/cron/isolated-agent.lane.test.ts": {
"durationMs": 109.29296875,
"testCount": 3
},
"src/infra/heartbeat-runner.respects-ackmaxchars-heartbeat-acks.test.ts": {
"durationMs": 107.308349609375,
"testCount": 12
},
"src/cron/isolated-agent/run.owner-auth.test.ts": {
"durationMs": 106.2158203125,
"testCount": 1
},
"src/media/read-response-with-limit.test.ts": {
"durationMs": 103.88232421875,
"testCount": 5
},
"src/cli/config-cli.integration.test.ts": {
"durationMs": 101.070068359375,
"testCount": 4
},
"src/config/io.write-config.test.ts": {
"durationMs": 97.5205078125,
"testCount": 16
},
"src/infra/gateway-lock.test.ts": {
"durationMs": 97.258056640625,
"testCount": 9
},
"src/infra/outbound/outbound.test.ts": {
"durationMs": 97.128662109375,
"testCount": 65
},
"src/security/windows-acl.test.ts": {
"durationMs": 95.044921875,
"testCount": 48
},
"src/cron/isolated-agent.direct-delivery-forum-topics.test.ts": {
"durationMs": 93.414306640625,
"testCount": 2
},
"src/media-understanding/apply.echo-transcript.test.ts": {
"durationMs": 90.539306640625,
"testCount": 10
},
"extensions/whatsapp/src/auto-reply.web-auto-reply.compresses-common-formats-jpeg-cap.test.ts": {
"durationMs": 1370,
"test/git-hooks-pre-commit.test.ts": {
"durationMs": 89.74560546875,
"testCount": 1
},
"src/plugins/contracts/auth-choice.contract.test.ts": {
"durationMs": 87.48828125,
"testCount": 3
},
"src/infra/device-pairing.test.ts": {
"durationMs": 87.477294921875,
"testCount": 19
},
"src/pairing/pairing-store.test.ts": {
"durationMs": 86.443115234375,
"testCount": 17
},
"src/pairing/setup-code.test.ts": {
"durationMs": 86.40185546875,
"testCount": 15
},
"src/media-understanding/runner.skip-tiny-audio.test.ts": {
"durationMs": 85.822265625,
"testCount": 3
},
"src/hooks/hooks-install.test.ts": {
"durationMs": 85.01025390625,
"testCount": 1
},
"src/media/input-files.fetch-guard.test.ts": {
"durationMs": 83.118408203125,
"testCount": 10
},
"src/media-understanding/runner.proxy.test.ts": {
"durationMs": 82.6806640625,
"testCount": 3
},
"src/plugin-sdk/channel-lifecycle.test.ts": {
"durationMs": 82.321533203125,
"testCount": 6
},
"src/media-understanding/runner.deepgram.test.ts": {
"durationMs": 82.171875,
"testCount": 1
},
"src/cron/isolated-agent/delivery-dispatch.double-announce.test.ts": {
"durationMs": 78.29052734375,
"testCount": 15
},
"src/media-understanding/runner.auto-audio.test.ts": {
"durationMs": 77.9013671875,
"testCount": 4
},
"src/config/sessions.test.ts": {
"durationMs": 76.888916015625,
"testCount": 37
},
"src/process/command-queue.test.ts": {
"durationMs": 75.699951171875,
"testCount": 17
},
"src/node-host/invoke-system-run.test.ts": {
"durationMs": 75.633544921875,
"testCount": 37
},
"src/cli/program.smoke.test.ts": {
"durationMs": 74.6591796875,
"testCount": 4
},
"src/plugins/stage-bundled-plugin-runtime.test.ts": {
"durationMs": 74.08447265625,
"testCount": 7
},
"src/infra/matrix-legacy-crypto.test.ts": {
"durationMs": 72.4951171875,
"testCount": 8
},
"src/plugins/discovery.test.ts": {
"durationMs": 71.763671875,
"testCount": 24
},
"src/plugins/status.test.ts": {
"durationMs": 71.670654296875,
"testCount": 9
},
"src/wizard/setup.gateway-config.test.ts": {
"durationMs": 71.062255859375,
"testCount": 7
},
"src/config/config.legacy-config-detection.accepts-imessage-dmpolicy.test.ts": {
"durationMs": 69.632568359375,
"testCount": 30
},
"src/config/sessions/targets.test.ts": {
"durationMs": 69.172607421875,
"testCount": 13
},
"src/media/store.test.ts": {
"durationMs": 67.70458984375,
"testCount": 24
},
"src/canvas-host/server.test.ts": {
"durationMs": 67.617431640625,
"testCount": 6
},
"src/tts/tts.test.ts": {
"durationMs": 67.5400390625,
"testCount": 27
},
"src/infra/heartbeat-runner.ghost-reminder.test.ts": {
"durationMs": 66.83935546875,
"testCount": 6
},
"src/cli/pairing-cli.test.ts": {
"durationMs": 65.74462890625,
"testCount": 12
},
"src/media-understanding/runtime.test.ts": {
"durationMs": 65.732177734375,
"testCount": 2
}
}
}