FN-8271: restore quarantined CLI tests under shard load

Restore affected CLI and engine tests by removing load-amplifying fixture work and synchronizing fake-timer recovery.

- Replace the dist-barrel PostgreSQL fixture with an injected in-memory task store.
- Move mission and goal tool coverage to the shared PostgreSQL harness and complete plugin-store mocks.
- Return rescued CLI and heartbeat tests to default lanes and clear their quarantine records.

Files changed:
 .../src/__tests__/extension-dist-barrel.test.ts    | 90 ++++++++--------------
 .../__tests__/extension-mission-goal-tools.test.ts | 27 ++++---
 packages/cli/src/commands/__tests__/plugin.test.ts | 11 +++
 packages/cli/vitest.config.ts                      | 21 +----
 .../src/__tests__/heartbeat-error-recovery.test.ts | 33 ++++----
 packages/engine/vitest.config.ts                   |  7 +-
 scripts/lib/test-quarantine.json                   | 78 +------------------
 7 files changed, 84 insertions(+), 183 deletions(-)

Fusion-Task-Id: FN-8271

Fusion-Task-Lineage: 212a3ec7-db6b-4e80-97c3-1c704822cf60

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
This commit is contained in:
gsxdsm
2026-07-18 07:48:45 -07:00
parent 825e6c185c
commit afb2ed0650
7 changed files with 82 additions and 181 deletions

View File

