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.

`majordomus ui` je primární povrch a Cockpit je technická vrstva pod ním

`majordomus ui` je primární povrch a Cockpit je technická vrstva pod ním

majordomus://adr/adr-0135přijato architekturarozhraníuicockpit

odkazuje na

  • put_in_force apps/majordomus-cli/src/cockpit/mod.rs (soubor)
  • put_in_force adr-0012
  • put_in_force adr-0022
  • put_in_force adr-0088
  • put_in_force docs/COCKPIT.md (dokument)

odkazuje na něj

135. majordomus ui je primární povrch a Cockpit je technická vrstva pod ním

Kontext

Prohlížečové povrchy tohoto repozitáře používají dva druhy čtenářů.

  • Jedna otázka se ptá, jak stojí dodávka. Co je ve frontě pull requestů a proč, které milníky jsou blokované, který release je živý, kteří workeři jsou v mesh, jaké důkazy platí a co říká dokumentace. To je otázka na vysoké úrovni, kladená ve slovníku samotného projektu lidmi, kteří nečtou registr.
  • Druhý se ptá, co je registr. Které schopnosti, objekty, grafy, trasy a schémata existují a jak je každé promítáno. Cockpit na to dnes odpovídá, jako vykreslený registr (ADR 0012): je to nízkoúrovňový, technický povrch.

Zadání vlastníka se uchovávají doslovně pod campaigns/ (sjednocený balíček se skutečnými daty campaigns/majordomus-ui-unified-real-data-v2-20261011/ a jeho nástupce campaigns/majordomus-ui-complete-opus-fable-v3-20261011/). Dřívější balíčky vlastníka (ui-implementation v1.1, ui-ux-dx) pojmenovaly první povrch majordomus ui, primární řídicí rovinu pro lidi. Prompt I2231 říkal, že volba mezi „přizpůsobeným Cockpitem“ a „samostatným povrchem“ se má zaznamenat, ne udělat v launcheru. Sjednocený balíček vlastníka se skutečnými daty z 2026-10-11 přináší jedenáct konceptů obrazovek (dashboard, odvodnění PR, úkoly a pull requesty, přehled plánu rozvoje a detail, mesh, CI/CD, schopnosti, důkazy, dokumentace). Téhož dne vlastník volbu rozhodl prostými slovy: „it is majordomus ui primary, not cockpit (low level)“.

Rozhodnutí

  • majordomus ui je samostatný povrch, a to primární. Má vlastní mount na sdíleném serveru, vlastní shell a vlastní navigaci, psanou slovníkem dodávky (Dashboard, Issues & PRs, PR Drain, Roadmap, Mesh, CI/CD, Capabilities, Evidence, Documentation). Sem člověka posílá majordomus ui a domovská stránka serveru jako první.

  • Cockpit zůstává technickou vrstvou. Zachovává své oblasti a trasy a nepřestylizuje se na obrazovky vysoké úrovně. Panel UI na něj odkazuje dolů jako na diagnostický pohled na svůj zdroj (schopnost, objekt či graf, které četl) a Cockpit odkazuje nahoru na UI. Žádný nekopíruje stránky druhého.

  • Jeden server, jeden model, žádná druhá aplikace. UI obsluhuje stejný sdílený server a skládá stejné schopnosti přes stejný exekutor (ADR 0004, ADR 0012). Nemá žádné datové úložiště, žádný vlastní slovník stavů a žádný JavaScript, který by rozhodoval doménový fakt. Pravidlo z ADR 0088 platí pro každý panel:

    • Jmenuje schopnost, vstup a ukazatel, které přečetlo.
    • Zdroj, který nedokáže odpovědět, učiní panel neznámým, nikdy prázdným ani zeleným.
    • Fakt bez producenta se čte „Not measured“ a jmenuje úkol, který by jej vytvořil.
  • Sdílená mechanika, oddělené povrchy. UI znovu používá mechaniku, kterou Cockpit už prokázal:

    • serverový builder elementů a generované design tokeny;
    • CSP připnutá hashem a neměnná aktiva s otiskem;
    • přibalené knihovny, načítané líně pro každou obrazovku (Cytoscape pro vztahy, ECharts pro měřené řady, jakmile budou přibaleny, Alpine pro drobné interakce, p5 jen pro odůvodněný dekorativní motiv a nikdy jako důkaz stavu);
    • sonda odvozená z tras a audit UI (ADR 0022), které objevují stránky UI tak, jak objevují stránky Cockpitu.

    Sdílený kód se přesune do modulu, který importují oba povrchy. Neduplikuje se.

  • První vykreslení je omezené. Obrazovka vykreslí svůj rámec a levné panely hned. Panel s pomalým zdrojem dorazí jako serverem vykreslený fragment vlastní trasy, takže i s vypnutým JavaScriptem stránka odkazuje na každý panel. Zdroje se ptají souběžně (I2460 je první případ).

  • majordomus ui příkaz zajistí sdílený server a otevře dashboard UI (I2231). Nepřidává žádný server ani režim.

Důsledky

  • I2231 (plánováno v PR #863, chore/the-owner-packs-are-planned) říká, že majordomus ui „opens this checkout's Cockpit“. Jeho název, cíl, požadovaný stav i kritéria přijetí se mění na „opens the UI's dashboard“. ui status a ui stop zůstávají serve status a serve stop pod jiným jménem a stále neexistuje druhý server.
  • Vysokoúrovňové obrazovky jsou nové routes a nová navigace pod mountem UI. Seznam oblastí Cockpitu, jeho stránky a jejich testy se pro jejich hostování nepřetvářejí.
  • Shell UI musí fungovat od první obrazovky na každé deklarované šířce. Práce na mobilní navigaci z #858 se znovu použije tam, kde je její mechanika obecná, ne tím, že se z UI udělá sekce Cockpitu.
  • docs/COCKPIT.md popisuje technickou vrstvu. Nová sekce docs/UI.md nebo vlastní dokument popisuje primární rozhraní. Web a domovská stránka serveru prezentují nejprve UI.

Stav

Navrženo relací d3 dne 2026-10-11 na slova vlastníka. Přijato vlastníkem 2026-10-12, dotázán v relaci p12 poté, co UI přistálo ve v0.21.0 (#940, #948, #952, #955, #957-#963): „Ano, přijmout obojí“ — toto rozhodnutí a funkci ui jako stabilní.

I2231 žilo jen na uzavřeném PR #863 a na master se nikdy nedostalo. Příkaz majordomus ui, který popisuje první důsledek, je místo toho naplánován jako I2484.

Odkud to pochází

kanonický soubor
.ai/repo/adrs/0135-majordomus-ui-is-the-primary-surface.md
identity
adr-0135
dostupné také jako
Zdroj MCP majordomus://adr/adr-0135 · majordomus entity show adr/adr-0135 · GET /api/v1/entity?uri=majordomus://adr/adr-0135
v Cockpitu
/cockpit/objects/adr/adr-0135

Tato stránka je generována z výše uvedeného souboru pomocí scripts/generate-site-data; úprava stránky nic nemění, úprava souboru změní všechna rozhraní. Výše uvedené vztahy jsou hrany docs/generated/graph.json, které spustitelný program zapisuje ze stejného indexu.

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