I1501 — Provádění, které spustí člověk, je provádění, které server vidí
Zařídit, aby `majordomus-cli run` došel k serveru, který tento repozitář servíruje, aby rovina provádění, kterou povrch ukazuje, a rovina provádění, kterou člověk používá, byly tatáž rovina — nebo zaznamenat rozhodnutí, že nejsou, a přestat to na každém povrchu naznačovat.
HOTOVO vlna 0 · p0 · profil implementation · běží samostatně
Součást development-runtime — The runtime has a development surface.
Cíl
Zařídit, aby `majordomus-cli run` došel k serveru, který tento repozitář servíruje, aby rovina provádění, kterou povrch ukazuje, a rovina provádění, kterou člověk používá, byly tatáž rovina — nebo zaznamenat rozhodnutí, že nejsou, a přestat to na každém povrchu naznačovat.
Proč
F2 z tabulky selhání auditu a ten, který rozhoduje, zda historie provádění vůbec může existovat. `run` sestaví registr ve vlastním procesu, provede tam, streamuje na vlastní terminál a skončí; úložiště provedení serveru je jiné úložiště v jiném procesu. Změřeno, ne přečteno: za běhu server po celou dobu hlásil 0 počet, 0 aktivních a 0 zapamatovaných a dřívější běh, který vytvořil pojmenované úspěšné provedení, server také nikdy neviděl. Důsledek je přesný — /cockpit/executions může ukázat jen práci spuštěnou přes tento server pomocí executions.start, vše, co vývojář skutečně spouští, je pro něj neviditelné, a živý kanál z docs/EXECUTIONS.md, který skutečně funguje a streamuje rámce, je okno do roviny, do které téměř nikdo nezapisuje. Spolu s netrvalostí, kterou modul provedení uvádí jako své vlastní rozhodnutí, historie provádění, kterou vývojový povrch potřebuje, dnes neexistuje nikde.
Aktuální stav
Dvě disjunktní roviny. Registr deklaruje executions.start, executions.cancel a executions.events; všechny tři pracují nad vlastním úložištěm přijímajícího procesu. `run` je cesta CLI, která nikdy nekontaktuje server, a nic ve výstupu jedné strany neříká, že ta druhá existuje.
Cílový stav
Běh se buď zaregistruje u serveru repozitáře, takže existuje jedna historie provádění, nebo odmítne naznačovat, že existuje. Ať se zvolí cokoli, uvádí se to tam, kde na to čtenář povrchu provádění narazí, nejen v návrhovém dokumentu.
Rozsah
- apps/majordomus-cli/src/execution
- apps/majordomus-cli/src/capability/builtin/executions.rs
- apps/majordomus-cli/src/commands
- docs/EXECUTIONS.md
- test/cases
Mimo rozsah
- Trvalá fronta, opakování nebo plánovač. Modul provádění uvádí rozhodnutím, že žádné nemá; konvergence obou rovin to znovu neotevírá.
- Nechat server provádět jménem volajícího, když žádný server neběží. Checkout bez serveru musí být stále schopen spustit schopnost.
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Provedení spuštěné z CLI, zatímco server servíruje repozitář, je vidět v seznamu provedení tohoto serveru, nebo CLI jasně řekne, že vidět není, a proč
- Tvrzení je doloženo dotazováním serveru za běhu, ne čtením zdrojového kódu
- Žádný povrch nepopisuje historii provádění, ke které se žádný zapisovatel nedostane
Validace
- bash test/run.sh 100_execution_plane
- bin/majordomus-cli capabilities validate
Požadované důkazy
- run_is_visible_to_the_server
- measured_while_in_flight
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| run_is_visible_to_the_server | test | MJ_TEST_JOBS=2 bash test/run.sh 3024_a_run_is_seen_by_the_server 100_execution_plane 100_environment | testy: 3 prošly, 0 selhaly; případ 3024 se dotazuje skutečného serveru, zatímco běží CLI, najde jej, zruší ho ze serveru a přečte řádek bez serveru (spuštěno 2026-10-14 16:45Z na master ff3829709616e638596315d6ca42be64b570b74f plus tato změna) | ff38297 |
| measured_while_in_flight | ruční | serve --port 0; run executions.demonstrate --input '{\"steps\":6,\"delay_ms\":500}' na pozadí; GET /api/v1/executions po 1,5 s | 16:46:51Z za běhu: count 1, active 1, state running, actor {kind: cli, pid: 28239}, progress 2 of 6; poté: succeeded, duration_ms 3203. Před touto změnou bylo stejné čtení count 0, active 0 (vlastní měření úkolu) | ff38297 |
Riziko
Střední. Učinit `run` závislým na serveru mění cenu a způsoby selhání nejpoužívanějšího příkazu spustitelného souboru a checkout bez serveru musí dál fungovat. Bezpečný tvar je ten, že se server použije, když už tento repozitář servíruje, a nikdy se kvůli `run` nespouští.
Časová osa
- zahájeno
- 2026-10-14T16:47:04Z
- ověřeno
- —
- dokončeno
- 2026-10-14T16:47:12Z
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/I1501.yaml. Přečtěte jej zpět pomocí majordomus plan show I1501.