Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I2842 — Živý web se ověřuje podle rozvrhu a jeho poslední ověření je důkaz

Mezi nasazeními dál dokazujte, že majordomus.dev servíruje to, co říká trunk: každý plánovaný běh Pages, který nenajde nic dlužného, přečte také živé snímky domovské stránky, UI a Cockpitu proti trunku, latest.json proti nejnovějšímu release tagu a přes `scripts/pages verify-ui` se zeptá rotujícího vzorku stránek UI; výsledek se zaznamená a zobrazí a nesoulad, který přetrvá za okno nasazení, zčervená běh s uvedením stránky.

PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné souběžně

Součást surfaces-never-disagree — Každý povrch promítá stejný stav, říká, kdy byl pozorován, a nevede si vlastní seznam.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2842 bude přijato.

Cíl

Mezi nasazeními dál dokazujte, že majordomus.dev servíruje to, co říká trunk: každý plánovaný běh Pages, který nenajde nic dlužného, přečte také živé snímky domovské stránky, UI a Cockpitu proti trunku, latest.json proti nejnovějšímu release tagu a přes `scripts/pages verify-ui` se zeptá rotujícího vzorku stránek UI; výsledek se zaznamená a zobrazí a nesoulad, který přetrvá za okno nasazení, zčervená běh s uvedením stránky.

Proč

Vlastník 2026-10-17 požádal o průběžné ověřování nasazení gh-pages. Plánovaný běh (pages.yml, každých 30 min) se ptá jen, zda je publikace dlužná podle commitu, a `pages-live` posuzuje živý web jen uvnitř běhu validate nebo finish. Relace musela kolem release v0.29.0 ověřovat ručně: živé UI na 4a4573690f8 odpovědělo 1554 stránkami snapshotu (256 vzorkováno, 0 chybí) a latest.json se posunul na 0.29.0 z publikačního jobu release.yml dřív, než přistál PR se záznamem. Dvě přechodná 503 z GitHub Pages (master 39004503240, 71a 39037828837) ukázala, že jediné čtení není verdikt; I2813 přidává omezený retry při 503, na který se tento úkol spoléhá.

Aktuální stav

plánovaná úloha `owed` v pages.yml porovnává gh-pages s trunkem a znovu nasazuje nebo staví; nic podle plánu nečte živé stránky UI nebo Cockpitu, neporovnává latest.json s nejnovějším tagem ani nezaznamenává, kdy bylo naposledy prokázáno, že živý web je webem trunku.

Cílový stav

Plánovaný běh, když nic není dlužno, spouští `scripts/pages verify-ui --commit <trunk> --max-pages N` nad vzorkem, který se mezi běhy otáčí, takže každá uvedená stránka je dotázána do jednoho dne, stejně porovná snímek Cockpitu a latest.json s nejnovějším tagem v* a zapíše jeden záznam důkazu (commit, čas, dotázané stránky, chybějící stránky, verdikt), který web a `majordomus served` ukazují jako 'live site last verified at'. Nesoulad mladší než okno nasazení je čekání, starší je červený běh jmenující stránku; 503 se opakuje v mezi z I2813, než se počítá.

Rozsah

  • .github/workflows/pages.yml
  • scripts/pages
  • scripts/ci/pages-check
  • apps/majordomus-cli/src/capability/builtin/served.rs
  • docs/GITHUB_PAGES_ARCHITECTURE.md

Mimo rozsah

  • Sondování každé stránky při každém běhu: rotace pokryje celý snapshot během dne při omezených nákladech na běh.
  • Změna toho, co se nasazuje nebo kdy: logika owed/redeploy zůstává, jak je.
  • Cokoli před v1.0.0-alpha.1 (Operation Convergence, 2026-10-17); do té doby opravná linie ověřuje ručně při každém posunu masteru.

Závislosti

Žádné. Tento úkol je kořenem grafu.

Kritéria přijetí

  • Plánovaný běh, který nic nedluží, zaznamená živé ověření jmenující commit trunku, dotazované stránky a stránky, které neodpověděly
  • Během 48 běhů rotace osloví každou stránku, kterou snapshot UI uvádí, doloženo proti fixture snapshotu
  • latest.json jmenující jinou verzi než nejnovější tag v* po okně nasazení je červený běh, který říká, kterou
  • Web ukazuje, kdy byl živý web naposledy ověřen a na kterém commitu, čteno ze záznamu, nikdy ručně psáno

Validace

  • bin/majordomus plan validate
  • MJ_TEST_JOBS=4 bash test/run.sh <the case this issue adds>

Požadované důkazy

  • scheduled_live_verification_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/I2842.yaml. Načtěte jej zpět pomocí majordomus plan show I2842.

Prohledává názvy a popisy všech stránek, které tento web publikuje.