I2460 — Přehled se ptá svých zdrojů najednou, takže stojí tolik co nejpomalejší zdroj, ne jejich součet
dashboard.overview spouští své odlišné zdroje souběžně přes sdílený executor, takže první stránka Cockpitu a každá obrazovka postavená na přehledu se vykreslí za čas nejpomalejšího zdroje, ne za součet všech sedmi.
HOTOVO vlna 0 · p1 · profil implementation · bezpečné souběžně
Součást development-runtime — The runtime has a development surface.
Cíl
dashboard.overview spouští své odlišné zdroje souběžně přes sdílený executor, takže první stránka Cockpitu a každá obrazovka postavená na přehledu se vykreslí za čas nejpomalejšího zdroje, ne za součet všech sedmi.
Proč
První řez vlastníkova balíku sjednoceného UI se skutečnými daty (campaigns/majordomus-ui-unified-real-data-v2-20261011, milníky M03 a M11-I04; audit M00 je tmp/owner-packs/majordomus-ui-unified-real-data-v2-20261011/AUDIT-M00.md). Změřeno 2026-10-11 proti sdílenému serveru 0.20.0 na masteru 4dfd185: GET /cockpit se načetl za 13,1 s s JavaScriptem a 17,6 s bez něj a GET /api/v1/dashboard/overview odpovídal za 7,4–10,6 s. Jeho handler (apps/majordomus-cli/src/capability/builtin/dashboard.rs, fn overview) se ptal health.report, release.version, plan.status, worktree.status, plan.next, continuity.state a peers.list jeden po druhém. Samostatně stálo continuity.state 4,9 s, worktree.status 2,0 s, health.report 0,9 s, release.version 0,6 s a zbytek pod 20 ms, takže overview stálo jejich součet. Každá obrazovka dashboardu, kterou balík žádá, skládá tuto odpověď, a dashboard, který potřebuje deset sekund před prvním bajtem, nemůže být titulní stranou produktu.
Aktuální stav
Sedm zdrojů se provádí sekvenčně; latence přehledu je součet jejich latencí.
Cílový stav
Rozlišné zdroje se dotazují na scoped vláknech a joinují se; odpověď, její karty, jejich pořadí a kroky průběhu (hlášené po poslední odpovědi, v pořadí deklarace) jsou tytéž jako dřív. Zdroj, jehož vlákno panikuje, dá neznámé karty nesoucí důvod, jako každý selhaný zdroj. Zde nehotovo: cachování kompozice (ADR 0088 ho odmítá, protože karta nesmí být starší než zdroj, do kterého se čtenář propadne) a zrychlení samotných continuity.state nebo worktree.status.
Rozsah
- apps/majordomus-cli/src/capability/builtin/dashboard.rs
- apps/majordomus-cli/tests/dashboard.rs
- .ai/repo/project/issues/I2460.yaml
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Každý odlišný zdroj (schopnost, vstup) přehledu se dotazuje právě jednou, v pořadí, v jakém jej karty poprvé uvedou
- Při dotazu najednou odpovídá každý zdroj tak, jako když se ptáme samotného, a každá karta je stále hodnotou svého zdroje na jeho ukazateli, nebo unknown
- Na sdíleném serveru tohoto repozitáře GET /api/v1/dashboard/overview odpoví za nejvýše nejpomalejší jediný zdroj plus kompozici, změřeno před a po
Validace
- bin/majordomus plan validate
- cargo test --lib capability::builtin::dashboard
- cargo test --test dashboard
- MJ_TEST_JOBS=4 bash test/run.sh 534_the_overview_answers_four_questions.sh
Požadované důkazy
- overview_sources_concurrent_test
- overview_latency_before_after
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| overview_sources_concurrent_test | ci | cargo test --lib capability::builtin::dashboard; cargo test --test dashboard; test/run.sh 534 (validate run 38223440282 na 722228ef3c, vrchol v0.21.0) | 9 testů capability::builtin::dashboard ok, tests/dashboard.rs ok, případ 534_the_overview_answers_four_questions ok | 722228e |
| overview_latency_before_after | ruční | dashboard.overview měřeno před a po v PR #934 | před 6,0–6,2 s (sdílený server 0.20.0, primární checkout); po 1,2–1,3 s (build větve): přehled stojí tolik, co jeho nejpomalejší zdroj | 722228e |
Časová osa
- zahájeno
- 2026-10-12T10:58:12Z
- ověřeno
- 2026-10-12T10:58:22Z
- dokončeno
- 2026-10-12T10:58:43Z
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/I2460.yaml. Přečtěte jej zpět pomocí majordomus plan show I2460.