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.

I2131 — Server používaný přes Cockpit nebo HTTP se nezastaví jako nečinný a checkout si drží jednu adresu

Započítat použití každého povrchu do časového limitu nečinnosti a navázat port odvozený z identity checkoutu, než se sáhne po náhodném.

HOTOVO vlna 0 · p1 · profil implementation · běží samostatně

Součást runtime-lifecycle — Jeden použitelný server na checkout se spouští, připojuje, zastavuje a hlásí svůj stav bez souběhů a skrytých zabití.

Cíl

Započítat použití každého povrchu do časového limitu nečinnosti a navázat port odvozený z identity checkoutu, než se sáhne po náhodném.

Proč

„Připojeno“ znamená pouze relace MCP HTTP (apps/majordomus-cli/src/shared.rs:250-253) a smyčka serve --idle se po 900 s bez jedné zastaví (apps/majordomus-cli/src/commands/serve.rs:128-146). Člověk, který používá jen Cockpit, REST nebo WebSocket /events, se nepočítá, takže server orientovaný na UI se zastaví 15 minut po zahájení prohlížení. Výchozí port 8741 (apps/majordomus-cli/src/cli.rs:3301) dostane jeden checkout a každý další přejde na náhodný port (apps/majordomus-cli/src/http/server.rs:77-86): 2026-10-09 živý server žádal o 8741 a obsluhuje 61068, adresu, která se mění při každém restartu, takže konfigurace klienta Streamable HTTP ani záložka Cockpitu nemají nic stabilního, co by pojmenovaly. docs/MCP.md:29 ukazuje :8741, jako by to byla norma. Příkaz majordomus ui neexistuje; serve ensure a env enter jsou vstupy orientované na UI (apps/majordomus-cli/src/commands/serve.rs:481-576, apps/majordomus-cli/src/commands/env.rs:701-760) a fungují bez stdio (případ 190_entry_is_automatic.sh). Výchozí audit z 2026-10-09 na master 1fb8d6be44, mezera životního cyklu 9 a drift 10.

Aktuální stav

Server bez relace MCP se zastaví při svém timeoutu nečinnosti, ať jej používá cokoli jiného. Každý checkout kromě jednoho obsluhuje na náhodném portu.

Cílový stav

Časovač nečinnosti počítá jako použití připojenou relaci MCP, požadavek HTTP zodpovězený za poslední sekundu (http::server::used_within) a otevřený kanál /events, takže Cockpit, REST API a sledované provedení svůj server udrží. Odložená část, port odvozený z identity repozitáře a worktree, je I2702; zda je potřeba vstup nad rámec serve ensure, rozhoduje ADR 0135 a plánuje se jako I2484.

Rozsah

  • apps/majordomus-cli/src/shared.rs
  • apps/majordomus-cli/src/commands/serve.rs
  • apps/majordomus-cli/src/http/server.rs
  • apps/majordomus-cli/src/http/events.rs
  • apps/majordomus-cli/src/cli.rs
  • apps/majordomus-cli/tests/serve_lifecycle.rs
  • docs/MCP.md
  • docs/COCKPIT.md

Mimo rozsah

  • Přidání příkazu majordomus ui dřív, než záznam tohoto úkolu rozhodne, že je potřeba.

Závislosti

Žádné. Tento úkol je kořenem grafu.

Co na tom čeká

Kritéria přijetí

  • Server s otevřeným WebSocketem /events a bez relace MCP po vypršení nečinnosti stále běží a zastaví se do jednoho timeoutu po zavření socketu

Validace

  • bin/majordomus plan validate
  • cargo test --test serve_lifecycle
  • MJ_TEST_JOBS=4 bash test/run.sh 190_entry_is_automatic

Požadované důkazy

  • ui_use_keeps_server_alive_test

Důkazy

pokrývátypcommandvýsledeku commitu
ui_use_keeps_server_alive_testtestcargo test --locked --manifest-path apps/majordomus-cli/Cargo.toml --test serve_in_use a_server_watched_over_its_live_channel_outlives_its_idle_timeout_and_ends_once_it_closestest result: ok. 2 passed; 0 failed (whole file) (run 2026-10-14 12:00-12:15Z on master 2ca25bb9cf plus this change)2ca25bb

Časová osa

zahájeno
2026-10-14T12:15:51Z
ověřeno
—
dokončeno
2026-10-14T12:16:31Z

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/I2131.yaml. Přečtěte ho zpět pomocí majordomus plan show I2131.

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