fix(test): reduce node hotspot startup cost

Scope: conversation-binding/targets startup trimming + schema help isolation guardrail
This commit is contained in:
Vincent Koc
2026-03-22 15:05:00 -07:00
parent ee077804b0
commit e15f156f85
5 changed files with 479 additions and 788 deletions

View File

@@ -1,149 +1,15 @@
import { afterEach, beforeEach, describe, expect, it } from "vitest";
import type { ChannelOutboundAdapter } from "../../channels/plugins/types.js";
import type { OpenClawConfig } from "../../config/config.js";
import { setActivePluginRegistry } from "../../plugins/runtime.js";
import { createOutboundTestPlugin, createTestRegistry } from "../../test-utils/channel-plugins.js";
import { isWhatsAppGroupJid, normalizeWhatsAppTarget } from "../../whatsapp/normalize.js";
import { resolveOutboundTarget } from "./targets.js";
type TelegramTargetParts = {
chatId: string;
messageThreadId?: number;
chatType: "direct" | "group" | "unknown";
};
function parseTelegramTestTarget(raw: string): TelegramTargetParts {
const trimmed = raw
.trim()
.replace(/^(telegram|tg):/i, "")
.trim();
const topicMatch = /^(.+?):topic:(\d+)$/u.exec(trimmed);
if (topicMatch) {
const chatId = topicMatch[1];
return {
chatId,
messageThreadId: Number.parseInt(topicMatch[2], 10),
chatType: chatId.startsWith("-") ? "group" : "direct",
};
}
const threadMatch = /^(.+):(\d+)$/u.exec(trimmed);
if (threadMatch) {
const chatId = threadMatch[1];
return {
chatId,
messageThreadId: Number.parseInt(threadMatch[2], 10),
chatType: chatId.startsWith("-") ? "group" : "direct",
};
}
return {
chatId: trimmed,
chatType: trimmed.startsWith("-") ? "group" : "direct",
};
}
const telegramMessaging = {
parseExplicitTarget: ({ raw }: { raw: string }) => parseTelegramTestMessagingTarget(raw),
};
export function inferTelegramTestChatType(to: string): "direct" | "group" | undefined {
const chatType = parseTelegramTestTarget(to).chatType;
return chatType === "unknown" ? undefined : chatType;
}
export function parseTelegramTestMessagingTarget(raw: string): {
to: string;
threadId?: number;
chatType?: "direct" | "group";
} {
const target = parseTelegramTestTarget(raw);
return {
to: target.chatId,
threadId: target.messageThreadId,
chatType: target.chatType === "unknown" ? undefined : target.chatType,
};
}
const whatsappMessaging = {
inferTargetChatType: ({ to }: { to: string }) => {
const normalized = normalizeWhatsAppTarget(to);
if (!normalized) {
return undefined;
}
return isWhatsAppGroupJid(normalized) ? ("group" as const) : ("direct" as const);
},
targetResolver: {
hint: "<E.164|group JID>",
},
};
export const telegramOutboundStub: ChannelOutboundAdapter = {
deliveryMode: "direct",
};
export const whatsappOutboundStub: ChannelOutboundAdapter = {
deliveryMode: "gateway",
resolveTarget: ({ to }) => {
const normalized = typeof to === "string" ? normalizeWhatsAppTarget(to) : undefined;
if (normalized) {
return { ok: true as const, to: normalized };
}
return {
ok: false as const,
error: new Error("WhatsApp target required"),
};
},
};
import { createTargetsTestRegistry } from "./targets.test-helpers.js";
export function installResolveOutboundTargetPluginRegistryHooks(): void {
beforeEach(() => {
setActivePluginRegistry(
createTestRegistry([
{
pluginId: "whatsapp",
plugin: {
...createOutboundTestPlugin({
id: "whatsapp",
label: "WhatsApp",
outbound: whatsappOutboundStub,
messaging: whatsappMessaging,
}),
config: {
listAccountIds: () => [],
resolveDefaultTo: ({ cfg }: { cfg: OpenClawConfig }) =>
typeof cfg.channels?.whatsapp?.defaultTo === "string"
? cfg.channels.whatsapp.defaultTo
: undefined,
},
},
source: "test",
},
{
pluginId: "telegram",
plugin: {
...createOutboundTestPlugin({
id: "telegram",
label: "Telegram",
outbound: telegramOutboundStub,
messaging: telegramMessaging,
}),
config: {
listAccountIds: () => [],
resolveDefaultTo: ({ cfg }: { cfg: OpenClawConfig }) =>
typeof cfg.channels?.telegram?.defaultTo === "string"
? cfg.channels.telegram.defaultTo
: undefined,
},
},
source: "test",
},
]),
);
setActivePluginRegistry(createTargetsTestRegistry());
});
afterEach(() => {
setActivePluginRegistry(createTestRegistry());
setActivePluginRegistry(createTargetsTestRegistry([]));
});
}

View File

