FN-7414: refresh test velocity quarantine baseline
Refresh the velocity baseline artifacts so live quarantine counts are reflected consistently. - Add regression coverage for live quarantine ledger counts overriding stale report and history values. - Update the weekly velocity baseline report to show the current quarantine count and deltas. - Append the latest measured velocity history row with quarantine count one. Files changed: docs/test-velocity-baseline.md | 22 ++--- scripts/__tests__/test-velocity-baseline.test.mjs | 75 +++++++++++++++ scripts/test-velocity-history.json | 112 ++++++++++++++++++++++ 3 files changed, 198 insertions(+), 11 deletions(-) Fusion-Task-Id: FN-7414 Fusion-Task-Lineage: 7c6cd47c-482d-426c-a714-79da33d4591d Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
This commit is contained in:
@@ -4,8 +4,8 @@
|
||||
|
||||
## Latest baseline
|
||||
|
||||
- Cycle: **2026-W26**
|
||||
- Captured at: **2026-06-27T05:43:17.293Z**
|
||||
- Cycle: **2026-W27**
|
||||
- Captured at: **2026-07-02T08:47:17.721Z**
|
||||
- Timing snapshot: `scripts/test-timings.json` captured at **2026-06-27T05:41:42.568Z**
|
||||
- Quarantine ledger: `scripts/lib/test-quarantine.json`
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
|
||||
| Metric | Current | Delta vs previous |
|
||||
|---|---:|---:|
|
||||
| Merge gate wall-time (`pnpm test:gate`) | 6.9s | -1.2s |
|
||||
| Boot smoke wall-time (`pnpm smoke:boot`) | 18.0s | +436ms |
|
||||
| Changed-only test wall-time (`pnpm test`) | 13.7s | n/a |
|
||||
| Quarantine / flake count | 0 | 0 |
|
||||
| Merge gate wall-time (`pnpm test:gate`) | 7.7s | +778ms |
|
||||
| Boot smoke wall-time (`pnpm smoke:boot`) | 17.4s | -557ms |
|
||||
| Changed-only test wall-time (`pnpm test`) | 9.3s | -4.4s |
|
||||
| Quarantine / flake count | 1 | +1 |
|
||||
| Deletion-due quarantines | 0 | n/a |
|
||||
|
||||
## Measurement failures
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
| Age bucket | Count |
|
||||
|---|---:|
|
||||
| 0-6 days | 0 |
|
||||
| 0-6 days | 1 |
|
||||
| 7-13 days | 0 |
|
||||
| deletion due (>=14 days) | 0 |
|
||||
| unknown/future | 0 |
|
||||
@@ -71,16 +71,16 @@
|
||||
|
||||
| Row | Captured at | Gate | Boot smoke | `pnpm test` | Quarantine count |
|
||||
|---|---|---:|---:|---:|---:|
|
||||
| Previous | 2026-06-27T02:02:13.530Z | 8.1s | 17.6s | unavailable | 0 |
|
||||
| Latest | 2026-06-27T05:43:17.293Z | 6.9s | 18.0s | 13.7s | 0 |
|
||||
| Delta | — | -1.2s | +436ms | n/a | 0 |
|
||||
| Previous | 2026-06-27T05:43:17.293Z | 6.9s | 18.0s | 13.7s | 0 |
|
||||
| Latest | 2026-07-02T08:47:17.721Z | 7.7s | 17.4s | 9.3s | 1 |
|
||||
| Delta | — | +778ms | -557ms | -4.4s | +1 |
|
||||
|
||||
_Future weekly rows append to `scripts/test-velocity-history.json`; compare the latest row against the previous row before posting to #leads._
|
||||
|
||||
## Post to #leads
|
||||
|
||||
```text
|
||||
FN-6612 weekly test velocity: gate 6.9s (-1.2s), boot smoke 18.0s (+436ms), pnpm test 13.7s (n/a), quarantine ledger 0 (0). Slowest file: packages/dashboard/src/__tests__/insights-routes.test.ts at 26.5s. Deletion-due quarantines: 0.
|
||||
FN-6612 weekly test velocity: gate 7.7s (+778ms), boot smoke 17.4s (-557ms), pnpm test 9.3s (-4.4s), quarantine ledger 1 (+1). Slowest file: packages/dashboard/src/__tests__/insights-routes.test.ts at 26.5s. Deletion-due quarantines: 0.
|
||||
```
|
||||
|
||||
## How to refresh
|
||||
|
||||
@@ -277,6 +277,81 @@ describe("main", () => {
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
FNXC:TestVelocityQuarantine 2026-07-02-01:55:
|
||||
FN-7414 requires report-only refreshes to trust the live quarantine ledger over stale generated report text or stale history rows, so a newly quarantined test cannot be published as count zero.
|
||||
*/
|
||||
it("renders populated live quarantine figures over stale zero report and history values", async () => {
|
||||
const rootDir = tempRoot();
|
||||
try {
|
||||
writeJson(rootDir, "scripts/lib/test-quarantine.json", {
|
||||
entries: [
|
||||
{
|
||||
file: "packages/engine/src/__tests__/executor-pause.test.ts",
|
||||
reason: "FN-7239: stale post-cutover direct-dispatch StepSessionExecutor/legacy pause assertions fail after builtin:coding graph cutover.",
|
||||
quarantinedAt: "2026-06-29",
|
||||
},
|
||||
],
|
||||
});
|
||||
writeJson(rootDir, "scripts/test-velocity-history.json", {
|
||||
entries: [
|
||||
{
|
||||
capturedAt: "2026-06-25T12:00:00.000Z",
|
||||
gateMs: 10_000,
|
||||
bootSmokeMs: 20_000,
|
||||
testMs: 30_000,
|
||||
quarantineCount: 0,
|
||||
slowestTop20: [{ file: "packages/a/src/__tests__/slow.test.ts", package: "@pkg/a", ms: 9_000 }],
|
||||
measurementFailures: [],
|
||||
},
|
||||
{
|
||||
capturedAt: "2026-06-27T12:00:00.000Z",
|
||||
gateMs: 7_000,
|
||||
bootSmokeMs: 18_000,
|
||||
testMs: 25_000,
|
||||
quarantineCount: 0,
|
||||
slowestTop20: [{ file: "packages/a/src/__tests__/slow.test.ts", package: "@pkg/a", ms: 9_000 }],
|
||||
measurementFailures: [],
|
||||
},
|
||||
],
|
||||
});
|
||||
mkdirSync(path.join(rootDir, "docs"), { recursive: true });
|
||||
writeFileSync(
|
||||
path.join(rootDir, "docs/test-velocity-baseline.md"),
|
||||
"| Quarantine / flake count | 0 | 0 |\n| 0-6 days | 0 |\nquarantine ledger 0 (0)\n",
|
||||
"utf8",
|
||||
);
|
||||
|
||||
const exitCode = await main(["--write-report"], {
|
||||
rootDir,
|
||||
stdout: nullStream(),
|
||||
stderr: nullStream(),
|
||||
now: new Date("2026-07-02T12:00:00.000Z"),
|
||||
commandRunner: async (measurement) => {
|
||||
throw new Error(`unexpected command: ${measurement.label}`);
|
||||
},
|
||||
});
|
||||
|
||||
assert.equal(exitCode, 0);
|
||||
const report = readFileSync(path.join(rootDir, "docs/test-velocity-baseline.md"), "utf8");
|
||||
assert.match(report, /\| Quarantine \/ flake count \| 1 \| \+1 \|/);
|
||||
assert.match(report, /\| Deletion-due quarantines \| 0 \| n\/a \|/);
|
||||
assert.match(report, /\| 0-6 days \| 1 \|/);
|
||||
assert.match(report, /\| 7-13 days \| 0 \|/);
|
||||
assert.match(report, /\| deletion due \(>=14 days\) \| 0 \|/);
|
||||
assert.match(report, /\| unknown\/future \| 0 \|/);
|
||||
assert.match(report, /\| — \| — \| — \|/);
|
||||
assert.match(report, /\| Latest \| 2026-06-27T12:00:00\.000Z \| 7\.0s \| 18\.0s \| 25\.0s \| 1 \|/);
|
||||
assert.match(report, /\| Delta \| — \| -3\.0s \| -2\.0s \| -5\.0s \| \+1 \|/);
|
||||
assert.match(report, /quarantine ledger 1 \(\+1\)/);
|
||||
assert.match(report, /Deletion-due quarantines: 0\./);
|
||||
assert.doesNotMatch(report, /\| Quarantine \/ flake count \| 0 \| 0 \|/);
|
||||
assert.doesNotMatch(report, /quarantine ledger 0 \(0\)/);
|
||||
} finally {
|
||||
rmSync(rootDir, { recursive: true, force: true });
|
||||
}
|
||||
});
|
||||
|
||||
it("honors --skip-build-preflight while still measuring lanes", async () => {
|
||||
const rootDir = tempRoot();
|
||||
const calls = [];
|
||||
|
||||
@@ -1249,6 +1249,118 @@
|
||||
"measurementFailures": [],
|
||||
"timingSnapshotCapturedAt": "2026-06-27T05:41:42.568Z",
|
||||
"timingNotes": []
|
||||
},
|
||||
{
|
||||
"capturedAt": "2026-07-02T08:47:17.721Z",
|
||||
"gateMs": 7682,
|
||||
"bootSmokeMs": 17433,
|
||||
"testMs": 9326,
|
||||
"quarantineCount": 1,
|
||||
"slowestTop20": [
|
||||
{
|
||||
"file": "packages/dashboard/src/__tests__/insights-routes.test.ts",
|
||||
"ms": 26500,
|
||||
"package": "@fusion/dashboard"
|
||||
},
|
||||
{
|
||||
"file": "packages/engine/src/runtimes/__tests__/in-process-runtime.test.ts",
|
||||
"ms": 24700,
|
||||
"package": "@fusion/engine"
|
||||
},
|
||||
{
|
||||
"file": "packages/dashboard/src/__tests__/workflow-routes.test.ts",
|
||||
"ms": 22000,
|
||||
"package": "@fusion/dashboard"
|
||||
},
|
||||
{
|
||||
"file": "packages/core/src/__tests__/db.test.ts",
|
||||
"ms": 21200,
|
||||
"package": "@fusion/core"
|
||||
},
|
||||
{
|
||||
"file": "packages/dashboard/app/components/__tests__/GitManagerModal.test.tsx",
|
||||
"ms": 16900,
|
||||
"package": "@fusion/dashboard"
|
||||
},
|
||||
{
|
||||
"file": "packages/core/src/__tests__/mission-store.test.ts",
|
||||
"ms": 16000,
|
||||
"package": "@fusion/core"
|
||||
},
|
||||
{
|
||||
"file": "packages/cli/src/__tests__/extension.test.ts",
|
||||
"ms": 15700,
|
||||
"package": "@runfusion/fusion"
|
||||
},
|
||||
{
|
||||
"file": "packages/dashboard/app/components/__tests__/AgentPromptsManager.test.tsx",
|
||||
"ms": 14800,
|
||||
"package": "@fusion/dashboard"
|
||||
},
|
||||
{
|
||||
"file": "packages/dashboard/app/components/__tests__/App.test.tsx",
|
||||
"ms": 14600,
|
||||
"package": "@fusion/dashboard"
|
||||
},
|
||||
{
|
||||
"file": "packages/dashboard/app/components/__tests__/TaskDetailModal.inline-editing-and-integrations.test.tsx",
|
||||
"ms": 14100,
|
||||
"package": "@fusion/dashboard"
|
||||
},
|
||||
{
|
||||
"file": "packages/dashboard/app/components/__tests__/TaskDetailModal.rendering.test.tsx",
|
||||
"ms": 13700,
|
||||
"package": "@fusion/dashboard"
|
||||
},
|
||||
{
|
||||
"file": "packages/dashboard/src/__tests__/routes-auth.test.ts",
|
||||
"ms": 13600,
|
||||
"package": "@fusion/dashboard"
|
||||
},
|
||||
{
|
||||
"file": "packages/core/src/__tests__/agent-store.test.ts",
|
||||
"ms": 13400,
|
||||
"package": "@fusion/core"
|
||||
},
|
||||
{
|
||||
"file": "packages/engine/src/__tests__/workspace-merger-idempotency.test.ts",
|
||||
"ms": 12700,
|
||||
"package": "@fusion/engine"
|
||||
},
|
||||
{
|
||||
"file": "packages/engine/src/__tests__/self-healing-workspace.test.ts",
|
||||
"ms": 11800,
|
||||
"package": "@fusion/engine"
|
||||
},
|
||||
{
|
||||
"file": "packages/engine/src/__tests__/pr-response-run.test.ts",
|
||||
"ms": 11600,
|
||||
"package": "@fusion/engine"
|
||||
},
|
||||
{
|
||||
"file": "packages/dashboard/app/components/__tests__/ListView.test.tsx",
|
||||
"ms": 11300,
|
||||
"package": "@fusion/dashboard"
|
||||
},
|
||||
{
|
||||
"file": "plugins/fusion-plugin-compound-engineering/src/__tests__/sync.test.ts",
|
||||
"ms": 11000,
|
||||
"package": "@fusion-plugin-examples/compound-engineering"
|
||||
},
|
||||
{
|
||||
"file": "packages/dashboard/app/components/__tests__/AgentDetailView.settings.test.tsx",
|
||||
"ms": 10700,
|
||||
"package": "@fusion/dashboard"
|
||||
},
|
||||
{
|
||||
"file": "packages/dashboard/app/components/__tests__/SecretsView.test.tsx",
|
||||
"ms": 10700,
|
||||
"package": "@fusion/dashboard"
|
||||
}
|
||||
],
|
||||
"measurementFailures": [],
|
||||
"timingSnapshotCapturedAt": "2026-06-27T05:41:42.568Z",
|
||||
"timingNotes": []
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user