I2660 — Web se publikuje jako artefakt úlohou, která jej sestavila, takže hotový web nečeká na druhý workflow
Odstranit z publikace druhou frontu: job, který web sestavil a zkontroloval, jej předá GitHub Pages sám, a jediný publisher zapisuje vše, co web servíruje.
PŘIPRAVENO vlna 0 · p1 · 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.
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2660 bude přijato.
Cíl
Odstranit z publikace druhou frontu: job, který web sestavil a zkontroloval, jej předá GitHub Pages sám, a jediný publisher zapisuje vše, co web servíruje.
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: Pages má build_type legacy z větve gh-pages, takže po našem pushi GitHub spouští vlastní workflow „pages build and deployment“ o třech jobech ve stejném poolu runnerů. Běh 38458452794: build běžel 77 s a jeho job deploy, 19 s práce, byl vytvořen v 19:57:22Z a začal v 20:44:25Z, o 47 minut později. Workflow release také zapisuje do gh-pages (releasy, instalátor), takže větev má dva zapisovatele.
Cílový stav
Úloha nasazení nahraje sestavený web jako artefakt Pages a nasadí ho ve stejném běhu; nic nečeká na workflow, které tento repozitář nespouští. Cokoli workflow release publikuje, se na web dostane tímto jediným publikátorem. Doba od merge do /build.json, který jmenuje jeho commit, se měří při každém běhu a její mez je deklarována v .ai/repo/ci/pages.yaml.
Rozsah
- .github/workflows/pages.yml
- .github/workflows/release.yml
- scripts/site-deploy
- scripts/pages
- .ai/repo/ci/pages.yaml
- docs/GITHUB_PAGES_ARCHITECTURE.md
- docs/PAGES_STATUS.md
- .ai/repo/project/issues/I2660.yaml
Mimo rozsah
- Co web obsahuje
- Velikost poolu runnerů, kterou určuje účet
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Publikace nepotřebuje žádný jiný workflow než ten, který ji sestavil; zdrojem Pages repozitáře je workflow a změna tohoto nastavení se zaznamenává s tím, kdo ji provedl
- Adresář releasů a instalátor se po nasazení obsluhují přesně jako před ním, což dokládají publikační sondy
- Je zaznamenán čas od merge po nasazení u tří po sobě jdoucích nasazení a žádné nečeká na runner poté, co byl web sestaven
- Ruční deploy z terminálu má stále jednu cestu a říká, co nedokáže
Validace
- bin/majordomus plan validate
- scripts/pages verify --smoke
- MJ_TEST_JOBS=2 bash test/run.sh 2983_the_published_ui_is_the_trunks 489_rustdoc_deploy
Požadované důkazy
- three_deployments_merge_to_served_seconds
- publication_probes_after_the_switch
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/I2660.yaml. Přečtěte ho zpět pomocí majordomus plan show I2660.