@@ -0,0 +1,177 @@
import type {
ChannelMessagingAdapter,
ChannelOutboundAdapter,
ChannelPlugin,
} from "../../channels/plugins/types.js";
import type { OpenClawConfig } from "../../config/config.js";
import { createTestRegistry } from "../../test-utils/channel-plugins.js";
function parseTelegramTargetForTest(raw: string): {
chatId: string;
messageThreadId?: number;
chatType: "direct" | "group" | "unknown";
} {
const trimmed = raw.trim();
const withoutPrefix = trimmed.replace(/^telegram:/i, "").trim();
const topicMatch = withoutPrefix.match(/^(.*):topic:(\d+)$/i);
const chatId = topicMatch?.[1]?.trim() || withoutPrefix;
const messageThreadId = topicMatch?.[2] ? Number.parseInt(topicMatch[2], 10) : undefined;
const numericId = chatId.startsWith("-") ? chatId.slice(1) : chatId;
const chatType =
/^\d+$/.test(numericId) && !chatId.startsWith("-100")
? "direct"
: chatId.startsWith("-")
? "group"
: "unknown";
return { chatId, messageThreadId, chatType };
}
function normalizeWhatsAppTargetForTest(raw: string): string | null {
const trimmed = raw.trim().replace(/^whatsapp:/i, "").trim();
if (!trimmed) {
return null;
}
const lowered = trimmed.toLowerCase();
if (/@g\.us$/u.test(lowered)) {
const normalized = lowered.replace(/\s+/gu, "");
return /^\d+@g\.us$/u.test(normalized) ? normalized : null;
}
const digits = trimmed.replace(/\D/gu, "");
const normalized = digits ? `+${digits}` : "";
return /^\+\d{7,15}$/u.test(normalized) ? normalized : null;
}
function createWhatsAppResolveTarget(
label = "WhatsApp",
): ChannelOutboundAdapter["resolveTarget"] {
return ({ to }) => {
const normalized = to ? normalizeWhatsAppTargetForTest(to) : null;
if (!normalized) {
return { ok: false, error: new Error(`${label} target is required`) };
}
return { ok: true, to: normalized };
};
}
function createTelegramResolveTarget(label = "Telegram"): ChannelOutboundAdapter["resolveTarget"] {
return ({ to }) => {
const trimmed = to?.trim();
if (!trimmed) {
return { ok: false, error: new Error(`${label} target is required`) };
}
return { ok: true, to: parseTelegramTargetForTest(trimmed).chatId };
};
}
export const telegramMessagingForTest: ChannelMessagingAdapter = {
parseExplicitTarget: ({ raw }) => {
const target = parseTelegramTargetForTest(raw);
return {
to: target.chatId,
threadId: target.messageThreadId,
chatType: target.chatType === "unknown" ? undefined : target.chatType,
};
},
inferTargetChatType: ({ to }) => {
const target = parseTelegramTargetForTest(to);
return target.chatType === "unknown" ? undefined : target.chatType;
},
};
export const whatsappMessagingForTest: ChannelMessagingAdapter = {
inferTargetChatType: ({ to }) => {
const normalized = normalizeWhatsAppTargetForTest(to);
if (!normalized) {
return undefined;
}
return normalized.endsWith("@g.us") ? "group" : "direct";
},
targetResolver: {
hint: "<E.164|group JID>",
},
};
export function createTestChannelPlugin(params: {
id: ChannelPlugin["id"];
label?: string;
outbound?: ChannelOutboundAdapter;
messaging?: ChannelMessagingAdapter;
resolveDefaultTo?: (params: { cfg: OpenClawConfig }) => string | undefined;
}): ChannelPlugin {
return {
id: params.id,
meta: {
id: params.id,
label: params.label ?? String(params.id),
selectionLabel: params.label ?? String(params.id),
docsPath: `/channels/${params.id}`,
blurb: "test stub.",
},
capabilities: { chatTypes: ["direct", "group"] },
config: {
listAccountIds: () => [],
resolveAccount: () => ({}),
...(params.resolveDefaultTo
? {
resolveDefaultTo: params.resolveDefaultTo,
}
: {}),
},
...(params.outbound ? { outbound: params.outbound } : {}),
...(params.messaging ? { messaging: params.messaging } : {}),
};
}
export function createTelegramTestPlugin(): ChannelPlugin {
return createTestChannelPlugin({
id: "telegram",
label: "Telegram",
outbound: {
deliveryMode: "direct",
sendText: async () => ({ channel: "telegram", messageId: "telegram-msg" }),
resolveTarget: createTelegramResolveTarget(),
},
messaging: telegramMessagingForTest,
resolveDefaultTo: ({ cfg }) =>
typeof cfg.channels?.telegram?.defaultTo === "string" ? cfg.channels.telegram.defaultTo : undefined,
});
}
export function createWhatsAppTestPlugin(): ChannelPlugin {
return createTestChannelPlugin({
id: "whatsapp",
label: "WhatsApp",
outbound: {
deliveryMode: "direct",
sendText: async () => ({ channel: "whatsapp", messageId: "whatsapp-msg" }),
resolveTarget: createWhatsAppResolveTarget(),
},
messaging: whatsappMessagingForTest,
resolveDefaultTo: ({ cfg }) =>
typeof cfg.channels?.whatsapp?.defaultTo === "string" ? cfg.channels.whatsapp.defaultTo : undefined,
});
}
export function createNoopOutboundChannelPlugin(
id: "discord" | "imessage" | "slack",
): ChannelPlugin {
return createTestChannelPlugin({
id,
outbound: {
deliveryMode: "direct",
sendText: async () => ({ channel: id, messageId: `${id}-msg` }),
},
});
}
export function createTargetsTestRegistry(
plugins: ChannelPlugin[] = [createWhatsAppTestPlugin(), createTelegramTestPlugin()],
) {
return createTestRegistry(
plugins.map((plugin) => ({
pluginId: plugin.id,
plugin,
source: "test",
})),
);
}

View File

