I2711 — Úloha pages posuzuje produkci až poté, co dorazilo nasazení jejího vlastního commitu
Zastavit, aby job `pages` kontroly validate na masteru hlásil červenou jen proto, že četl majordomus.dev dříve, než byl obsloužen deployment commitu, který posuzuje.
HOTOVO vlna 0 · p0 · 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
Zastavit, aby job `pages` kontroly validate na masteru hlásil červenou jen proto, že četl majordomus.dev dříve, než byl obsloužen deployment commitu, který posuzuje.
Proč
2026-10-14: validate 38579234241 na 0dff496d1c a validate 38600347235 na ff38297096 skončily obě selháním v úloze `pages`, krok \"the published site came from master, is current, and is being served\" exit 10, zatímco produkce servírovala právě ten commit o minuty později; úloha prošla při ručním opakování. Falešná červená na masteru zdržuje tag v0.26.0 (tagovat lze jen commit s úspěchem CI) a pokaždé stojí opakování úlohy.
Aktuální stav
Krok čte build.json produkce jednou, v okamžiku, kdy k němu job dojde, a selže, jestliže nasazení jeho commitu ještě neskončilo.
Cílový stav
Krok omezeně čeká, až produkce začne servírovat jeho commit (dotazuje build.json s deklarovaným limitem a říká, na co čeká), a selže, jen když mez uplyne nebo produkce servíruje jiný commit, který není novější; nasazení, které je stále ve frontě, se tak hlásí, nikdy jako vada stromu.
Rozsah
- .github/workflows/validate.yml
- scripts/ci/pages-check
- scripts/site-check
- docs/CI.md
- test/cases
Mimo rozsah
- Zrychlení samotného nasazení Pages
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Job pages projde, když nasazení jeho commitu dorazí v deklarované mezi po startu jobu
- Selže a jmenuje oba commity, když produkce po mezi servíruje starší commit
- Čekání je omezené a deklarované a liveness-check jej přijímá
Validace
- bin/majordomus plan validate
Požadované důkazy
- pages_waits_for_its_deployment_case
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| pages_waits_for_its_deployment_case | test | MJ_TEST_JOBS=3 bash test/run.sh 3027_the_release_path_goes_first 3028_the_pages_job_waits_for_its_deployment 3029_a_tag_in_flight_is_pending 3021_a_tag_does_not_freeze_the_queue 3019_a_failed_branch_run_cancels_itself 103_release_projection 94_ci_plan | testy: 7 prošlo, 0 selhalo (běh 2026-10-14 ~22Z na master c0e3585dc836201089d6b5dd49f5a79fe8bff798 plus tato změna); případ 3028: pages-check --for COMMIT čeká, dotazuje build.json každých 30 s po deklarovaných 1200 s, projde, když produkce obsluhuje commit nebo novější, selže brzy jen tehdy, když je obsluhován starší commit bez probíhajícího deploye, a jmenuje oba commity | c0e3585 |
Časová osa
- zahájeno
- 2026-10-14T22:01:02Z
- ověřeno
- —
- dokončeno
- 2026-10-14T22:02:38Z
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/I2711.yaml. Načtěte ho zpět pomocí majordomus plan show I2711.