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.

I2472 — Jak dlouho trvá CI, se měří od startu každého běhu po jeho dokončení a obrazovka CI/CD to kreslí

Zaznamenávat, kdy začal každý běh kontroly na headu otevřeného pull requestu, vedle toho, kdy skončil, a z tohoto záznamu odpovídat, jak dlouho CI trvá, typovanou schopností (integration.timings): za každou kontrolu její změřené běhy, selhání, medián, 90. percentil a nejdelší trvání; za každý otevřený head jeho celkový čas a nejpomalejší kontrolu; a kolik běhů nešlo změřit. Obrazovka CI/CD v majordomus ui ji kreslí místo panelu, který říkal, že žádná schopnost nezaznamenává časy CI.

HOTOVO vlna 4 · p1 · profil implementation · běží samostatně

Součást development-runtime — The runtime has a development surface.

Cíl

Zaznamenávat, kdy začal každý běh kontroly na headu otevřeného pull requestu, vedle toho, kdy skončil, a z tohoto záznamu odpovídat, jak dlouho CI trvá, typovanou schopností (integration.timings): za každou kontrolu její změřené běhy, selhání, medián, 90. percentil a nejdelší trvání; za každý otevřený head jeho celkový čas a nejpomalejší kontrolu; a kolik běhů nešlo změřit. Obrazovka CI/CD v majordomus ui ji kreslí místo panelu, který říkal, že žádná schopnost nezaznamenává časy CI.

Proč

Vlastník dne 2026-10-11 požádal o implementaci každého pohledu ze snímků obrazovky UI (pack v3 M08; reference 07-ci-cd ukazuje časy sestavení a propustnost). Obrazovka CI/CD od d3 (I2462) říká, že žádná schopnost nezaznamenává časování CI po jednotlivých během, a žádná to nedělala: pozorování forge uchovalo, kdy se kontrola dokončila, ale ne kdy začala, přestože souhrn GitHub CLI odpovídá na obojí. Čas CI je latence, na kterou integrační linka čeká u každého pull requestu, a nic ho neměřilo.

Aktuální stav

Pozorování kontroly drží svůj název, stav, druh, aplikaci a čas dokončení. Panel dob sestavení na obrazovce CI/CD říká, že se nic neměří.

Cílový stav

Pozorování forge zaznamenává started_at pro každý běh kontroly (prázdné pro kontext stavu nebo běh, který nezačal; dříve zaznamenané pozorování se čte s prázdnou hodnotou, takže schéma zůstává 4). integration.timings (GET /api/v1/pull-requests/timings, MCP majordomus_ci_timings) měří ze zaznamenaného pozorování a bez dotazu na forge běhy každé kontroly se začátkem a koncem: prošlé, neúspěšné, medián a 90. percentil (nejbližší pořadí) a nejdelší sekundy, od nejpomalejšího mediánu; u každého otevřeného headu dobu od začátku jeho první kontroly po dokončení jeho poslední kontroly a jeho nejpomalejší kontrolu, od nejdelšího čekání; a kolik běhů nešlo změřit, což se počítá a nikdy neměří jako nula. Obrazovka CI/CD kreslí medián každé kontroly jako pruh proti nejpomalejší s jejími čísly vedle a deset nejdelších čekání, každé vedoucí k jeho pull requestu na PR Drain; bez pozorování říká, že nic není změřeno.

Rozsah

  • apps/majordomus-cli/src/integration/model.rs
  • apps/majordomus-cli/src/integration/forge.rs
  • apps/majordomus-cli/src/integration/timings.rs
  • apps/majordomus-cli/src/integration/mod.rs
  • apps/majordomus-cli/src/capability/builtin/integration.rs
  • apps/majordomus-cli/src/ui/timings.rs
  • apps/majordomus-cli/src/ui/delivery.rs
  • apps/majordomus-cli/src/ui/mod.rs
  • .ai/repo/project/issues/I2472.yaml
  • docs/MAJORDOMUS_UI.md
  • test/cases/1077_ci_timings_are_measured.sh

Závislosti

Co na tom čeká

Kritéria přijetí

  • check_of zaznamenává startedAt jako started_at a pozorování bez něj se stále čte
  • integration.timings odpovídá na změřené běhy, selhání, medián, 90. percentil a nejdelší sekundy každé kontroly a na celkový čas a nejpomalejší kontrolu každé otevřené hlavy, jen ze zaznamenaného pozorování
  • běh bez začátku nebo konce a stavový kontext se počítá jako neměřený a nikdy se neměří jako nula
  • obrazovka CI/CD kreslí časování a hlava vede ke svému pull requestu; bez pozorování říká, že se nic neměří

Validace

  • cargo test --lib integration::timings
  • cargo test --lib ui::
  • test/run.sh 1077_ci_timings_are_measured

Požadované důkazy

  • integration_timings_unit_tests
  • ci_timings_case_1077

Důkazy

pokrývátypcommandvýsledeku commitu
integration_timings_unit_testscicargo test --lib integration::timings (validate run 38223440282 on 722228ef3c, the v0.21.0 top)7 testů integration::timings ok, 5 testů ui::timings ok722228e
ci_timings_case_1077citest/run.sh 1077_ci_timings_are_measured (validate run 38223440282 na 722228ef3c, vrchol v0.21.0)případ 1077_ci_timings_are_measured ok722228e

Časová osa

zahájeno
2026-10-12T11:03:04Z
ověřeno
2026-10-12T11:03:13Z
dokončeno
2026-10-12T11:03:32Z

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/I2472.yaml. Přečtěte ho zpět pomocí majordomus plan show I2472.

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