@@ -3,8 +3,6 @@ import type { ChannelOutboundAdapter } from "../../channels/plugins/types.js";
import type { OpenClawConfig } from "../../config/config.js";
import type { SessionEntry } from "../../config/sessions/types.js";
import { setActivePluginRegistry } from "../../plugins/runtime.js";
import { createOutboundTestPlugin, createTestRegistry } from "../../test-utils/channel-plugins.js";
import { isWhatsAppGroupJid, normalizeWhatsAppTarget } from "../../whatsapp/normalize.js";
import {
resolveHeartbeatDeliveryTarget,
resolveOutboundTarget,
@@ -12,31 +10,19 @@ import {
} from "./targets.js";
import type { SessionDeliveryTarget } from "./targets.js";
import {
inferTelegramTestChatType,
installResolveOutboundTargetPluginRegistryHooks,
parseTelegramTestMessagingTarget,
runResolveOutboundTargetCoreTests,
telegramOutboundStub,
whatsappOutboundStub,
} from "./targets.shared-test.js";
import {
createNoopOutboundChannelPlugin,
createTargetsTestRegistry,
createTelegramTestPlugin,
createWhatsAppTestPlugin,
telegramMessagingForTest,
} from "./targets.test-helpers.js";
runResolveOutboundTargetCoreTests();
const telegramMessaging = {
parseExplicitTarget: ({ raw }: { raw: string }) => parseTelegramTestMessagingTarget(raw),
inferTargetChatType: ({ to }: { to: string }) => inferTelegramTestChatType(to),
};
const whatsappMessaging = {
inferTargetChatType: ({ to }: { to: string }) => {
const normalized = normalizeWhatsAppTarget(to);
if (!normalized) {
return undefined;
}
return isWhatsAppGroupJid(normalized) ? ("group" as const) : ("direct" as const);
},
};
const noopOutbound = (channel: "discord" | "imessage" | "slack"): ChannelOutboundAdapter => ({
deliveryMode: "direct",
sendText: async () => ({ channel, messageId: `${channel}-msg` }),
@@ -44,40 +30,21 @@ const noopOutbound = (channel: "discord" | "imessage" | "slack"): ChannelOutboun
beforeEach(() => {
setActivePluginRegistry(
createTestRegistry([
createTargetsTestRegistry([
{
pluginId: "discord",
plugin: createOutboundTestPlugin({ id: "discord", outbound: noopOutbound("discord") }),
source: "test",
...createNoopOutboundChannelPlugin("discord"),
outbound: noopOutbound("discord"),
},
{
pluginId: "imessage",
plugin: createOutboundTestPlugin({ id: "imessage", outbound: noopOutbound("imessage") }),
source: "test",
...createNoopOutboundChannelPlugin("imessage"),
outbound: noopOutbound("imessage"),
},
{
pluginId: "slack",
plugin: createOutboundTestPlugin({ id: "slack", outbound: noopOutbound("slack") }),
source: "test",
},
{
pluginId: "telegram",
plugin: createOutboundTestPlugin({
id: "telegram",
outbound: telegramOutboundStub,
messaging: telegramMessaging,
}),
source: "test",
},
{
pluginId: "whatsapp",
plugin: createOutboundTestPlugin({
id: "whatsapp",
outbound: whatsappOutboundStub,
messaging: whatsappMessaging,
}),
source: "test",
...createNoopOutboundChannelPlugin("slack"),
outbound: noopOutbound("slack"),
},
createTelegramTestPlugin(),
createWhatsAppTestPlugin(),
]),
);
});
@@ -135,7 +102,7 @@ describe("resolveOutboundTarget defaultTo config fallback", () => {
});
it("falls back to the active registry when the cached channel map is stale", () => {
const registry = createTestRegistry([]);
const registry = createTargetsTestRegistry([]);
setActivePluginRegistry(registry, "stale-registry-test");
// Warm the cached channel map before mutating the registry in place.
@@ -145,11 +112,7 @@ describe("resolveOutboundTarget defaultTo config fallback", () => {
registry.channels.push({
pluginId: "telegram",
plugin: createOutboundTestPlugin({
id: "telegram",
outbound: telegramOutboundStub,
messaging: telegramMessaging,
}),
plugin: createTelegramTestPlugin(),
source: "test",
});
@@ -380,7 +343,7 @@ describe("resolveSessionDeliveryTarget", () => {
});
it("keeps raw :topic: targets when the telegram plugin registry is unavailable", () => {
setActivePluginRegistry(createTestRegistry([]));
setActivePluginRegistry(createTargetsTestRegistry([]));
const resolved = resolveSessionDeliveryTarget({
entry: {

View File

@@ -7,12 +7,26 @@ import type {
SessionBindingAdapter,
SessionBindingRecord,
} from "../infra/outbound/session-binding-service.js";
import { createEmptyPluginRegistry } from "./registry-empty.js";
import { setActivePluginRegistry } from "./runtime.js";
const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-plugin-binding-"));
const approvalsPath = path.join(tempRoot, "plugin-binding-approvals.json");
type PluginBindingRegistryStub = {
conversationBindingResolvedHandlers: Array<{
pluginId: string;
pluginRoot?: string;
handler: (event: unknown) => void | Promise<void>;
source: string;
rootDir?: string;
}>;
};
function createEmptyPluginRegistry(): PluginBindingRegistryStub {
return {
conversationBindingResolvedHandlers: [],
};
}
const sessionBindingState = vi.hoisted(() => {
const records = new Map<string, SessionBindingRecord>();
let nextId = 1;
@@ -83,6 +97,10 @@ const sessionBindingState = vi.hoisted(() => {
};
});
const pluginRuntimeState = vi.hoisted(() => ({
registry: createEmptyPluginRegistry() as PluginBindingRegistryStub,
}));
vi.mock("../infra/home-dir.js", async (importOriginal) => {
const actual = await importOriginal<typeof import("../infra/home-dir.js")>();
return {
@@ -96,6 +114,13 @@ vi.mock("../infra/home-dir.js", async (importOriginal) => {
};
});
vi.mock("./runtime.js", () => ({
getActivePluginRegistry: () => pluginRuntimeState.registry,
setActivePluginRegistry: (registry: PluginBindingRegistryStub) => {
pluginRuntimeState.registry = registry;
},
}));
const {
__testing,
buildPluginBindingApprovalCustomId,
@@ -107,6 +132,7 @@ const {
} = await import("./conversation-binding.js");
const { registerSessionBindingAdapter, unregisterSessionBindingAdapter } =
await import("../infra/outbound/session-binding-service.js");
const { setActivePluginRegistry } = await import("./runtime.js");
type PluginBindingRequest = Awaited<ReturnType<typeof requestPluginConversationBinding>>;
type ConversationBindingModule = typeof import("./conversation-binding.js");

View File

@@ -1,452 +1,321 @@
{
"base": {
"threadPinned": [
{
"file": "src/commands/backup.test.ts",
"reason": "Measured ~16% faster under threads than forks on base config after removing process.chdir() from the test."
},
{
"file": "src/auto-reply/reply/commands-acp/install-hints.test.ts",
"reason": "Measured ~35% faster under threads than forks on base config after removing process.chdir() from the test."
},
{
"file": "src/agents/pi-extensions/compaction-safeguard.test.ts",
"reason": "Measured ~27% faster under threads than forks on base config after removing process.chdir() from the test."
}
]
},
"unit": {
"isolated": [
{
"file": "src/plugins/contracts/runtime.contract.test.ts",
"reason": "Async runtime imports + provider refresh seams; keep out of the shared lane."
},
{
"file": "src/security/temp-path-guard.test.ts",
"reason": "Filesystem guard scans are sensitive to contention."
},
{
"file": "src/infra/git-commit.test.ts",
"reason": "Mutates process.cwd() and core loader seams."
},
{
"file": "src/config/doc-baseline.integration.test.ts",
"reason": "Rebuilds bundled config baselines through many channel schema subprocesses; keep out of the shared lane."
},
{
"file": "extensions/imessage/src/monitor.shutdown.unhandled-rejection.test.ts",
"reason": "Touches process-level unhandledRejection listeners."
},
{
"file": "src/secrets/runtime.integration.test.ts",
"reason": "Passes alone but flakes in the shared fork lane; keep it in a dedicated fork worker."
}
],
"forkBatched": [],
"threadPinned": [
"singletonIsolated": [
{
"file": "test/git-hooks-pre-commit.test.ts",
"reason": "Measured ~12% faster under threads than forks on base config while keeping the file green."
"file": "src/cli/command-secret-gateway.test.ts",
"reason": "Clean in isolation, but can hang after sharing the broad lane."
},
{
"file": "test/web-search-provider-boundary.test.ts",
"reason": "Measured ~13% faster under threads than forks on base config while keeping the boundary checks green."
},
{
"file": "test/scripts/test-runner-manifest.test.ts",
"reason": "Measured ~10% faster under threads than forks on base config while keeping the manifest routing checks green."
},
{
"file": "test/architecture-smells.test.ts",
"reason": "Measured ~14% faster under threads than forks on base config while keeping the architecture guardrails green."
},
{
"file": "test/scripts/test-extension.test.ts",
"reason": "Measured ~10% faster under threads than forks on base config while keeping the extension script checks green."
},
{
"file": "test/vitest-unit-config.test.ts",
"reason": "Measured ~13% faster under threads than forks on base config while keeping the Vitest config checks green."
},
{
"file": "test/release-check.test.ts",
"reason": "Measured ~11% faster under threads than forks on base config while keeping the release checks green."
},
{
"file": "src/cli/secrets-cli.test.ts",
"reason": "Measured ~11% faster under threads than forks on base config while keeping secrets CLI coverage green."
},
{
"file": "src/cli/plugin-registry.test.ts",
"reason": "Measured ~11% faster under threads than forks on base config while keeping plugin registry CLI coverage green."
},
{
"file": "src/cli/route.test.ts",
"reason": "Measured ~12% faster under threads than forks on base config while keeping route CLI coverage green."
},
{
"file": "src/cli/exec-approvals-cli.test.ts",
"reason": "Measured ~15% faster under threads than forks on base config while keeping approvals CLI coverage green."
},
{
"file": "src/cli/browser-cli-manage.timeout-option.test.ts",
"reason": "Measured ~14% faster under threads than forks on base config while keeping browser manage timeout coverage green."
},
{
"file": "src/cli/browser-cli-manage.test.ts",
"reason": "Measured ~14% faster under threads than forks on base config while keeping browser manage coverage green."
},
{
"file": "src/cli/deps.test.ts",
"reason": "Measured ~81% faster under threads than forks on base config while keeping dependency checks green."
},
{
"file": "src/cli/nodes-cli.coverage.test.ts",
"reason": "Measured ~12% faster under threads than forks on base config while keeping nodes CLI coverage green."
},
{
"file": "src/cli/daemon-cli/restart-health.test.ts",
"reason": "Measured ~35% faster under threads than forks on base config while keeping daemon restart health coverage green."
},
{
"file": "src/cli/program/config-guard.test.ts",
"reason": "Measured ~14% faster under threads than forks on base config while keeping program config guard coverage green."
},
{
"file": "src/cli/update-cli/restart-helper.test.ts",
"reason": "Measured ~12% faster under threads than forks on base config while keeping update restart helper coverage green."
},
{
"file": "src/cli/security-cli.test.ts",
"reason": "Measured ~31% faster under threads than forks on base config while keeping security CLI coverage green."
},
{
"file": "src/cli/channel-options.test.ts",
"reason": "Measured ~13% faster under threads than forks on base config while keeping channel options coverage green."
},
{
"file": "src/cli/log-level-option.test.ts",
"reason": "Measured ~11% faster under threads than forks on base config while keeping log level option coverage green."
},
{
"file": "src/cli/plugin-install-plan.test.ts",
"reason": "Measured ~14% faster under threads than forks on base config while keeping plugin install planning coverage green."
},
{
"file": "src/cli/memory-cli.test.ts",
"reason": "Measured ~50% faster under threads than forks on base config while keeping memory CLI coverage green."
},
{
"file": "src/cli/program.nodes-test-helpers.test.ts",
"reason": "Measured ~22% faster under threads than forks on base config while keeping nodes test helper coverage green."
},
{
"file": "src/cli/skills-cli.test.ts",
"reason": "Measured ~27% faster under threads than forks on base config while keeping skills CLI coverage green."
},
{
"file": "src/cli/run-main.exit.test.ts",
"reason": "Measured ~12% faster under threads than forks on base config while keeping run-main exit coverage green."
},
{
"file": "src/cli/completion-fish.test.ts",
"reason": "Measured ~41% faster under threads than forks on base config while keeping fish completion coverage green."
},
{
"file": "src/cli/config-set-mode.test.ts",
"reason": "Measured ~11% faster under threads than forks on base config while keeping config set mode coverage green."
},
{
"file": "src/cli/program/build-program.version-alias.test.ts",
"reason": "Measured ~13% faster under threads than forks on base config while keeping version alias coverage green."
},
{
"file": "src/cli/program/register.agent.test.ts",
"reason": "Measured ~11% faster under threads than forks on base config while keeping register agent coverage green."
},
{
"file": "test/scripts/test-parallel.test.ts",
"reason": "Measured ~44% faster under threads than forks on base config while keeping the parallel wrapper checks green."
},
{
"file": "test/scripts/test-find-thread-candidates.test.ts",
"reason": "Measured ~19% faster under threads than forks on base config while keeping the thread candidate helper checks green."
},
{
"file": "test/openclaw-npm-release-check.test.ts",
"reason": "Measured ~19% faster under threads than forks on base config while keeping the npm release checks green."
},
{
"file": "src/cli/pairing-cli.test.ts",
"reason": "Measured ~12% faster under threads than forks on base config while keeping pairing CLI coverage green."
},
{
"file": "src/cli/daemon-cli.coverage.test.ts",
"reason": "Measured ~11% faster under threads than forks on base config while keeping daemon CLI coverage green."
},
{
"file": "src/cli/config-set-input.test.ts",
"reason": "Measured ~43% faster under threads than forks on base config while keeping config set input coverage green."
},
{
"file": "src/cli/cron-cli.test.ts",
"reason": "Measured ~18% faster under threads than forks on base config while keeping cron CLI coverage green."
},
{
"file": "src/cli/plugins-config.test.ts",
"reason": "Measured ~15% faster under threads than forks on base config while keeping plugin config coverage green."
},
{
"file": "src/cli/program/register.configure.test.ts",
"reason": "Measured ~12% faster under threads than forks on base config while keeping register configure coverage green."
},
{
"file": "src/cli/program/command-tree.test.ts",
"reason": "Measured ~10% faster under threads than forks on base config while keeping command tree coverage green."
},
{
"file": "src/cli/program/register.subclis.test.ts",
"reason": "Measured ~11% faster under threads than forks on base config while keeping sub-CLI registration coverage green."
},
{
"file": "test/vitest-unit-paths.test.ts",
"reason": "Measured ~11% faster under threads than forks on base config while keeping unit path checks green."
},
{
"file": "test/scripts/check-channel-agnostic-boundaries.test.ts",
"reason": "Measured ~29% faster under threads than forks on base config while keeping channel-agnostic boundary checks green."
},
{
"file": "test/plugin-npm-release.test.ts",
"reason": "Measured ~10% faster under threads than forks on base config while keeping npm release checks green."
},
{
"file": "src/cli/daemon-cli-compat.test.ts",
"reason": "Measured ~12% faster under threads than forks on base config while keeping daemon CLI compatibility coverage green."
},
{
"file": "src/cli/program/command-registry.test.ts",
"reason": "Measured ~10% faster under threads than forks on base config while keeping command registry coverage green."
},
{
"file": "src/cli/program.force.test.ts",
"reason": "Measured ~14% faster under threads than forks on base config while keeping force option coverage green."
},
{
"file": "src/cli/cli-utils.test.ts",
"reason": "Measured ~15% faster under threads than forks on base config while keeping CLI utility coverage green."
},
{
"file": "src/cli/devices-cli.test.ts",
"reason": "Measured ~21% faster under threads than forks on base config while keeping devices CLI coverage green."
},
{
"file": "src/cli/message-secret-scope.test.ts",
"reason": "Measured ~16% faster under threads than forks on base config while keeping message secret scope coverage green."
},
{
"file": "src/cli/banner.test.ts",
"reason": "Measured ~30% faster under threads than forks on base config while keeping banner rendering coverage green."
},
{
"file": "src/cli/gateway-cli.coverage.test.ts",
"reason": "Measured ~18% faster under threads than forks on base config while keeping gateway CLI coverage green."
},
{
"file": "src/channels/plugins/actions/actions.test.ts",
"reason": "Terminates cleanly under threads, but not process forks on this host."
},
{
"file": "test/extension-plugin-sdk-boundary.test.ts",
"reason": "Measured ~12% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/hooks/install.test.ts",
"reason": "Measured ~14% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/hooks/plugin-hooks.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/hooks/hooks-install.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/hooks/workspace.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/hooks/loader.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugins/conversation-binding.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/hooks/bundled/session-memory/handler.test.ts",
"reason": "Measured ~16% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugin-sdk/subpaths.test.ts",
"reason": "Measured ~23% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugin-sdk/channel-import-guardrails.test.ts",
"reason": "Measured ~30% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugins/contracts/wizard.contract.test.ts",
"reason": "Measured ~9% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugins/contracts/auth-choice.contract.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/channels/plugins/contracts/outbound-payload.contract.test.ts",
"reason": "Measured ~15% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugins/install.test.ts",
"reason": "Measured ~18% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugins/interactive.test.ts",
"reason": "Measured ~9% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugins/marketplace.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugins/status.test.ts",
"reason": "Measured ~10% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugins/bundled-dir.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugins/sdk-alias.test.ts",
"reason": "Measured ~17% faster under threads than forks on this host after removing process.chdir() from the test."
},
{
"file": "src/config/config.plugin-validation.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/config/config.web-search-provider.test.ts",
"reason": "Measured ~14% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/config/config-misc.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
"file": "src/config/doc-baseline.integration.test.ts",
"reason": "Builds the full bundled config schema graph and is safer outside the shared unit-fast heap."
},
{
"file": "src/config/schema.help.quality.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
"reason": "Help quality coverage loads a broad schema/help data graph and retained a top shared unit-fast heap spike on Linux CI."
},
{
"file": "src/config/sessions/store.pruning.integration.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
"file": "src/secrets/runtime.test.ts",
"reason": "Secrets runtime coverage retained the largest unit-fast heap spike in CI and is safer outside the shared lane."
},
{
"file": "src/config/sessions.test.ts",
"reason": "Measured ~16% faster under threads than forks on this host while keeping the file green."
"file": "src/secrets/runtime.integration.test.ts",
"reason": "Secrets runtime activation/write-through integration coverage is CPU-heavy and safer outside the shared unit-fast lane."
},
{
"file": "src/config/sessions/store.pruning.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
"file": "src/memory/index.test.ts",
"reason": "Memory index coverage retained nearly 1 GiB in unit-fast on Linux CI and is safer in its own fork."
},
{
"file": "src/config/sessions/sessions.test.ts",
"reason": "Measured ~14% faster under threads than forks on this host while keeping the file green."
"file": "src/plugins/http-registry.test.ts",
"reason": "Plugin HTTP registry coverage retained a broad plugin graph in unit-fast and is safer outside the shared lane."
},
{
"file": "src/config/sessions/targets.test.ts",
"reason": "Measured ~12% faster under threads than forks on this host while keeping the file green."
"file": "src/infra/channel-summary.test.ts",
"reason": "Channel summary coverage retained a large channel/plugin graph in unit-fast on Linux CI."
},
{
"file": "src/config/config.nix-integration-u3-u5-u9.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
"file": "src/config/redact-snapshot.test.ts",
"reason": "Snapshot redaction coverage produced a large retained heap jump in unit-fast on Linux CI."
},
{
"file": "src/config/config.legacy-config-detection.accepts-imessage-dmpolicy.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
"file": "src/config/redact-snapshot.restore.test.ts",
"reason": "Snapshot restore coverage retains a broad schema/redaction graph and is safer outside the shared lane."
},
{
"file": "src/cron/isolated-agent.uses-last-non-empty-agent-text-as.test.ts",
"reason": "Measured ~15% faster under threads than forks on this host while keeping the file green."
"file": "src/config/redact-snapshot.schema.test.ts",
"reason": "Schema-backed redaction round-trip coverage loads the full config schema graph and is safer outside the shared lane."
},
{
"file": "src/cron/isolated-agent.skips-delivery-without-whatsapp-recipient-besteffortdeliver-true.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
"file": "src/infra/outbound/message-action-runner.media.test.ts",
"reason": "Outbound media action coverage retained a large media/plugin graph in unit-fast."
},
{
"file": "src/cron/isolated-agent/run.cron-model-override.test.ts",
"reason": "Measured ~25% faster under threads than forks on this host while keeping the file green."
"file": "src/media-understanding/apply.echo-transcript.test.ts",
"reason": "Media understanding echo transcript coverage retained a large processing graph in unit-fast."
},
{
"file": "src/cron/isolated-agent/run.skill-filter.test.ts",
"reason": "Measured ~15% faster under threads than forks on this host while keeping the file green."
"file": "src/plugin-sdk/index.test.ts",
"reason": "Plugin SDK index coverage retained a broad export graph in unit-fast and is safer outside the shared lane."
},
{
"file": "src/cron/isolated-agent/run.owner-auth.test.ts",
"reason": "Measured ~19% faster under threads than forks on this host while keeping the file green."
"file": "src/plugin-sdk/index.bundle.test.ts",
"reason": "Plugin SDK bundle validation builds and imports the full bundled export graph and is safer outside the shared lane."
},
{
"file": "src/cron/isolated-agent.lane.test.ts",
"reason": "Measured ~14% faster under threads than forks on this host while keeping the file green."
"file": "src/config/sessions.cache.test.ts",
"reason": "Session cache coverage retained a large config/session graph in unit-fast on Linux CI."
},
{
"file": "src/cron/isolated-agent.direct-delivery-forum-topics.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
"file": "src/secrets/runtime.coverage.test.ts",
"reason": "Secrets runtime coverage tests retained substantial heap in unit-fast and are safer isolated."
},
{
"file": "src/cron/isolated-agent.auth-profile-propagation.test.ts",
"reason": "Measured ~22% faster under threads than forks on this host while keeping the file green."
"file": "src/channels/plugins/contracts/registry.contract.test.ts",
"reason": "Plugin contract registry coverage retained a large cross-plugin graph in both failing unit-fast shards."
},
{
"file": "src/cron/isolated-agent.delivers-response-has-heartbeat-ok-but-includes.test.ts",
"reason": "Measured ~12% faster under threads than forks on this host while keeping the file green."
"file": "src/memory/manager.get-concurrency.test.ts",
"reason": "Memory manager cache concurrency coverage can spike shared unit-fast heap on Linux Node 24."
},
{
"file": "src/cron/isolated-agent/delivery-dispatch.named-agent.test.ts",
"reason": "Measured ~14% faster under threads than forks on this host while keeping the file green."
"file": "src/memory/manager.vector-dedupe.test.ts",
"reason": "Vector dedupe coverage exercises the memory manager/sqlite stack and is safer outside shared unit-fast forks."
},
{
"file": "src/cron/isolated-agent.subagent-model.test.ts",
"reason": "Measured ~21% faster under threads than forks on this host while keeping the file green."
"file": "src/memory/manager.watcher-config.test.ts",
"reason": "Watcher config coverage reuses memory manager caches and is safer outside shared unit-fast forks."
},
{
"file": "src/cron/service.store-load-invalid-main-job.test.ts",
"reason": "Measured ~16% faster under threads than forks on this host while keeping the file green."
"file": "src/memory/manager.embedding-batches.test.ts",
"reason": "Embedding batch coverage inflates memory manager state and is safer outside shared unit-fast forks."
},
{
"file": "src/cron/service.store-migration.test.ts",
"reason": "Measured ~14% faster under threads than forks on this host while keeping the file green."
"file": "src/memory/manager.readonly-recovery.test.ts",
"reason": "Readonly recovery coverage exercises sqlite reopen flows and is safer outside shared unit-fast forks."
},
{
"file": "src/cron/service.failure-alert.test.ts",
"reason": "Measured ~17% faster under threads than forks on this host while keeping the file green."
"file": "src/acp/persistent-bindings.test.ts",
"reason": "Persistent bindings coverage retained a large unit-fast heap spike on Linux CI and is safer outside the shared lane."
},
{
"file": "src/cron/service.persists-delivered-status.test.ts",
"reason": "Measured ~15% faster under threads than forks on this host while keeping the file green."
"file": "src/channels/plugins/setup-wizard-helpers.test.ts",
"reason": "Setup wizard helper coverage retained the largest shared unit-fast heap spike on Linux Node 24 CI."
},
{
"file": "src/cron/session-reaper.test.ts",
"reason": "Measured ~12% faster under threads than forks on this host while keeping the file green."
"file": "src/cli/config-cli.integration.test.ts",
"reason": "Config CLI integration coverage retained a large shared unit-fast heap spike on Linux CI."
},
{
"file": "src/cron/service.session-reaper-in-finally.test.ts",
"reason": "Measured ~21% faster under threads than forks on this host while keeping the file green."
"file": "src/cli/config-cli.test.ts",
"reason": "Config CLI coverage retained a large shared unit-fast heap spike on Linux Node 24 CI."
},
{
"file": "src/plugins/loader.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
"file": "src/cli/plugins-cli.test.ts",
"reason": "Plugins CLI coverage retained a broad plugin graph in shared unit-fast forks on Linux CI."
},
{
"file": "src/plugins/discovery.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
"file": "src/config/plugin-auto-enable.test.ts",
"reason": "Plugin auto-enable coverage retained a large shared unit-fast heap spike on Linux Node 22 CI."
},
{
"file": "src/plugins/manifest-registry.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
"file": "src/cron/service.runs-one-shot-main-job-disables-it.test.ts",
"reason": "One-shot cron service coverage retained a top shared unit-fast heap spike in the March 19, 2026 Linux Node 22 OOM lane."
},
{
"file": "src/plugins/providers.test.ts",
"reason": "Measured ~10% faster under threads than forks on this host while keeping the file green."
"file": "src/cron/isolated-agent.direct-delivery-core-channels.test.ts",
"reason": "Direct-delivery isolated-agent coverage retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 OOM lane."
},
{
"file": "src/plugins/stage-bundled-plugin-runtime.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
"file": "src/cron/service.issue-regressions.test.ts",
"reason": "Issue regression cron coverage retained the largest shared unit-fast heap spike in the March 20, 2026 Linux Node 22 and Node 24 OOM lanes."
},
{
"file": "src/cron/store.test.ts",
"reason": "Cron store coverage retained a large shared unit-fast heap spike on Linux Node 24 CI."
},
{
"file": "src/context-engine/context-engine.test.ts",
"reason": "Context-engine coverage retained the largest shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 1 OOM lane."
},
{
"file": "src/acp/control-plane/manager.test.ts",
"reason": "ACP control-plane manager coverage retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 22 and Node 24 OOM lanes."
},
{
"file": "src/acp/translator.stop-reason.test.ts",
"reason": "ACP translator stop-reason coverage retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 2 OOM lane."
},
{
"file": "src/infra/exec-approval-forwarder.test.ts",
"reason": "Exec approval forwarder coverage retained a top shared unit-fast heap spike in the March 19, 2026 Linux Node 22 OOM lane."
},
{
"file": "src/infra/restart-stale-pids.test.ts",
"reason": "Restart-stale-pids coverage retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 1 OOM lane."
},
{
"file": "src/infra/heartbeat-runner.respects-ackmaxchars-heartbeat-acks.test.ts",
"reason": "Heartbeat ack max chars coverage retained a recurring shared unit-fast heap spike across Linux CI lanes."
},
{
"file": "src/infra/heartbeat-runner.returns-default-unset.test.ts",
"reason": "Heartbeat default-unset coverage retained a large shared unit-fast heap spike on Linux Node 22 CI."
},
{
"file": "src/infra/heartbeat-runner.ghost-reminder.test.ts",
"reason": "Mocks jiti at file scope, so it is safer outside shared Vitest workers."
},
{
"file": "src/infra/heartbeat-runner.transcript-prune.test.ts",
"reason": "Mocks jiti at file scope, so it is safer outside shared Vitest workers."
},
{
"file": "src/infra/heartbeat-runner.sender-prefers-delivery-target.test.ts",
"reason": "Mocks jiti at file scope, so it is safer outside shared Vitest workers."
},
{
"file": "src/infra/heartbeat-runner.model-override.test.ts",
"reason": "Mocks jiti at file scope, so it is safer outside shared Vitest workers."
},
{
"file": "src/plugins/loader.git-path-regression.test.ts",
"reason": "Constructs a real Jiti boundary and is safer outside shared workers that may have mocked jiti earlier."
},
{
"file": "src/infra/outbound/outbound-session.test.ts",
"reason": "Outbound session coverage retained a large shared unit-fast heap spike on Linux Node 22 CI."
},
{
"file": "src/infra/outbound/payloads.test.ts",
"reason": "Outbound payload coverage retained a large shared unit-fast heap spike on Linux Node 24 CI."
},
{
"file": "src/memory/manager.mistral-provider.test.ts",
"reason": "Mistral provider coverage retained a large shared unit-fast heap spike on Linux Node 24 CI."
},
{
"file": "src/memory/manager.batch.test.ts",
"reason": "Memory manager batch coverage retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 22 and Node 24 OOM lanes."
},
{
"file": "src/memory/qmd-manager.test.ts",
"reason": "QMD manager coverage retained recurring shared unit-fast heap spikes across Linux CI lanes."
},
{
"file": "src/media-understanding/providers/image.test.ts",
"reason": "Image provider coverage retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 2 OOM lane."
},
{
"file": "src/plugins/contracts/auth.contract.test.ts",
"reason": "Plugin auth contract coverage retained a large shared unit-fast heap spike on Linux Node 24 CI."
},
{
"file": "src/plugins/contracts/discovery.contract.test.ts",
"reason": "Plugin discovery contract coverage retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 1 OOM lane."
},
{
"file": "src/plugins/hooks.phase-hooks.test.ts",
"reason": "Phase hooks coverage retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 2 OOM lane."
},
{
"file": "src/channels/plugins/plugins-core.test.ts",
"reason": "Core plugin coverage retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 22 OOM lane."
},
{
"file": "src/secrets/apply.test.ts",
"reason": "Secrets apply coverage retained a large shared unit-fast heap spike on Linux Node 22 CI."
},
{
"file": "src/tui/tui-command-handlers.test.ts",
"reason": "TUI command handler coverage retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 2 OOM lane."
},
{
"file": "src/node-host/invoke-system-run.test.ts",
"reason": "Missing from unit timings and retained the largest shared unit-fast heap spike across the March 20, 2026 Linux Node 22 and Node 24 OOM lanes."
},
{
"file": "src/media-understanding/apply.test.ts",
"reason": "Missing from unit timings and retained a top shared unit-fast heap spike across the March 20, 2026 Linux Node 22 and Node 24 OOM lanes."
},
{
"file": "src/plugins/commands.test.ts",
"reason": "Missing from unit timings and retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 22 OOM lane."
},
{
"file": "src/infra/outbound/message-action-runner.plugin-dispatch.test.ts",
"reason": "Missing from unit timings and retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 22 OOM lane."
},
{
"file": "src/acp/translator.session-rate-limit.test.ts",
"reason": "Missing from unit timings and retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 22 OOM lane."
},
{
"file": "src/config/schema.hints.test.ts",
"reason": "Missing from unit timings and retained a recurring shared unit-fast heap spike across the March 20, 2026 Linux Node 22 and Node 24 OOM lanes."
},
{
"file": "src/tui/tui-event-handlers.test.ts",
"reason": "Missing from unit timings and retained the largest shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 1 OOM lane."
},
{
"file": "src/memory/manager.read-file.test.ts",
"reason": "Missing from unit timings and retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 1 OOM lane."
},
{
"file": "src/plugin-sdk/webhook-targets.test.ts",
"reason": "Missing from unit timings and retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 1 OOM lane."
},
{
"file": "src/daemon/systemd.test.ts",
"reason": "Missing from unit timings and retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 1 OOM lane."
},
{
"file": "src/cron/isolated-agent/delivery-target.test.ts",
"reason": "Missing from unit timings and retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 1 OOM lane."
},
{
"file": "src/cron/delivery.test.ts",
"reason": "Missing from unit timings and retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 2 OOM lane."
},
{
"file": "src/memory/manager.sync-errors-do-not-crash.test.ts",
"reason": "Missing from unit timings and retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 2 OOM lane."
},
{
"file": "src/tui/tui.test.ts",
"reason": "Missing from unit timings and retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 2 OOM lane."
},
{
"file": "src/cron/service.every-jobs-fire.test.ts",
"reason": "Missing from unit timings and retained a top shared unit-fast heap spike in the March 20, 2026 Linux Node 24 shard 2 OOM lane."
}
],
"threadSingleton": [
{
"file": "src/channels/plugins/actions/actions.test.ts",
"reason": "Terminates cleanly under threads, but not process forks on this host."
},
{
"file": "src/infra/outbound/deliver.test.ts",
@@ -468,226 +337,16 @@
"file": "src/infra/outbound/message-action-runner.context.test.ts",
"reason": "Terminates cleanly under threads, but not process forks on this host."
},
{
"file": "src/infra/provider-usage.test.ts",
"reason": "Measured ~17% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/git-commit.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host after removing process.chdir() from related thread-blocking tests."
},
{
"file": "src/infra/provider-usage.auth.normalizes-keys.test.ts",
"reason": "Measured ~12% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/provider-usage.auth.plugin.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/provider-usage.load.plugin.test.ts",
"reason": "Measured ~12% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/outbound/targets.test.ts",
"reason": "Measured ~14% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/outbound/agent-delivery.test.ts",
"reason": "Measured ~17% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/outbound/outbound-policy.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/outbound/outbound.test.ts",
"reason": "Measured ~14% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/update-runner.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/device-pairing.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/fs-pinned-write-helper.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/run-node.test.ts",
"reason": "Measured ~9% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/fs-safe.test.ts",
"reason": "Measured ~17% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/archive-staging.test.ts",
"reason": "Measured ~12% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/state-migrations.test.ts",
"reason": "Measured ~17% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/matrix-legacy-crypto.test.ts",
"reason": "Measured ~15% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/infra/matrix-migration-config.test.ts",
"reason": "Measured ~14% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/media/store.outside-workspace.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/media/input-files.fetch-guard.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/config/io.write-config.test.ts",
"reason": "Measured ~12% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/acp/server.startup.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/acp/client.test.ts",
"reason": "Measured ~18% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/acp/translator.cancel-scoping.test.ts",
"reason": "Measured ~10% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/node-host/invoke-browser.test.ts",
"reason": "Measured ~10% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/node-host/invoke-system-run-plan.test.ts",
"reason": "Measured ~10% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/cli/daemon-cli/install.integration.test.ts",
"reason": "Measured ~12% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/cli/mcp-cli.test.ts",
"reason": "Measured ~12% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/channels/channels-misc.test.ts",
"reason": "Measured ~12% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/channels/plugins/contracts/registry-backed.contract.test.ts",
"reason": "Measured ~19% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/pairing/setup-code.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/daemon/schtasks.startup-fallback.test.ts",
"reason": "Measured ~15% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/memory/embeddings.test.ts",
"reason": "Measured ~10% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/memory/batch-gemini.test.ts",
"reason": "Measured ~10% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/memory/embeddings-voyage.test.ts",
"reason": "Measured ~14% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/canvas-host/server.test.ts",
"reason": "Measured ~10% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugins/web-search-providers.runtime.test.ts",
"reason": "Measured ~17% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/plugins/contracts/registry.contract.test.ts",
"reason": "Measured ~14% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/media-understanding/runtime.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/media-understanding/resolve.test.ts",
"reason": "Measured ~9% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/media-understanding/runner.skip-tiny-audio.test.ts",
"reason": "Measured ~23% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/media-understanding/runner.proxy.test.ts",
"reason": "Measured ~55% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/media-understanding/runner.auto-audio.test.ts",
"reason": "Measured ~23% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/media-understanding/runner.video.test.ts",
"reason": "Measured ~25% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/secrets/audit.test.ts",
"reason": "Measured ~14% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/secrets/runtime-web-tools.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/entry.version-fast-path.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/security/audit.test.ts",
"reason": "Measured ~40% faster under threads than forks on this host while keeping the file green."
},
{
"file": "ui/src/ui/views/chat.test.ts",
"reason": "Measured ~25% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/tui/tui-session-actions.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/tui/gateway-chat.test.ts",
"reason": "Measured ~11% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/cli/program/preaction.test.ts",
"reason": "Measured ~21% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/cli/program.smoke.test.ts",
"reason": "Measured ~13% faster under threads than forks on this host while keeping the file green."
},
{
"file": "src/tts/tts.test.ts",
"reason": "Terminates cleanly under threads, but not process forks on this host."
}
],
"vmForkPinned": []
},
"extensions": {
"isolated": []
"vmForkSingleton": [
{
"file": "src/channels/plugins/contracts/inbound.telegram.contract.test.ts",
"reason": "Needs the vmForks lane when targeted."
}
]
}
}