perf: enforce journey budgets and reference traces

This commit is contained in:
2026-09-02 07:48:02 +03:00
parent 8089d061ec
commit f4cf9fc77e
25 changed files with 1432 additions and 23 deletions

View File

@@ -0,0 +1,37 @@
const median = (values) => {
if (values.length === 0) throw new Error('At least one value is required.');
const sorted = [...values].sort((left, right) => left - right);
return sorted[Math.floor(sorted.length / 2)];
};
export const aggregateFiveDriveTraces = (runs) => {
if (!Array.isArray(runs) || runs.length !== 5) throw new Error('Exactly five drive-trace.v1 runs are required.');
const profile = runs[0]?.profile;
if (typeof profile !== 'string' || runs.some((run) => run?.schema !== 'drive-trace.v1' || run.profile !== profile)) {
throw new Error('All runs must use one drive-trace.v1 profile.');
}
const lcp = runs.map((run) => run.metrics.lcp);
const tbt = runs.map((run) => run.metrics.tbt);
const everyPerRunBudgetPass = runs.every((run) => Object.values(run.budgetResults).every(Boolean));
const referenceEvidence = runs.every((run) => run.gatingReferenceResult === true && run.validReferenceCadence === true);
const summary = {
lcpWorst: Math.max(...lcp),
lcpMedian: median(lcp),
tbtWorst: Math.max(...tbt),
tbtMedian: median(tbt),
everyPerRunBudgetPass,
referenceEvidence,
};
return {
schema: 'drive-trace-aggregation/v1',
profile,
runCount: 5,
summary,
passes: referenceEvidence
&& everyPerRunBudgetPass
&& summary.lcpWorst <= 3_000
&& summary.lcpMedian <= 2_500
&& summary.tbtWorst <= 300
&& summary.tbtMedian <= 200,
};
};