I2663 — Publikované UI se při každém nasazení nečte z ničeho
Přestat platit čtvrt hodiny za každé nasazení snímku, jehož vstupy se nezměnily.
PŘIPRAVENO vlna 3 · p1 · profil implementation · bezpečné paralelně
Součást M004 — Výkon je spustitelný důkaz a horká cesta nedělá žádnou kanonickou práci dvakrát.
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2663 bude přijato.
Cíl
Přestat platit čtvrt hodiny za každé nasazení snímku, jehož vstupy se nezměnily.
Proč
Vlastník, 2026-10-13: 'prověřte, co je pomalé ... vyřešte to systémově, zabraňte tomu příště' a 'tohle se musí analyzovat a řešit přes .ai/; nesmí se to opakovat'. Naměřeno téhož dne: merge dorazil do produkce o 45 až 61 minut později a dvě večerní přistání nebyla hodinu po merge nasazena.
Aktuální stav
Změřeno 2026-10-13 v jobu ui-snapshot dvou běhů pages: jedno čtení UI trvalo 749 a 974 s, Cockpit 127 a 164 s, sestavení spustitelného souboru 106 a 126 s, checkout 85 a 103 s. Při prvním běhu po zvýšení verze běžel samotný krok setup-rust i po jedenácti minutách; zda jde o cache klíčovanou souborem, který zvýšení mění, zatím není ověřeno. Běh druhého přistání čeká na celý ten první.
Cílový stav
Snapshot vzniká z klíče nad tím, co čte; nasazení, jehož klíč sedí, použije předchozí snapshot a řekne to, a plné čtení je omezeno vlastními rozpočty UI. Executable, který úloha potřebuje, pochází z cache, kterou řádek verze neneplatní, nebo z buildu, který už provedla jiná úloha téhož běhu. Co každý krok stál, se zaznamenává pro každý běh.
Rozsah
- .github/workflows/pages.yml
- .github/actions/setup-rust
- apps/majordomus-cli/src/web/report
- scripts/pages
- .ai/repo/ci/pages.yaml
- .ai/repo/project/issues/I2663.yaml
Mimo rozsah
- Co obrazovky ukazují
- Rozpočet latence obsluhované obrazovky, což je I2489
Závislosti
Kritéria přijetí
- Nasazení, které nezměnilo nic, co UI čte, znovu použije snapshot a jeho stránka uvádí commit, ve kterém byla přečtena
- Úplný snapshot tohoto repozitáře se vejde do deklarovaného počtu sekund na hostovaném runneru a běh jinak svůj rozpočet nesplní
- První nasazení po zvýšení verze sestaví spustitelný soubor ne pomaleji než předchozí, s pojmenovanou příčinou dnešních jedenácti minut
Validace
- bin/majordomus plan validate
- MJ_TEST_JOBS=2 bash test/run.sh 2983_the_published_ui_is_the_trunks
Požadované důkazy
- snapshot_seconds_before_and_after
- setup_rust_after_a_bump_explained
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
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/I2663.yaml. Přečtěte jej zpět pomocí majordomus plan show I2663.