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.

I2850 — publikovaný PR Drain nese své pull requesty a počítá pull requesty, ne úkoly plánu

Stránka UI, kterou snímek zapíše, nese každý pomalý panel, který obrazovka odkládá na svůj skript, už přečtený a na místě, kam by ho skript umístil: publikovaná /ui/prs ukazuje drain, Dashboard své pull requesty a Deployments svou dodávku. Počty PR Drain jsou počty samotné fronty integrace, jedna karta na každou dráhu, kterou fronta napočítala, každá jako odkaz na tu dráhu.

HOTOVO vlna 0 · p0 · profil implementation · bezpečné souběžně

Součást truthful-plan-surfaces — Povrchy plánu se odvozují z dodávky a nic, co zobrazují, se nezadává vedle repozitáře.

Cíl

Stránka UI, kterou snímek zapíše, nese každý pomalý panel, který obrazovka odkládá na svůj skript, už přečtený a na místě, kam by ho skript umístil: publikovaná /ui/prs ukazuje drain, Dashboard své pull requesty a Deployments svou dodávku. Počty PR Drain jsou počty samotné fronty integrace, jedna karta na každou dráhu, kterou fronta napočítala, každá jako odkaz na tu dráhu.

Proč

Nalezeno rolí přistání dne 2026-10-18 na masteru 707a04c7ce8 (v0.29.0), ze snímku obrazovky publikované https://majordomus.dev/ui/prs/ při 1440 px. Obrazovka neukazovala žádný pull request, jen zástupný řádek 'Open the drain on its own page', protože skript snapshotu nenačítá žádný panel. Její hrdina počítal úkoly plánu z plan.status (ready 86, blocked 159), ne pull requesty. Vlastní karty drainu byly tři dráhy zapsané na obrazovce ('repair', 'waiting', 'held'), takže dráha, kterou fronta přidá, se nikdy nepočítala.

Aktuální stav

Snapshot zapíše každou obrazovku jako její první vykreslení: pomalý panel je zástupný blok s odkazem. Hero PR Drain čte plan.status; jeho pruh součtů jmenuje tři dráhy doslova.

Cílový stav

Snapshot se ptá každé stránky s hlavičkou X-Majordomus-Snapshot. UI pak nahradí každý placeholder data-panel-src vlastním pohledem panelu přes jeden dispatcher, podle kterého směruje i server. Živé UI se stále nejprve vykreslí a odloží. Hero PR Drain nečte žádný zdroj plánu a jeho pás má kartu Open, jednu kartu na lane v /queue/tallies/by_lane odkazující na ?lane=<word> a propustnost mergů.

Rozsah

  • apps/majordomus-cli/src/ui/mod.rs
  • apps/majordomus-cli/src/ui/prs.rs
  • apps/majordomus-cli/src/web/report/snapshot.rs
  • apps/majordomus-cli/src/cockpit/html.rs
  • docs/MAJORDOMUS_UI.md
  • test/cases/3240_the_published_screens_carry_their_slow_panels.sh

Mimo rozsah

  • Zbytek plánu /ui/prs, který předala role přistání: pořadí čtení (co může přistát, co blokuje, úkol, milník, intent), každé id jako odkaz oběma směry, ui::prose, jedna primární akce na PR a tahy vypnuté jako pouze živé. To jsou samostatné úkoly tohoto bloku, po alfě, kde jsou funkcemi.
  • Kontrola, že každá třída mj-ui-*, kterou obrazovka vydává, je definována (převzato z I2905; claim.rs a intent.rs stále vydávají nedefinované mj-ui-list, idd.rs mj-ui-subhead): vlastní úkol po alfě. Zde se dva seznamy PR Drain přesouvají na mj-ui-prose-list sady, jako ty z /ui/idd.

Závislosti

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

Kritéria přijetí

  • Každá obrazovka, která odkládá panel, odpoví na požadavek snímku bez zástupce data-panel-src a s jedním nadpisem
  • PR Drain ve snímku nese vlastní odpověď drainu
  • Karty PR Drain jsou dráhy, které fronta počítala, každá odkaz na svou dráhu; jeho hrdina nepočítá žádný úkol plánu
  • PR Drain nevysílá žádnou třídu, kterou stylesheet UI nedefinuje

Validace

  • bin/majordomus plan validate
  • cargo test --lib -- ui:: cockpit::html web::report::snapshot

Požadované důkazy

  • snapshot_reads_every_slow_panel_test
  • counts_are_the_queues_lanes_test

Důkazy

pokrývátypcommandvýsledeku commitu
snapshot_reads_every_slow_panel_testcivalidate run 39438896504 at master 9a5a9b77520: rust (1-3) jobs 118683336143 118683336062 118683336401 run cargo test, incl. ui::a_snapshot_reads_every_slow_panel_into_its_screen (82ace9a104d)success (the run's only red job is pages, which runs no test)a81b1e3
counts_are_the_queues_lanes_testcivalidate run 39438896504 at master 9a5a9b77520: rust (1-3) jobs 118683336143 118683336062 118683336401 run cargo test, incl. ui::prs::the_counts_are_the_queues_own_lanes_and_never_the_plans_issues (38f2e9b7f21)success (the run's only red job is pages, which runs no test)a81b1e3

Časová osa

zahájeno
2026-10-20T16:15:52Z
ověřeno
—
dokončeno
2026-10-20T16:29:16Z

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

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