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.

I1015 — Povrch bez serveru za sebou se nenabízí, jako by ho měl

Zařídit, aby zpřístupnění povrchů jen pro backend — konzole API, živý stav, čtení za běhu — vyplývalo z metadat dostupnosti, a prokázat, že se obě projekce chovají správně.

HOTOVO vlna 2 · p0 · profil implementation · bezpečné paralelně

Součást capability-graph — Jeden graf schopností, dvě projekce a žádný druhý inventář toho, co tento repozitář umí.

Cíl

Zařídit, aby zpřístupnění povrchů jen pro backend — konzole API, živý stav, čtení za běhu — vyplývalo z metadat dostupnosti, a prokázat, že se obě projekce chovají správně.

Proč

Publikovaný web nemá server. Odkaz na runtime konzoli na něm je porušený slib a obvyklou opravou je kontrola vlastní adresy stránky, což je pravidlo skryté tam, kde ho nikdo nenajde.

Aktuální stav

web::Availability je ServedOnly, PublishedOnly nebo Both a ProjectionRoute::linkable() odpovídá jen z něj. Stranu běžícího serveru prověřují test/cases/89_web_surface.sh a apps/majordomus-cli/tests/projections.rs. Statická strana, která při měření 2026-09-10 chyběla, je kontrola 18 ve scripts/site-check: čte z vygenerovaného OpenAPI každou trasu, kterou projekce deklaruje jako pouze servírovanou, odmítne publikovanou stránku, která na některou odkazuje, a vyžaduje, aby každá byla na /docs/api/ uvedena jako vyžadující server. Úloha site ji spouští při každém sestavení. Změřeno na master b4a781c668, 2026-10-07.

Cílový stav

Vystavení vyplývá výhradně z metadat dostupnosti a pro každou projekci existuje test, který to tak udržuje.

Rozsah

  • apps/majordomus-cli/src/http/swagger.rs

Mimo rozsah

  • Jakékoli rozhodnutí učiněné podle hostname, adresy nebo build příznaku uvnitř stránky
  • Vykreslení mrtvého cíle, jako by byl živý

Závislosti

Co na tom čeká

Kritéria přijetí

  • Povrch jen pro backend se nabízí jako použitelný pouze tam, kde je backend k dispozici, rozhodnuto z metadat
  • Statický build neobsahuje žádný aktivní odkaz na povrch dostupný jen za běhu
  • Kde je užitečné zmínit nedostupný povrch, ukáže se jako nedostupný, ne tiše vynechaný ani odkazovaný
  • Oba případy se testují — statický build a běžící server s přítomným API

Validace

  • bash test/run.sh
  • scripts/cockpit-probe

Požadované důkazy

  • availability_drives_exposure
  • both_projections_tested

Důkazy

pokrývátypcommandvýsledeku commitu
availability_drives_exposureciscripts/site-check (kontrola 18), job site běhu validate na masteruOK plocha: každá trasa, která se pouze servíruje, je pojmenována na /docs/api/ a odnikud na ni nevede odkaz: /api/v1 /swagger /mcp /events /cockpit; site-check: 0 selhání, na b4a781c668b4a781c
both_projections_testedcibash test/run.sh 89_web_surface (suite-shard 2) a scripts/site-check (job site), běh validate na masteruok 89_web_surface for the running server; OK surface for the static build; both at b4a781c668 in one runb4a781c

Riziko

Toto je kontrola, která tiše hnije, protože rozbitý odkaz na publikované stránce nic neselže. Test pro ni musí běžet při každém sestavení.

Časová osa

zahájeno
2026-09-06T17:35:07Z
ověřeno
2026-10-07T13:30:01Z
dokončeno
2026-10-07T13:30:04Z

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/I1015.yaml. Zpětně ho přečtete pomocí majordomus plan show I1015.

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