I1949 — Důkazy z CI se zaznamenávají čisté a jejich zpráva je verdiktem sledovaného ledgeru
Opravit PR #577 na jeho vlastní větvi tak, aby job CI evidence odvozoval svůj report ze sledovaného ledgeru dříve, než zaznamená provádění běhu, každý job spouštějící testy měřil svůj strom tam, kde běžel, a web publikoval current jen podle prozatímního pravidla ADR 0087 (rozhodnutí 1).
HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně
Cíl
Opravit PR #577 na jeho vlastní větvi tak, aby job CI evidence odvozoval svůj report ze sledovaného ledgeru dříve, než zaznamená provádění běhu, každý job spouštějící testy měřil svůj strom tam, kde běžel, a web publikoval current jen podle prozatímního pravidla ADR 0087 (rozhodnutí 1).
Proč
Jak je PR #577 napsán, sběrač nejdřív zaznamená a zprávu odvodí potom, takže přepis, který web publikuje jako aktuální, je verdikt nad řádky vlastního běhu z checkoutu, který nikdo neměřil. ADR 0087 mění ADR 0068 právě na těchto větách.
Aktuální stav
Změřeno 2026-10-08 na master 4090b2b8ae. PR 577 a tento slice (PR 645) jsou na master: úloha evidence odvozuje svou zprávu před záznamem a každá produkující úloha měří svůj strom (případ 357 prochází). Stále otevřeno: každá dráha rust měří svůj strom jako špinavý, protože nesledovaný timings.tsv v kořeni repozitáře není mezi vyloučenými cestami (.github/workflows/validate.yml vylučuje jen apps/majordomus-cli/timings.tsv a apps/majordomus-cli/dist), takže manifest evidence běhu 37744906831 nese working_tree dirty pro producenta crate a web z něj nemůže publikovat current.
Cílový stav
Job důkazů odvozuje svou zprávu nad sledovanou knihou tak, jak je commitnuta v commitu běhu, než zaznamená; joby sady a rustu měří své stromy, vyjma jen jejich pojmenovaných výstupů, a nahrávají měření; scripts/pages evidence publikuje current, jen když je běh publikovaného commitu, každý job, který spouštěl testy, měřil čistý strom, zpráva byla odvozena na čistém checkoutu a nic nechybělo, nebylo odmítnuto ani selhalo, a jinak stale nebo unknown s uvedením každého důvodu.
Rozsah
- .github/workflows/validate.yml
- scripts/ci/evidence-collect
- scripts/pages
- site/templates/evidence.html
- docs/EVIDENCE.md
- docs/CLAIMS.yaml
- docs/claims/evidence-recorded-in-ci.md
- test/cases/357_ci_records_evidence.sh
Mimo rozsah
- Prostředí behaviorálních testů, krok souhrnu a nahrání ci-metrics-suite jobu suite
- Přesun suite.tsv z workspace, kde ho čte rozpočet sady z PR #627
- Jakýkoli řádek docs/CLAIMS.yaml kromě tvrzení a poznámky evidence-recorded-in-ci
- docs/EVIDENCE.md mimo sekci Recorded in CI
- Úvodní komentář a řádek článku v site/templates/evidence.html
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
Kritéria přijetí
- Úloha důkazů odvodí svůj report dřív, než zaznamenává, nad sledovaným ledgerem tak, jak je zapsán na commitu běhu
- Každá úloha, která spouštěla testy, změří svůj strom s vyloučením pouze svých pojmenovaných výstupů a manifest nese každé měření
- scripts/pages evidence publikuje aktuální jen podle prozatímního pravidla ADR 0087 a jinak zastaralé nebo neznámé s uvedením každého důvodu
- Případ 357 ověřuje obě poloviny a běh pull requestu této části ukazuje provedení cratů a čisté měřené stromy
Validace
- bash test/run.sh 357_ci_records_evidence
Požadované důkazy
- report_derived_before_recording
- producer_trees_measured
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| report_derived_before_recording | test | MJ_TEST_JOBS=2 bash test/run.sh 357_ci_records_evidence | testy: 1 prošel, 0 selhalo, 0 přeskočeno (běh 2026-10-14 mezi 07:40Z a 07:58Z na masteru ce5959db59) | ce5959d |
| producer_trees_measured | test | MJ_TEST_JOBS=2 bash test/run.sh 357_ci_records_evidence | testy: 1 prošel, 0 selhalo, 0 přeskočeno (běh 2026-10-14 mezi 07:40Z a 07:58Z na masteru ce5959db59) | ce5959d |
Riziko
Naskládáno na PR #577, který koliduje s master, a proto nemá vlastní běh pull requestu: přijetí tohoto kusu je jeho vlastní běh pull requestu. Běh #577 po jeho mergi masteru je kontrola přistání #577, ne tohoto kusu.
Časová osa
- zahájeno
- 2026-10-14T07:59:48Z
- ověřeno
- —
- dokončeno
- 2026-10-14T07:59:56Z
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/I1949.yaml. Přečtěte ho zpět pomocí majordomus plan show I1949.