@@ -1,8 +1,8 @@
import { describe, it, expect, vi, beforeAll, afterAll } from "vitest";
import { mkdir, rm } from "node:fs/promises";
import { mkdtemp, rm } from "node:fs/promises";
import { dirname, join, resolve } from "node:path";
import { tmpdir } from "node:os";
import { fileURLToPath, pathToFileURL } from "node:url";
import { setTimeout as delay } from "node:timers/promises";
/*
FNXC:CliTests 2026-07-04-13:50:
@@ -24,9 +24,8 @@ vi.mock("../commands/task.js", () => ({
runTaskPlan: vi.fn(),
}));
import { TaskStore, MAX_TASK_LIST_TEXT_CHARS } from "@fusion/core";
import { MAX_TASK_LIST_TEXT_CHARS, type Task, type TaskStore } from "@fusion/core";
import { hasBuiltCoreDistBarrel } from "@fusion/test-utils";
import { createTaskStoreForTest, pgDescribe, type PgTestHarness } from "../../../core/src/__test-utils__/pg-test-harness.js";
const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -74,68 +73,39 @@ function makeCtx(cwd: string) {
return { cwd } as any;
}
async function removeDirWithRetries(path: string) {
/*
FNXC:CliTests 2026-06-19-11:23:
FN-6734 showed fixture removal can race SQLite/WAL close on loaded CLI workers; retry cleanup long enough for handles to drain instead of masking test bodies with larger timeouts or worker limits.
*/
const maxAttempts = 12;
/*
FNXC:CliTests 2026-07-18-07:15:
FN-8271 removes the PG template-database fixture from this built-barrel regression guard. The tool only reads `listTasks`, so coupling its required dist recompilation to CREATE DATABASE ... TEMPLATE and twenty persistent writes made one beforeAll compete for both CPU and the shared PostgreSQL DDL server under shard-4 load. Keep the fixture in memory and inject it through the extension's explicit test cache seam: this preserves the actual fn_task_list formatting/truncation surface while leaving PG isolation coverage to the shared harness consumers that require it.
*/
const distBarrelTasks = Array.from({ length: 20 }, (_, index) => ({
id: `FN-${String(index + 1).padStart(3, "0")}`,
title: `Runtime-dist todo task ${String(index + 1).padStart(3, "0")} ${"x".repeat(300)}`,
description: `Runtime-dist todo task ${String(index + 1).padStart(3, "0")}`,
column: "todo",
dependencies: index === 0 ? [] : ["FN-001"],
paused: false,
steps: [],
currentStep: 0,
}) satisfies Partial<Task>) as Task[];
for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
try {
await rm(path, { recursive: true, force: true });
return;
} catch (error) {
const code = (error as NodeJS.ErrnoException).code;
if (code !== "ENOTEMPTY" && code !== "EBUSY") {
throw error;
}
const distBarrelListStore = {
listTasks: vi.fn(async () => distBarrelTasks),
} as unknown as TaskStore;
if (attempt === maxAttempts) {
throw error;
}
await delay(50 * attempt);
}
}
}
pgDescribe.skipIf(!hasBuiltCoreDistBarrel(resolve(__dirname, "../../../core/dist")))(
describe.skipIf(!hasBuiltCoreDistBarrel(resolve(__dirname, "../../../core/dist")))(
"fn pi extension (dist-barrel recompilation slice)",
() => {
let tmpDir: string;
let fixtureHarness: PgTestHarness | undefined;
let fixtureStore: TaskStore | undefined;
let listTool: RegisteredTool;
let closeRuntimeCachedStores: (() => Promise<void>) | undefined;
let runtimeDistArtifactUnavailable = false;
beforeAll(async () => {
fixtureHarness = await createTaskStoreForTest({ prefix: "fn_ext_dist_barrel" });
tmpDir = fixtureHarness.rootDir;
await mkdir(join(tmpDir, ".fusion"), { recursive: true });
fixtureStore = fixtureHarness.store;
await fixtureStore.updateSettings({ taskPrefix: "FN" });
const first = await fixtureStore.createTask({
title: `Runtime-dist todo task 001 ${"x".repeat(300)}`,
description: "Runtime-dist todo task 001",
column: "todo",
});
for (let i = 2; i <= 20; i += 1) {
await fixtureStore.createTask({
title: `Runtime-dist todo task ${String(i).padStart(3, "0")} ${"x".repeat(300)}`,
description: `Runtime-dist todo task ${String(i).padStart(3, "0")}`,
column: "todo",
dependencies: [first.id],
});
}
tmpDir = await mkdtemp(join(tmpdir(), "fn-ext-dist-barrel-"));
/*
FNXC:CliTests 2026-07-16-06:27:
FN-8093 rescues the dist-barrel guard by doing its entire CPU-bound recompilation unit and PostgreSQL fixture seeding once in beforeAll, outside each default-5s test body. The dynamic dist extension cannot bootstrap its PostgreSQL backend because its dist migration artifacts are absent, so inject this external fixture store through that module instance's own cache API. Its cache cleanup does not own external stores; afterAll closes the dynamic cache, then this store, before removing the temp root.
FNXC:CliTests 2026-07-16-06:27:
The synchronous barrel predicate covers its direct artifacts but cannot prove every transitive runtime import exists. beforeAll receives no Vitest test context, so record ERR_MODULE_NOT_FOUND here and have each test use its own context to skip cleanly instead of calling a nonexistent suite-hook ctx.skip().
FNXC:CliTests 2026-07-18-07:15:
The remaining beforeAll work is only built-dist recompilation. The synchronous barrel predicate covers its direct artifacts but cannot prove every transitive runtime import exists, so record ERR_MODULE_NOT_FOUND here and let each test use its own context to skip cleanly instead of calling a nonexistent suite-hook ctx.skip(). The list-only injected fixture has no connection or file handles; close the runtime cache before removing its temporary project root.
*/
try {
vi.resetModules();
@@ -148,7 +118,7 @@ pgDescribe.skipIf(!hasBuiltCoreDistBarrel(resolve(__dirname, "../../../core/dist
closeRuntimeCachedStores = runtimeModule.closeCachedStores;
const runtimeApi = createMockAPI();
runtimeModule.default(runtimeApi);
runtimeModule.__setCachedStoreForTesting(resolve(tmpDir), fixtureStore);
runtimeModule.__setCachedStoreForTesting(resolve(tmpDir), distBarrelListStore);
listTool = runtimeApi.tools.get("fn_task_list")!;
} catch (error) {
const code = error instanceof Error && "code" in error
@@ -165,12 +135,10 @@ pgDescribe.skipIf(!hasBuiltCoreDistBarrel(resolve(__dirname, "../../../core/dist
afterAll(async () => {
try {
await closeRuntimeCachedStores?.();
await fixtureStore?.close();
if (tmpDir) {
await removeDirWithRetries(tmpDir);
await rm(tmpDir, { recursive: true, force: true });
}
} finally {
await fixtureHarness?.teardown();
vi.doUnmock("@fusion/core");
vi.resetModules();
}
@@ -207,6 +175,8 @@ pgDescribe.skipIf(!hasBuiltCoreDistBarrel(resolve(__dirname, "../../../core/dist
expect(broadResult.content[0].type).toBe("text");
expect(broadText.length).toBeLessThanOrEqual(MAX_TASK_LIST_TEXT_CHARS);
expect(broadText).toContain("Todo (20):");
expect(broadText).toContain("FN-001");
expect(broadText).toContain("[deps: FN-001]");
expect(broadText).toContain("truncated to fit; narrow with column/limit");
});

View File

@@ -1,8 +1,6 @@
import { afterEach, beforeEach, describe, expect, it } from "vitest";
import { mkdtemp, mkdir, rm } from "node:fs/promises";
import { join } from "node:path";
import { tmpdir } from "node:os";
import kbExtension, { closeCachedStores } from "../extension.js";
import { afterAll, afterEach, beforeAll, beforeEach, expect, it } from "vitest";
import { createSharedPgTaskStoreTestHarness, pgDescribe } from "../../../core/src/__test-utils__/pg-test-harness.js";
import kbExtension, { __setCachedStoreForTesting, closeCachedStores } from "../extension.js";
interface RegisteredTool {
name: string;
@@ -42,22 +40,33 @@ function makeCtx(cwd: string) {
return { cwd } as any;
}
describe("extension mission goal tools", () => {
/*
FNXC:CliTests 2026-07-18-07:45:
FN-8271 restores this shard-4 collateral suite with the shared external PostgreSQL harness. Booting an embedded postmaster per test raced its own initialization and leaked child processes under the loaded CLI lane; inject the harness store through the extension test seam so tool coverage keeps real mission/goal persistence while one database is reset safely between cases.
*/
const h = createSharedPgTaskStoreTestHarness({ prefix: "fn_mission_goal_tools" });
pgDescribe("extension mission goal tools", () => {
let tmpDir: string;
let api: ReturnType<typeof createMockAPI>;
beforeAll(h.beforeAll);
beforeEach(async () => {
tmpDir = await mkdtemp(join(tmpdir(), "kb-mission-goal-tools-"));
await mkdir(join(tmpDir, ".fusion"), { recursive: true });
await h.beforeEach();
tmpDir = h.rootDir();
__setCachedStoreForTesting(tmpDir, h.store());
api = createMockAPI();
kbExtension(api);
});
afterEach(async () => {
await closeCachedStores();
await rm(tmpDir, { recursive: true, force: true });
await h.afterEach();
});
afterAll(h.afterAll);
it("registers mission goal tools with schemas", () => {
expect(api.tools.get("fn_mission_list_goals")?.parameters).toMatchObject({
type: "object",

View File

@@ -30,6 +30,7 @@ const mocks = vi.hoisted(() => {
listPlugins: ReturnType<typeof vi.fn>;
getPlugin: ReturnType<typeof vi.fn>;
updatePluginSettings: ReturnType<typeof vi.fn>;
close: ReturnType<typeof vi.fn>;
}> = [];
let loaderTaskStore: { getRootDir?: () => string } | undefined;
@@ -50,6 +51,7 @@ const mocks = vi.hoisted(() => {
listPlugins: vi.fn().mockResolvedValue([]),
getPlugin: vi.fn(),
updatePluginSettings: vi.fn().mockResolvedValue(undefined),
close: vi.fn().mockResolvedValue(undefined),
};
pluginStoreInstances.push(instance);
return instance;
@@ -87,6 +89,13 @@ const mocks = vi.hoisted(() => {
vi.mock("@fusion/core", () => ({
PluginStore: mocks.PluginStore,
PluginLoader: mocks.PluginLoader,
CentralCore: vi.fn(function CentralCore() {
return {
init: vi.fn().mockResolvedValue(undefined),
close: vi.fn().mockResolvedValue(undefined),
asyncLayer: undefined,
};
}),
validatePluginManifest: vi.fn().mockReturnValue({ valid: true, errors: [] }),
resolveGlobalDir: vi.fn().mockReturnValue("/tmp/fusion-global"),
}));
@@ -272,6 +281,7 @@ describe("plugin commands", () => {
.mockResolvedValueOnce({ id: "paperclip-runtime", name: "Paperclip Runtime", enabled: true, state: "started" })
.mockResolvedValueOnce({ id: "paperclip-runtime", name: "Paperclip Runtime", enabled: true, state: "error", lastSecurityScan: { verdict: "blocked", summary: "blocked", findings: [], scannedAt: "now", scannedFiles: [] } }),
updatePluginSettings: vi.fn().mockResolvedValue(undefined),
close: vi.fn().mockResolvedValue(undefined),
};
mocks.PluginStore.mockImplementationOnce(() => storeInstance as never);
mocks.PluginLoader.mockImplementationOnce(() => ({ loadPlugin: vi.fn(), reloadPlugin: vi.fn().mockResolvedValue(undefined) }) as never);
@@ -291,6 +301,7 @@ describe("plugin commands", () => {
settings: { enabled: true, retries: 2 },
}),
updatePluginSettings: vi.fn().mockResolvedValue(undefined),
close: vi.fn().mockResolvedValue(undefined),
};
mocks.PluginStore.mockImplementationOnce(() => storeInstance as never);
await runPluginSettings("paperclip-runtime", undefined, undefined, { projectName: "demo" });

View File

@@ -99,26 +99,9 @@ const quarantinedCliTests: string[] = [
FN-8077 removed project-context.test.ts from this list and the ledger in lockstep. Its CentralCore coverage now uses the external PostgreSQL test harness under pgDescribe rather than launching an embedded postmaster for each test in forked loaded lanes; pure formatting coverage remains ungated.
*/
/*
FNXC:CliTests 2026-07-18-08:50:
Full-suite shard 4 (runs 29637256028, 29637376023) re-exposed package-lane cascade:
extension-dist-barrel beforeAll hookTimeout under PG load, plus lock-retry timeouts,
cascading 87 failures. Quarantine the observed integration-heavy files on sight in
lockstep with scripts/lib/test-quarantine.json — do not raise hookTimeout/testTimeout.
FNXC:CliTests 2026-07-18-07:30:
FN-8271 rescued the shard-4 cascade after removing unrelated PostgreSQL template-copy and persistent-seeding work from extension-dist-barrel's built-dist hook. All fourteen affected CLI files return to the default lane with their matching quarantine-ledger rows removed; retain normal worker budgets and timeout defaults rather than reintroducing appeasement.
*/
"src/__tests__/bin.test.ts",
"src/__tests__/extension-agent-update.test.ts",
"src/__tests__/extension-dist-barrel.test.ts",
"src/__tests__/extension-goal-tools.test.ts",
"src/__tests__/extension-mission-goal-tools.test.ts",
"src/__tests__/extension-tool-timeout.test.ts",
"src/__tests__/extension-workflow-tools.test.ts",
"src/__tests__/extension.test.ts",
"src/__tests__/task-plan.test.ts",
"src/commands/__tests__/mcp-lock-retry.test.ts",
"src/commands/__tests__/plugin.test.ts",
"src/commands/__tests__/task-lock-retry.test.ts",
"src/commands/dashboard-tui/__tests__/app.test.tsx",
"src/commands/dashboard-tui/__tests__/terminal-attach.test.ts",
];
/*

View File

@@ -455,9 +455,12 @@ describe("HeartbeatMonitor error-state recovery", () => {
vi.useFakeTimers();
try {
let calls = 0;
let resolveFirstPrompt!: () => void;
const firstPromptStarted = new Promise<void>((resolve) => { resolveFirstPrompt = resolve; });
const session = createSession(async () => {
calls += 1;
if (calls === 1) {
resolveFirstPrompt();
throw new Error('Error: 401 {"type":"error","error":{"type":"authentication_error","message":"Invalid authentication credentials"},"request_id":"req_011CcxRi9mwx1NrZmX9qN7p2"}');
}
});
@@ -466,12 +469,13 @@ describe("HeartbeatMonitor error-state recovery", () => {
const taskStore = createNoTaskStore();
const monitor = new HeartbeatMonitor({ store, taskStore, rootDir: process.cwd() });
let settled = false;
const heartbeat = monitor.executeHeartbeat({ agentId: store.agent.id, source: "timer" }).finally(() => { settled = true; });
// Flat transient-auth retry delay is ~5s ±10% jitter; advance fake time until the run settles.
for (let i = 0; i < 30 && !settled; i++) {
await vi.advanceTimersByTimeAsync(1_000);
}
const heartbeat = monitor.executeHeartbeat({ agentId: store.agent.id, source: "timer" });
await firstPromptStarted;
/*
FNXC:EngineTests 2026-07-18-07:25:
FN-8271 replaces thirty one-second fake-timer polls with an explicit first-prompt synchronization followed by one deterministic timer drain. Waiting for the initial mocked prompt guarantees the transient-auth retry timer exists before `runAllTimersAsync`, avoiding thirty real async yields under shard load.
*/
await vi.runAllTimersAsync();
await heartbeat;
expect(session.prompt).toHaveBeenCalledTimes(2);
@@ -489,17 +493,20 @@ describe("HeartbeatMonitor error-state recovery", () => {
vi.useFakeTimers();
try {
const rotation401 = 'Error: 401 {"type":"error","error":{"type":"authentication_error","message":"Invalid authentication credentials"},"request_id":"req_011CcxRi9mwx1NrZmX9qN7p2"}';
mockedCreateFnAgent.mockResolvedValueOnce(createSession(async () => { throw new Error(rotation401); }) as never);
let resolveFirstPrompt!: () => void;
const firstPromptStarted = new Promise<void>((resolve) => { resolveFirstPrompt = resolve; });
mockedCreateFnAgent.mockResolvedValueOnce(createSession(async () => {
resolveFirstPrompt();
throw new Error(rotation401);
}) as never);
const store = createAgentStore(baseAgent({ state: "active", lastError: undefined }));
const taskStore = createNoTaskStore();
const monitor = new HeartbeatMonitor({ store, taskStore, rootDir: process.cwd() });
let settled = false;
const heartbeat = monitor.executeHeartbeat({ agentId: store.agent.id, source: "timer" }).finally(() => { settled = true; });
// Exhaust the in-run transient-auth retry budget (2 retries × ~5s) on fake time.
for (let i = 0; i < 30 && !settled; i++) {
await vi.advanceTimersByTimeAsync(1_000);
}
const heartbeat = monitor.executeHeartbeat({ agentId: store.agent.id, source: "timer" });
await firstPromptStarted;
// Exhaust the known two-retry transient-auth budget in one deterministic fake-time drain.
await vi.runAllTimersAsync();
await heartbeat;
expect(store.agent.state).toBe("error");

View File

@@ -298,12 +298,9 @@ export default defineConfig({
// FNXC:PgMigrationQuarantine 2026-07-18-04:30: FN-8270 rescued the final seven VAL-REMOVAL-005 holdouts by awaiting PG audit reads and modeling async collaborators. Their paired ledger entries and excludes were removed only after targeted green runs.
// FNXC:WorkflowStepInstancePersistence 2026-07-16-20:35: FN-8157 restores this PG-backed foreach suite through async store persistence, so it must execute in engine-default.
/*
FNXC:EngineTests 2026-07-18-08:15:
heartbeat-error-recovery timed out at 30s on full-suite shard 1
(run 29636550951) for the rotation-shaped 401 recovery case under
load without product-bug evidence — quarantine on sight per AGENTS.md.
FNXC:EngineTests 2026-07-18-07:30:
FN-8271 restored heartbeat-error-recovery to engine-default after synchronizing on its first mocked prompt and draining the known retry timers once. This removes the load-amplified thirty-yield fake-timer poll without changing the 30s test timeout or recovery assertions; its matching quarantine-ledger row is removed in lockstep.
*/
"src/__tests__/heartbeat-error-recovery.test.ts",
/*
FNXC:EngineTests 2026-06-14-02:11:
FN-6433 rescued the AI-merge suites by replacing broad activeSessionRegistry cleanup with path-scoped cleanup, so the default engine lane should execute them again. The soft-delete blocker residue suite was deleted under the ratchet because deterministic soft-delete deadlock coverage already owns that invariant.

View File

@@ -1,80 +1,4 @@
{
"$comment": "Flaky-test quarantine ledger (deletion ratchet — see AGENTS.md 'Flaky tests: quarantine on sight' and docs/testing.md 'Quarantine ledger and the deletion ratchet'). A test observed failing without a corresponding real bug is quarantined ON SIGHT: add an entry here AND a matching one-line `exclude` entry in that package's vitest config, in the same commit. Every entry needs a non-empty `reason` (link the failing run) and a `quarantinedAt` date — the entry expires 14 days later, at which point the test file is DELETED unless someone rescues it with evidence it catches real regressions plus a root-cause fix (never appeasement). There is deliberately no loader module and no automation around this file: it is a dated record, the vitest config is the enforcement.",
"entries": [
{
"file": "packages/engine/src/__tests__/heartbeat-error-recovery.test.ts",
"reason": "Full-suite shard 1 timeout (30s) on rotation-shaped 401 recovery under load without product bug evidence. Failing run: https://github.com/Runfusion/Fusion/actions/runs/29636550951. Mirrored in packages/engine/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/__tests__/bin.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/__tests__/extension-agent-update.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/__tests__/extension-dist-barrel.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/__tests__/extension-goal-tools.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/__tests__/extension-mission-goal-tools.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/__tests__/extension-tool-timeout.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/__tests__/extension-workflow-tools.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/__tests__/extension.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/__tests__/task-plan.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/commands/__tests__/mcp-lock-retry.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/commands/__tests__/plugin.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/commands/__tests__/task-lock-retry.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/commands/dashboard-tui/__tests__/app.test.tsx",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
},
{
"file": "packages/cli/src/commands/dashboard-tui/__tests__/terminal-attach.test.ts",
"reason": "Full-suite shard 4 package-lane cascade (run 29637376023 / 29637256028): extension-dist-barrel beforeAll hookTimeout 10s + lock-retry 5s timeouts under shard load, cascading 87 failures across CLI integration suites without product-bug evidence. Quarantine on sight per AGENTS.md. Mirrored in packages/cli/vitest.config.ts.",
"quarantinedAt": "2026-07-18"
}
]
"entries": []
}