I0905 — Liveness a readiness jsou registrované schopnosti, ne hacky routeru
Zpřístupnit levné endpointy liveness a readiness přes registr schopností, aby kontrola zdraví providera, test kontejneru i smoke sada mířily na trasy, které registr zná.
PŘIPRAVENO vlna 2 · p0 · profil implementation · bezpečné paralelně
Součást fly-deployment — Image kontejneru je projekcí modelu repozitáře a jeho smoke test je jeho důkazem.
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I0905 bude přijato.
Cíl
Zpřístupnit levné endpointy liveness a readiness přes registr schopností, aby kontrola zdraví providera, test kontejneru i smoke sada mířily na trasy, které registr zná.
Proč
Trasa zdraví přidaná přímo do routeru by byla neviditelná pro OpenAPI, dokumentaci i smoke sadu odvozenou z tras — tři projekce by tiše postrádaly endpoint, který platforma dotazuje nejčastěji.
Aktuální stav
system.health stále agreguje diagnostiku indexu, pokrytí měřením výkonu a zastarání projekcí a liveness a readiness jsou nyní samostatné registrované schopnosti v apps/majordomus-cli/src/capability/builtin/health.rs, každá s vlastním handlerem a unit testy. 2026-09-10 změnilo i okolní polovinu: ADR 0035 učinilo stav samotného serveru schopností (server.status, GET /api/v1/server), report zdraví jmenuje proces za adresou a readiness přestalo znamenat tři nesouvisející věci (PR #153, PR #164). Co zde ustaveno není, je zbytek kontraktu -- změřená cena v rámci rozpočtu blokující kontroly a objekt nasazení, jehož validace odmítne odkaz na trasu, která není registrována. Změřeno na master 6042f4286, 2026-09-10.
Cílový stav
Liveness odpovídá, zda je tento proces živý, levně a bez doteku vrstvy. Readiness odpovídá, zda může obsluhovat provoz, a kontroluje jen lokální inicializaci. Obojí je registrováno, obojí zdokumentováno a obojí má změřenou cenu.
Rozsah
- apps/majordomus-cli/src/capability/builtin/health.rs
Mimo rozsah
- Kontaktování jakéhokoli externího poskytovatele nebo síťové služby kvůli rozhodnutí o připravenosti
- Nahrazení nebo oslabení stávajícího agregátu system.health
Závislosti
Co na tom čeká
- I0909ZABLOKOVÁNO Produkční image je vygenerovaná projekce specifikace buildu
- I0916BLOKOVÁNO Smoke sada se odvozuje z registru cest a nikdy se nepíše dvakrát
Kritéria přijetí
- Liveness se vrací rychle bez procházení souborového systému, sestavení indexu a přístupu k síti
- Připravenost kontroluje jen lokální inicializaci potřebnou k obsluze, nikdy externího poskytovatele
- Ani jedno nevyžaduje autentizaci a obě jsou registrované schopnosti, které se objevují v OpenAPI a ve vygenerované referenci
- Změřená cena každé je zaznamenána a zůstává v rozpočtu blokujících kontrol, který politika deklaruje
- Kanonický objekt nasazení odkazuje na tyto routy a validace odmítne odkaz na routu, která není registrována
Validace
- cargo test --workspace --all-features
- majordomus generate --check
Požadované důkazy
- healthz_registered
- readyz_registered
- cheap_measured
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á.
Riziko
Kontrola připravenosti, která vyroste v sondu závislostí, způsobí selhání nasazení, protože nesouvisející služba je mimo provoz. Připravenost odpovídá na jednu otázku: může tento proces obsloužit stránku.
Č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/I0905.yaml. Přečtěte ho zpět pomocí majordomus plan show I0905.