Restore the stable extension suite by quarantining only the dist-barrel recompilation case. - Move the built @fusion/core dist-barrel extension test into its own file. - Re-admit extension.test.ts while keeping the isolated dist-barrel file quarantined. - Update the quarantine ledger and velocity baseline to reflect the narrowed quarantine. Files changed: docs/test-velocity-baseline.md | 10 +- .../src/__tests__/extension-dist-barrel.test.ts | 230 +++++++++++++++++++++ packages/cli/src/__tests__/extension.test.ts | 103 +-------- packages/cli/vitest.config.ts | 5 +- scripts/lib/test-quarantine.json | 4 +- 5 files changed, 247 insertions(+), 105 deletions(-) Fusion-Task-Id: FN-7530 Fusion-Task-Lineage: 7b07540f-689b-4133-b590-a39427095397 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
11 lines
2.2 KiB
JSON
11 lines
2.2 KiB
JSON
{
|
|
"$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": [
|
|
{
|
|
"file": "packages/cli/src/__tests__/extension-dist-barrel.test.ts",
|
|
"reason": "FN-7530 RESCUE-by-split of the prior extension.test.ts entry: the dist-barrel fn_task_list test timed out at 5000ms in the full-suite shard 4/4 (run https://github.com/Runfusion/Fusion/actions/runs/28697507894) while passing locally in ~1.2s and in 3 of the 4 surrounding CI runs. Root-cause invariant: the test does in-test module recompilation (vi.resetModules + vi.importActual of the full @fusion/core dist barrel + a fresh dynamic import of extension.js) inside the default 5s test timeout; that work is CPU-bound and degrades non-linearly under 4-shard CI contention (same loaded-lane signature as FN-6483/FN-6705/FN-6795/FN-6839). Widening the timeout is forbidden by the flaky-test rule and removing the recompilation removes the test's only purpose. The sibling source-@fusion/core test 'bounds large column-filtered listings' (extension.test.ts) covers the identical truncation invariant, so this test's marginal coverage is dist-resolution only, which has been stable -- it is isolated rather than deleted. Isolating this single test into its own file let the ~68 otherwise-stable tests in extension.test.ts return to the default lane immediately; only this narrowly-scoped file remains quarantined under its own fresh clock.",
|
|
"quarantinedAt": "2026-07-04"
|
|
}
|
|
]
|
|
}
|