Fast execution mode now bypasses custom pre-merge workflow graph validation consistently. - Skip custom graph prompt, script, and gate nodes for fast-mode tasks while preserving human waits and CLI-agent work. - Add regression coverage for fast-mode custom workflow behavior and standard-mode/null-mode validation. - Document fast-mode workflow graph bypass behavior and record the published package changeset. - Quarantine the unrelated self-healing real-git flake from the engine core gate. Files changed: .changeset/FN-6226-fast-mode-workflows.md | 5 + docs/task-management.md | 6 +- docs/workflow-steps.md | 2 +- .../__tests__/executor-fast-mode-workflows.test.ts | 280 +++++++++++++++++++++ packages/engine/src/executor.ts | 16 ++ packages/engine/vitest.config.ts | 1 + scripts/lib/test-quarantine.json | 5 + 7 files changed, 313 insertions(+), 2 deletions(-) Fusion-Task-Id: FN-6226 Fusion-Task-Lineage: 68d88a7a-e157-4d18-a2c2-9065946066de
31 lines
2.8 KiB
JSON
31 lines
2.8 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/engine/src/__tests__/project-engine-manager.test.ts",
|
|
"reason": "Flake: setInterval-driven reconciliation races with vitest fake-timer contention under full reliability-suite load. Test passes standalone (~46ms) but times out (30s) when reliability-pool files are co-resident. FN-6206.",
|
|
"quarantinedAt": "2026-06-10"
|
|
},
|
|
{
|
|
"file": "packages/engine/src/__tests__/merger-file-scope-invariant.test.ts",
|
|
"reason": "Flake: vi.mock('node:child_process') occasionally doesn't take under workspace-concurrent runs, letting real git binary leak and report staged files unrelated to test scope (trips FileScopeViolationError). Same logic covered by real-git fixture tests in reliability-interactions/workflow-and-file-scope. FN-6206.",
|
|
"quarantinedAt": "2026-06-10"
|
|
},
|
|
{
|
|
"file": "packages/engine/src/__tests__/merger-file-scope-invariant.test.ts",
|
|
"reason": "Flake: same mock-contention mode as the sibling changeset-file test above (vi.mock('node:child_process') not taking under concurrent load). FN-6206.",
|
|
"quarantinedAt": "2026-06-10"
|
|
},
|
|
{
|
|
"file": "packages/engine/src/__tests__/merger-ai-cleanup.test.ts",
|
|
"reason": "Flake observed during FN-6206 verification: `pruneExistingAiMergeWorktrees skips active-session paths` failed in full `pnpm --filter @fusion/engine test` runs while the file passed standalone, indicating suite-order/concurrency sensitivity. Follow-up FN-6207.",
|
|
"quarantinedAt": "2026-06-10"
|
|
},
|
|
{
|
|
"file": "packages/engine/src/__tests__/self-healing-already-merged.real-git.test.ts",
|
|
"reason": "Flake observed during FN-6226 verification: full `pnpm --filter @fusion/engine test` expected two run-audit events but saw four after unrelated real-git/self-healing cleanup activity. The failure is outside fast-mode workflow changes and indicates suite-order/temp-state sensitivity.",
|
|
"quarantinedAt": "2026-06-10"
|
|
}
|
|
]
|
|
}
|