diff --git a/demo/performance/README.md b/demo/performance/README.md index 5a0c8cf9..8d009ae0 100644 --- a/demo/performance/README.md +++ b/demo/performance/README.md @@ -218,8 +218,8 @@ rationale in the change. Do not loosen a threshold merely to make a single red run pass. A new fixture profile gets a new profile id instead of silently changing the meaning of `large-house-v1`. -`large-house-isometric-v1` carries `countNoiseAllowance: 5` (the other -profiles keep 3). Owner decision 2026-09-09, #507: since v1.73.0-beta.1 the +`large-house-isometric-v1` and its Stage 3 dense twin carry +`countNoiseAllowance: 5` (the other profiles keep 3). Owner decision 2026-09-09, #507: since v1.73.0-beta.1 the isometric renderer lives in the lazy `iso-scene-render` chunk (#160 Stage 3), so the single v1.72.0 boot task is split into two around that import. The load-phase work is unchanged — timings, `longTask.totalP95Ms` and diff --git a/demo/performance/budgets-isometric-stage3-dense.json b/demo/performance/budgets-isometric-stage3-dense.json index cdf0132b..65264d4b 100644 --- a/demo/performance/budgets-isometric-stage3-dense.json +++ b/demo/performance/budgets-isometric-stage3-dense.json @@ -21,7 +21,7 @@ "maxSingleNoiseAllowanceMs": 250, "maxCountP95": 30, "maxCountRegressionRatio": 0.2, - "countNoiseAllowance": 3, + "countNoiseAllowance": 5, "maxTotalP95Ms": 12000, "maxTotalRegressionRatio": 0.2, "noiseAllowanceMs": 150 diff --git a/test/performance-budget.test.mjs b/test/performance-budget.test.mjs index 6df294b0..2486211c 100644 --- a/test/performance-budget.test.mjs +++ b/test/performance-budget.test.mjs @@ -264,6 +264,7 @@ test('isometric long-task count allowance covers the lazy iso-chunk split, nothi assert.equal(isometric.longTasks.maxCountP95, 30); assert.equal(isometric.longTasks.maxTotalRegressionRatio, 0.2, 'total work is still gated as before'); assert.equal(isometric.longTasks.maxSingleRegressionRatio, 0.2); + assert.equal(readBudget('budgets-isometric-stage3-dense.json').longTasks.countNoiseAllowance, 5, 'the dense twin shares the lazy iso chunk and the #160 common-ceiling contract'); for (const file of ['budgets.json', 'budgets-large-house-plan-snap.json', 'budgets-large-house-interaction.json']) { assert.equal(readBudget(file).longTasks.countNoiseAllowance, 3, `${file} keeps the ordinary allowance`); }