I2484 — majordomus ui zajistí sdílený server a otevře dashboard UI
Dát primárnímu povrchu jeho příkaz: `majordomus ui` zajistí sdílený server tohoto checkoutu stejně jako `serve ensure`, vypíše adresu /ui a otevře ji v prohlížeči, takže se člověk k UI dostane jedním krokem a nepotřebuje lease, port ani Cockpit, aby je našel.
PŘIPRAVENO vlna 1 · p1 · profil implementation · bezpečné paralelně
Součást development-runtime — The runtime has a development surface.
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2484 bude přijato.
Cíl
Dát primárnímu povrchu jeho příkaz: `majordomus ui` zajistí sdílený server tohoto checkoutu stejně jako `serve ensure`, vypíše adresu /ui a otevře ji v prohlížeči, takže se člověk k UI dostane jedním krokem a nepotřebuje lease, port ani Cockpit, aby je našel.
Proč
ADR 0135, přijaté vlastníkem 2026-10-12, jmenuje `majordomus ui` primárním povrchem a jeho první důsledek říká, že příkaz otevře dashboard UI. Úkol, který to měl nést, I2231, žil jen na PR #863, který byl zavřen, takže master žádný příkaz nemá, docs/MAJORDOMUS_UI.md říká číst adresu ze `serve status` a `just open ui` je recept, ne příkaz executable.
Aktuální stav
`majordomus ui` je neznámý příkaz. Člověk otevře /ui na adrese, kterou vypíše `majordomus serve status`, nebo pomocí `just open ui`.
Cílový stav
`majordomus ui` je jedna položka kanonického grafu příkazů, projekce `server.status` a `serve ensure` bez vlastního serveru (ADR 0135: žádný druhý server, žádný režim): zajistí sdílený server tohoto checkoutu, počká, až je připraven, vypíše URL /ui (nebo /ui/<screen>, je-li jedna jmenována a SCREENS ji drží) a otevře ji, pokud není dáno --no-open nebo nelze spustit prohlížeč, v takovém případě to řekne a URL přesto vypíše. `ui status` a `ui stop` se nepřidávají: `serve status` a `serve stop` už odpovídají. Text nápovědy, generovaná reference příkazů a most just se odvozují z deklarace a docs/MAJORDOMUS_UI.md upouští od svého obejití.
Rozsah
- apps/majordomus-cli/src/commands
- apps/majordomus-cli/src/cli.rs
- apps/majordomus-cli/src/ui
- docs/MAJORDOMUS_UI.md
- test/cases
- .ai/repo/project/issues/I2484.yaml
Mimo rozsah
- Druhý server nebo režim serveru jen pro UI
- Jakákoli změna samotných obrazovek
Závislosti
Kritéria přijetí
- `majordomus ui --no-open` na checkoutu bez běžícího serveru jeden spustí, vypíše URL končící /ui a to URL odpoví 200
- `majordomus ui --no-open` při již běžícím serveru vypíše URL /ui toho serveru a nespustí druhý server
- `majordomus ui --no-open <screen>` vypíše /ui/<screen> pro obrazovku, kterou SCREENS drží, a neznámou obrazovku odmítne jménem a vypíše ty známé
- Příkaz se objeví ve vygenerované referenci příkazů a v mostu just bez ručně psané položky
Validace
- bin/majordomus plan validate
- cargo test --lib commands::
- majordomus generate --check
Požadované důkazy
- ui_command_case
- ui_command_unit_tests
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
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/I2484.yaml. Přečtěte ho zpět pomocí majordomus plan show I2484.