mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-05 14:19:04 +00:00
ci: recalibrate interaction aggregate ceiling
Issue: #483 User-Visible: no
This commit is contained in:
@@ -92,6 +92,13 @@ the full profiles. The set of profiles is part of the `performance_smoke`
|
||||
reuse key, so a glow-only success never stands in for a run that needed the
|
||||
isometric profile.
|
||||
|
||||
The interaction profile keeps strict per-series, Long Task, heap, cache and
|
||||
structural limits. Its aggregate `interactionSeriesMs` ceiling is 3300 ms:
|
||||
enough headroom for the observed hosted-runner baseline (up to 3122.6 ms), but
|
||||
still below the known failed pre-optimization result (3501.5 ms). This aggregate
|
||||
is a catastrophic guard; the full workflow's base-relative comparison remains
|
||||
the detector for smaller regressions.
|
||||
|
||||
The dedicated `performance.yml` workflow is the full comparison. It runs on
|
||||
every `main` promotion, weekly and on manual dispatch for an important beta or
|
||||
performance-sensitive change. It checks out the candidate and its base SHA,
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
},
|
||||
"interactionSeriesMs": {
|
||||
"stat": "median",
|
||||
"hardMaxMs": 3000
|
||||
"hardMaxMs": 3300
|
||||
},
|
||||
"hoverSeriesMs": {
|
||||
"stat": "median",
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"stat": "median",
|
||||
"maxRegressionRatio": 0.5,
|
||||
"noiseAllowanceMs": 150,
|
||||
"hardMaxMs": 3000
|
||||
"hardMaxMs": 3300
|
||||
},
|
||||
"hoverSeriesMs": {
|
||||
"stat": "median",
|
||||
|
||||
@@ -245,3 +245,14 @@ for (const [smokeName, fullName] of [
|
||||
'первый кадр 9 870 мс обязан краснеть');
|
||||
});
|
||||
}
|
||||
|
||||
test('interaction aggregate keeps hosted-runner headroom without weakening component gates (#483)', () => {
|
||||
const smoke = readBudget('budgets-interaction-smoke.json');
|
||||
const full = readBudget('budgets-large-house-interaction.json');
|
||||
assert.equal(smoke.timings.interactionSeriesMs.hardMaxMs, 3300);
|
||||
assert.equal(full.timings.interactionSeriesMs.hardMaxMs, 3300);
|
||||
assert.equal(smoke.timings.hoverSeriesMs.hardMaxMs, 500);
|
||||
assert.equal(smoke.timings.panSeriesMs.hardMaxMs, 500);
|
||||
assert.equal(smoke.timings.cameraSeriesMs.hardMaxMs, 500);
|
||||
assert.equal(smoke.timings.editorSeriesMs.hardMaxMs, 750);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user