Co to znamená
Mesh má dvě pravdy, které se mohou rozejít: co repozitář deklaruje a co s tím udělal sdílený server. Dne 2026-09-12 tři stroje měly každý necommitnuté enabled: true, zatímco master říkal false; checkout resetovaný na master nastartoval server, jehož mesh byl správně vypnutý — a nic to nikomu neřeklo. Toto tvrzení je, že drift je hlasitý na dvou místech, kam se pracovník už dívá.
majordomus mesh doctor končí kontrolou runtime, která čte vlastní rozhodnutí serveru — aktivováno, nebo odmítnuto s důvodem — a selže s kódem 10, když je deklarace povolena a mesh není aktivní, přičemž pojmenuje důvod a restart, který následuje po opravě. Briefing, který vkládá startovní událost providera, nese řádek Mesh: pod řádkem Shared server:, kdykoli repozitář sleduje deklaraci: active — … s tím, co server vidí, off, as declared, nebo DECLARED ENABLED BUT NOT ACTIVE — … se stejným důvodem. A deklarace tohoto repozitáře je držena: strom, jehož commitnutá deklarace je nesledovaná, zakázaná, ne deny_unknown, povoluje méně klíčů, než docs/MESH.md jmenuje strojů, nebo nejmenuje žádný rendezvous hub, je odmítnut.
Princip
Runtime meshe drží vedle svého stavu jeden bit: zda o něm sdílený server něco rozhodl (MeshRuntime::decided, apps/majordomus-cli/src/mesh/manager.rs). Server jej nastaví aktivací meshe nebo odmítnutím s důvodem; v procesu příkazového řádku jej nenastaví nic, takže nerozhodnutý runtime je absence, ne verdikt. Schopnost mesh.doctor předá stav runtime do doctor_at (apps/majordomus-cli/src/mesh/doctor.rs), jen když je bit nastaven, a kontrola runtime jej posoudí proti deklaraci: povolený a neaktivní je jediné selhání, vedle aktivního meshe, jehož každý deklarovaný transport selhal.
majordomus mesh doctor se zeptá běžícího serveru tohoto checkoutu na report (GET /api/v1/mesh/doctor), pokud ho servíruje, takže verdikt je serverový, a spustí ho ve vlastním procesu jen tehdy, když žádný neběží. Knihovna hooků (lib/capture.sh, mj_capture_mesh_line) spouští tento příkaz poté, co událost start zajistila server, a vykreslí report do jediného řádku briefingu; neposílá žádný vlastní požadavek, takže jediný deklarovaný požadavek v SECURITY.md zůstává jediný.
Jak to vidět
majordomus mesh doctor # ok/FAIL per check; `runtime` is the server's verdict
majordomus mesh doctor --format json # the same report, for scripts; exit 10 on a failed check
majordomus run mesh.doctor --format json # this process's self-check, never a server's
bash test/run.sh 494_the_mesh_is_declared_and_held
cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test mesh
Server, jehož identitu nelze zapsat, pod povolenou deklarací informuje:
Shared server: ready http://127.0.0.1:8741 pid 123 version 0.10.0 (started by this call)
Mesh: DECLARED ENABLED BUT NOT ACTIVE — identity: /srv/state/majordomus/node.json: Is a directory (os error 21)
an_enabled_declaration_the_server_could_not_activate_fails_the_doctor_and_names_why v apps/majordomus-cli/tests/mesh.rs dokazuje neúspěšný verdikt nad skutečným serverem, vedle verdiktů active a off-as-declared dvou testů před ním; test/cases/494_the_mesh_is_declared_and_held.sh čte commitnutou deklaraci tohoto repozitáře a provede jednorázovým repozitářem událost start pro každou odpověď briefingu.
Co nepokrývá
Nezpůsobí, že mesh k někomu dosáhne: aktivní mesh, jehož huby jsou nedostupné, čeká a ukazuje to jako počet present nula, ne jako selhanou kontrolu. Nespouští, nedohlíží ani neinstaluje huby — jsou to servery spouštěné ručně mimo loopback a instalátor je dlužen jako typovaná schopnost (ADR 0059). Řádek briefingu chybí, když žádný server není připraven (říká proč řádek Shared server:) nebo spustitelný soubor nedokáže odpovědět. Nedrží kostru, která nedodává žádnou deklaraci (mesh-off-by-default). A verdikt důvěry pouze označuje; nic neuděluje (mesh-observation-not-authority).
Proč existuje
Deklarace, která říká zapnuto, a server, který je vypnutý, je jediný stav, ve kterém platí všechny ostatní záruky meshe a operátor je přesto sám. Proměnit tento stav v neprošlou kontrolu a řádek briefingu je to, co mění „mesh byl den tiše vypnutý“ na „první řádky první relace to řekly“.