From 5ce577842ecf62faadb1af9ab1a2b9c807dc8e44 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Thu, 25 Jun 2026 17:02:29 -0700 Subject: [PATCH] test: quarantine 3 failing CI full-suite tests Quarantine three test files consistently failing on the non-blocking full-suite CI on main, per the AGENTS.md deletion-ratchet policy: - engine self-healing-fn-5488-fast-path-regressions.test.ts (shard 1) - engine in-review-merge-stall-deadlock-recovery.test.ts (shard 2) - dashboard DevServerView.mobile.test.tsx (shard 4) Each has a matching entry in scripts/lib/test-quarantine.json with the failing CI run link and quarantinedAt date. Tests will be deleted after 14 days unless rescued with a root-cause fix. --- packages/dashboard/vitest.config.ts | 8 +++++++- packages/engine/vitest.config.ts | 8 ++++++++ scripts/lib/test-quarantine.json | 18 +++++++++++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/packages/dashboard/vitest.config.ts b/packages/dashboard/vitest.config.ts index ab677a1f4b..fdd918cf4a 100644 --- a/packages/dashboard/vitest.config.ts +++ b/packages/dashboard/vitest.config.ts @@ -307,7 +307,13 @@ FN-6860 rescued dev-server-process by settling stdout detection and fallback-pro FNXC:DashboardTestQuarantine 2026-06-22-18:05: FN-6937 verified that FN-6860's claimed session-cross-tab ledger removal had not landed: the file was active because this exclude list was empty, but `test-quarantine.json` still carried the stale 2026-06-19 row. The repeated loaded `dashboard-api-quality-backfill` runs and lock-holder mutation proof confirmed FN-6742's rescue still holds, so remove the orphaned ledger row and keep this list empty to restore ledger↔config lockstep. */ -const quarantinedDashboardTests: string[] = []; +/* +FNXC:DashboardTestQuarantine 2026-06-25-09:50: +Quarantine DevServerView.mobile.test.tsx: CI full-suite shard 4/4 fails with 'expected +0 to be 1' on the mobile CSS structure assertion. Under the deletion ratchet — see scripts/lib/test-quarantine.json. +*/ +const quarantinedDashboardTests: string[] = [ + "app/components/__tests__/DevServerView.mobile.test.tsx", +]; const qualityApiTests = [ // Critical HTTP/server behavior: auth, task/project/settings mutation, diff --git a/packages/engine/vitest.config.ts b/packages/engine/vitest.config.ts index c084507b47..abb770c393 100644 --- a/packages/engine/vitest.config.ts +++ b/packages/engine/vitest.config.ts @@ -120,6 +120,14 @@ export default defineConfig({ // / `test:all` invoked from the root `test:full` script. "src/**/*.slow.test.ts", /* + FNXC:EngineTests 2026-06-25-09:50: + Quarantine self-healing-fn-5488-fast-path-regressions.test.ts: CI full-suite shard 1/4 fails with 'expected +0 to be 1' and 'this.store.parseFileScopeFromPrompt is not a function'. No corresponding source bug in recent changes. + Quarantine in-review-merge-stall-deadlock-recovery.test.ts: CI full-suite shard 2/4 fails with 'expected FN-5485 to be null'. Self-healing FN-5488 overlap blocker behavior is flaky under CI load. + Both under the deletion ratchet — see scripts/lib/test-quarantine.json. + */ + "src/__tests__/self-healing-fn-5488-fast-path-regressions.test.ts", + "src/__tests__/in-review-merge-stall-deadlock-recovery.test.ts", + /* FNXC:EngineTests 2026-06-16-19:05: FN-6492 verification caught cli-agent-executor as a package-lane-only flake: the hard-cancel assertion failed once and left an ENOTEMPTY temp hook directory, then the file passed in isolation. Quarantine the whole file under the deletion ratchet instead of weakening timing or process assertions. diff --git a/scripts/lib/test-quarantine.json b/scripts/lib/test-quarantine.json index 39eac9c428..9ac4f3f111 100644 --- a/scripts/lib/test-quarantine.json +++ b/scripts/lib/test-quarantine.json @@ -1,4 +1,20 @@ { "$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 exclude is the mechanism, and the sweep is policy executed by whoever touches the suite.", - "entries": [] + "entries": [ + { + "file": "packages/engine/src/__tests__/self-healing-fn-5488-fast-path-regressions.test.ts", + "reason": "Failing in CI full-suite shard 1/4: 'expected +0 to be 1' + 'this.store.parseFileScopeFromPrompt is not a function'. Run: https://github.com/Runfusion/Fusion/actions/runs/28206337202", + "quarantinedAt": "2026-06-25" + }, + { + "file": "packages/engine/src/__tests__/in-review-merge-stall-deadlock-recovery.test.ts", + "reason": "Failing in CI full-suite shard 2/4: 'expected FN-5485 to be null'. Run: https://github.com/Runfusion/Fusion/actions/runs/28206337202", + "quarantinedAt": "2026-06-25" + }, + { + "file": "packages/dashboard/app/components/__tests__/DevServerView.mobile.test.tsx", + "reason": "Failing in CI full-suite shard 4/4: 'expected +0 to be 1' (mobile CSS structure assertion). Run: https://github.com/Runfusion/Fusion/actions/runs/28206337202", + "quarantinedAt": "2026-06-25" + } + ] }