I2461 — majordomus ui se servíruje na /ui jako samostatný produkt s obrazovkami složenými ze schopností
Servírovat UI, primární lidský povrch, který vlastník nazývá `majordomus ui`, jako vlastní nativní povrch na sdíleném serveru: s vlastním mountem, shellem, navigací ve slovníku doručení a assety a s prvním Dashboardem složeným výhradně ze schopností, kde každá hodnota cituje schopnost a ukazatel, odkud byla přečtena.
HOTOVO vlna 0 · p1 · profil implementation · běží samostatně
Součást development-runtime — The runtime has a development surface.
Cíl
Servírovat UI, primární lidský povrch, který vlastník nazývá `majordomus ui`, jako vlastní nativní povrch na sdíleném serveru: s vlastním mountem, shellem, navigací ve slovníku doručení a assety a s prvním Dashboardem složeným výhradně ze schopností, kde každá hodnota cituje schopnost a ukazatel, odkud byla přečtena.
Proč
Sjednocený balíček UI se skutečnými daty od vlastníka (campaigns/majordomus-ui-unified-real-data-v2-20261011) žádá jedenáct obrazovek. 2026-10-11 vlastník rozhodl, kde žijí: „je to majordomus ui primární, ne cockpit (nízká úroveň)“. ADR 0135 rozhodnutí zaznamenává. Audit M00 (tmp/owner-packs/majordomus-ui-unified-real-data-v2-20261011/AUDIT-M00.md) zjistil, že data pro většinu panelů existují, ale přehled Cockpitu potřeboval 13-18 s k vykreslení a že samotné integration.queue trvá 50 s, takže první obrazovka se musí ptát jen rychlých zdrojů a frontu kreslit jako vlastní panel. Před touto změnou byl `majordomus ui` neznámý příkaz a žádná plocha serveru nebyla ta na vysoké úrovni.
Aktuální stav
Sdílený server obsluhuje Cockpit (/cockpit), API, Swagger, MCP a domovskou stránku. Žádný vysokoúrovňový povrch neexistuje.
Cílový stav
Nativní povrch `ui` je připojen na /ui (topologie, vazba, router; Feature::Ui) a obsluhuje ho sdílený server vedle Cockpitu, na který odkazuje jen jako na technický pohled na zdroj. Jeho rámec sleduje předlohy vlastníka: boční panel obrazovek s ikonami sady (zkompilovanými z site/data/kit/icons.toml příkazem majordomus generate) a karta verze čtená z distribution.releases, horní lišta s vyhledáváním, časem načtení obrazovky a dalšími povrchy a menu, které se otevře bez JavaScriptu. Sedm obrazovek — Dashboard, Roadmap, Issues & PRs, Mesh, CI/CD & Releases, Evidence, Governance — každá s úvodním pásem s KPI dlaždicemi a mřížkou panelů, skládá jen odpovědi schopností zjištěné najednou. Každý panel uvádí své zdroje s trasou API, příkazem CLI a nástrojem MCP, které deklaruje capabilities.describe. Dlaždice, panely a řádky vedou na obrazovku, která drží celek. Závislosti milníků se kreslí jako graf přibalenou knihovnou Cytoscape nad náhradní tabulkou. Prstencové grafy, měřidla a časové osy se kreslí na straně serveru z počtů, které vypisují, a chybějící hodnota se čte jako none, unknown nebo not answered, nikdy jako nula. Fronta pull requestů je panel /ui/panels/pull-requests, dotažený po vykreslení. Viditelná obrazovka se čte znovu každou minutu a říká kdy. ui-integrity a kontrola indexu ADR 0012 pokrývají src/ui (případy 389 a 547) a třída CI ui vybere kontrolu assetů vždy, když se změní share/ui nebo src/ui. Zde nehotovo: příkaz majordomus ui (I2231, k doplnění) a obrazovky Command, Capabilities, Deployments, Documentation a Settings.
Rozsah
- apps/majordomus-cli/src/ui
- apps/majordomus-cli/src/generate.rs
- scripts/ci/cockpit-projection-check
- .ai/repo/ci/gates.yaml
- .ai/repo/features/ui.md
- test/cases/389_cockpit_projection.sh
- test/cases/547_the_ui_says_only_what_is_derived.sh
- docs/MAJORDOMUS_UI.md
- docs/README.md
- .gitignore
- apps/majordomus-cli/src/cockpit/assets.rs
- apps/majordomus-cli/src/lib.rs
- apps/majordomus-cli/src/http/router.rs
- apps/majordomus-cli/src/http/surfaces.rs
- apps/majordomus-cli/src/shared.rs
- apps/majordomus-cli/src/web/discover.rs
- apps/majordomus-cli/src/web/model.rs
- share/ui
- scripts/cockpit-assets
- .ai/repo/adrs/0135-majordomus-ui-is-the-primary-surface.md
- .ai/repo/project/issues/I2461.yaml
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
- I2462HOTOVO UI má každou obrazovku a jeho mesh je graf, jehož uzly otevírají inspektor
- I2484PŘIPRAVENO majordomus ui zajistí sdílený server a otevře dashboard UI
- I2486HOTOVO Žádná obrazovka nečeká na zdroj: stránka ukazuje poslední čtení s jeho stářím, které se znovu čte za zády čtenáře
Kritéria přijetí
- GET /ui na sdíleném serveru odpovídá 200 text/html s CSP Cockpitu a s vypnutým JavaScriptem ukazuje šest dlaždic a každý panel nebo jeho odkaz
- Každá dlaždice a panel Dashboardu cituje schopnost, kterou četl, a zdroj, který selže, činí z dlaždice „neodpovězeno“, nikdy 0
- První vykreslení Dashboardu se nikdy neptá integration.queue; /ui/panels/pull-requests odpovídá frontou jako stránkou a s ?fragment samotným panelem
- Lišta uvádí přesně ty obrazovky, na které dispatcher odpovídá, a test selže, když se obojí liší
- scripts/cockpit-assets --check selže, když je share/ui/ui.css zastaralé
- scripts/ci/cockpit-projection-check --ui-integrity selže při čtení registru nebo výchozí nulové hodnotě počtu v src/ui (případ 547)
- Každý panel jmenuje své zdroje s trasou API, příkazem CLI a nástrojem MCP, které deklaruje capabilities.describe, a Cockpit jen jako jejich technický pohled
Validace
- bin/majordomus plan validate
- cargo test --lib ui::
- cargo test --lib cockpit::assets
- scripts/cockpit-assets --check
Požadované důkazy
- ui_surface_served_test
- ui_dashboard_cites_sources_test
- ui_screenshots_1440_768_375
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| ui_surface_served_test | ci | cargo test --test ui_surface (běh validate 38223440282 na 722228ef3c, top v0.21.0, job rust) | the_dashboard_is_served_at_ui_under_the_cockpits_policy, the_queue_panel_is_a_page_and_a_fragment, the_ui_is_a_public_surface_and_answers_only_reads: ok | 722228e |
| ui_dashboard_cites_sources_test | ci | cargo test --lib ui::dashboard; cargo test --test ui_surface (validate run 38223440282 on 722228ef3c, the v0.21.0 top) | 9 testů ui::dashboard ok, včetně every_source_is_named_and_the_queue_waits_for_its_own_route; obsluhovaný přehled cituje šest schopností jejich stránkami v Cockpitu | 722228e |
| ui_screenshots_1440_768_375 | artifact | node scratchpad/shots.mjs (Playwright Chromium, tmavý) proti majordomus serve 0.21.0 sestavenému z perf/the-ui-answers-at-once d24107bd88 | /ui při 1440x900, 768x1024 a 375x812: žádné vodorovné přetečení, žádné chyby stránky | 722228e |
Časová osa
- zahájeno
- 2026-10-12T10:58:53Z
- ověřeno
- 2026-10-12T10:59:05Z
- dokončeno
- 2026-10-12T10:59:30Z
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/I2461.yaml. Přečtěte jej zpět pomocí majordomus plan show I2461.