I2068 — Verdikt závislý na runneru to říká a jeden studený vzorek není regrese
Zařídit, aby časové verdikty, které předávají CI tohoto repozitáře a hooky jeho adoptérů, rozlišovaly pomalejší změnu od pomalejšího stroje: regrese měření se posuzuje z více než jednoho studeného vzorku a proti zátěži, za které byla změřena, a případ, jehož cena leží do několika procent své hranice zabití, se hlásí jako rozpočtové riziko dřív, než selže sada, jejíž každý případ prošel.
HOTOVO vlna 0 · p2 · profil implementation · bezpečné souběžně
Součást M004 — Výkon je spustitelný důkaz a horká cesta nedělá žádnou kanonickou práci dvakrát.
Cíl
Zařídit, aby časové verdikty, které předávají CI tohoto repozitáře a hooky jeho adoptérů, rozlišovaly pomalejší změnu od pomalejšího stroje: regrese měření se posuzuje z více než jednoho studeného vzorku a proti zátěži, za které byla změřena, a případ, jehož cena leží do několika procent své hranice zabití, se hlásí jako rozpočtové riziko dřív, než selže sada, jejíž každý případ prošel.
Proč
Dne 2026-10-08 tři verdikty shodily změny, které nespustily žádný měřený kód: test/cases/82_bench_check.sh shodil #823 na `version cold — regression: p50 9 -> 23 ms` z jednoho vzorku na přetíženém runneru; test/cases/95_executable_reference.sh stál 3465 s proti rozpočtu 3450 s na pomalém runneru a shodil souhrn sady dávky 3, ačkoli každý případ prošel (znovu spuštěno jednou, zeleně); a pre-push kontrola načtení stránky v prismatic-platform hlásila porušení při zátěži ~30, která samostatně i při opakování prošla. Každý z nich byl znovu spuštěn ručně a každé spuštění stojí skutečný běh patnácti jobů na sdíleném poolu.
Aktuální stav
82_bench_check porovnává jeden studený vzorek s commitovaným základem z macOS při pevném procentním prahu a nezaznamenává zátěž; souhrn sady odmítne případ nad jeho rozpočet na případ bez předchozího varování o rezervě (rozpočet drží pod hranicí zabití 3600 s případ 417); nic ve verdiktu o časování nejmenuje runner, jeho zátěž ani počet vzorků.
Cílový stav
Selhání časování uvádí vzorky, na kterých stojí, runner a jeho zátěž; jeden studený vzorek nad prahem se hlásí jako varování k přeměření a regrese potřebuje, aby opakování souhlasilo; případ, jehož zaznamenaná cena je do 5 % rozpočtu, sada hlásí před během, který ho překročí; mez zabití 3600 s a záruka případu 417 jsou beze změny a žádný práh se nezmírňuje.
Rozsah
- test/cases/82_bench_check.sh
- test/cases/95_executable_reference.sh
- test/cases/417_the_suite_finishes_inside_its_bound.sh
- scripts/ci/suite-budget
- apps/majordomus-cli/src/bench
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
Kritéria přijetí
- Kontrola bench s jedním studeným vzorkem nad prahem hlásí varování uvádějící počet vzorků a neselže; dva shodné vzorky nad prahem selžou jako dosud
- Každý nález o časování jmenuje runner, počet vzorků a průměrnou zátěž, pod kterou byl změřen
- Sada hlásí případ, jehož zaznamenaná cena je do 5 % rozpočtu na případ, jmenovitě, dříve než ho jakýkoli běh překročí
- Případ 417 a hranice zabití jsou beze změny a žádný práh regrese se nezvyšuje
Validace
- bash test/run.sh 82_bench_check
- bash test/run.sh 417_the_suite_finishes_inside_its_bound
Požadované důkazy
- a_single_cold_sample_is_a_warning_and_two_are_a_verdict
- a_case_near_its_budget_is_named_before_it_fails
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| a_single_cold_sample_is_a_warning_and_two_are_a_verdict | test | bash test/run.sh 82_bench_check && cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test bench a_single_cold_sample_is_a_warning_and_two_are_a_verdict | ok 82_bench_check: one cold sample over threshold is WARN on 1 of 1 sample(s) and exits 0; --cold-samples 2 both over is FAIL on 2 of 2 and exits 10; every finding names samples, runner and load. Rust check: 1 sample WARN, 2 agreeing FAIL, verdict line names runner and load | 44ad51e |
| a_case_near_its_budget_is_named_before_it_fails | test | bash test/run.sh 3084_a_case_near_its_budget_is_named 417_the_suite_finishes_inside_its_bound | ok obojí: suite-budget jmenuje podle případu každou cenu v rámci budget.near_percent (5) rozpočtu případu, v tomto běhu i podle záznamu v suite-durations.tsv, jako NEAR bez změny návratového kódu; případ 417, mez 5300 s a každý rozpočet beze změny | 44ad51e |
| a_single_cold_sample_is_a_warning_and_two_are_a_verdict | test | bash test/run.sh 82_bench_check && cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test bench | 82_bench_check ok; --test bench 9 prošlo, 0 selhalo na masteru 707a04c7ce8 (2026-10-17) | 707a04c |
| a_case_near_its_budget_is_named_before_it_fails | test | bash test/run.sh 3084_a_case_near_its_budget_is_named 417_the_suite_finishes_inside_its_bound | obojí ok na master 707a04c7ce8 (2026-10-17) | 707a04c |
Časová osa
- zahájeno
- 2026-10-16T07:54:07Z
- ověřeno
- 2026-10-16T07:54:13Z
- dokončeno
- 2026-10-17T21:35:27Z
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Kanonický záznam: .ai/repo/project/issues/I2068.yaml. Přečtěte si ho zpět pomocí majordomus plan show I2068.