I2662 — Validace opouští nasazení jako runner: kontroly větve nikdy nedrží pool, který potřebuje publikace nebo záznam releasu
Omezit, co smí validace zabírat, aby dvě věci, které umí jen trunk, publikace a zaznamenání release, začaly, jakmile jsou připraveny.
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 I2662 bude přijato.
Cíl
Omezit, co smí validace zabírat, aby dvě věci, které umí jen trunk, publikace a zaznamenání release, začaly, jakmile jsou připraveny.
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: úlohy workflow pages čekaly na runner 78 až 876 s ve dvou dokončených bězích a 20,5 minuty ve třetím, zatímco několik běhů validate větví bylo ve frontě nebo běželo; každý běh validate spouští asi devatenáct úloh. Žádné pravidlo neříká, kolik z fondu smí validace zabrat, a běh, který nikdo nebude číst, se ruší jen ručně (ADR 0155 klauzule 7).
Cílový stav
Workflow validate deklaruje, kolik jeho jobů smí běžet najednou, a sám ruší nahrazený běh branche; běh na trunku, nasazení a běh releasu se nikdy neruší a nikdy nečekají za maticí branche. Čekání jobu pages na runner se zaznamenává na běh a má deklarovanou mez.
Rozsah
- .github/workflows/validate.yml
- .github/workflows/pages.yml
- .ai/repo/ci/gates.yaml
- scripts/ci-plan
- docs/CI.md
- .ai/repo/project/issues/I2662.yaml
Mimo rozsah
- Nákup runnerů
- Co kontroly ověřují
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Nový push do větve zruší nedokončený běh validate této větve; běhy trunku se nikdy neruší
- Počet souběžně běžících jobů validate má deklarované maximum a případ drží workflow u něj
- Za den přistání žádná úloha pages nečeká na runner déle než deklarovaná mez, čteno ze zaznamenaných časů
Validace
- bin/majordomus plan validate
- scripts/ci/github-check
- scripts/ci-plan --check
Požadované důkazy
- runner_wait_per_pages_job_over_a_day
- superseded_run_cancelled_case
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/I2662.yaml. Přečtěte jej zpět pomocí majordomus plan show I2662.