the-mesh-works-out-of-the-box — Mesh funguje hned po instalaci: důvěryhodné stroje se najdou všemi způsoby a jejich relace spolupracují od prvního tahu
Důvěryhodný stroj, který spustí jakýkoli povrch Majordomus v repozitáři s deklarovaným meshem, je propojen s každým dalším důvěryhodným strojem v LAN nebo tailnetu bez ručně psané adresy, každý worktree se účastní a co mesh drží, lze přečíst jednou odpovědí nástroje.
AKTIVNÍ 3 of 8 issues done
- připraveno
- 4
- blokováno
- 1
- aktivní
- 0
- verify
- 0
- hotovo
- 3
- zrušeno
- 0
Problém
Dne 2026-10-10 vlastník označil spolupráci v meshi za tragickou a nařídil, aby fungovala hned po instalaci, všemi způsoby objevování, od chvíle, kdy se spustí klient LLM, server MCP nebo `majordomus serve`. Čtení kódu našlo šest mezer, které nepokrývá žádný stávající milník: žádné objevování přes Tailscale (tailnet se dosahuje jen přes adresy 100.x ručně zapsané v .ai/repo/mesh/majordomus.yaml); server se binduje a inzeruje na 127.0.0.1, pokud se neřekne jinak, takže se dva stroje s výchozím nastavením nikdy nespojí (apps/majordomus-cli/src/cli.rs:3355-3362, mesh/address.rs:39-45); `majordomus init` nedodává žádnou deklaraci meshe, takže čerstvý repozitář nemá mesh vůbec; propojený worktree bez vlastního serveru nemá žádnou spolupráci (`mesh handover publish` odpověděl 'cooperation inactive'); mesh.state a mesh.peers vracejí 56–134 kB bez filtru; a žádost o review nemá tělo, nelze ji uzavřít a nikdy nevyprší.
Výsledek
Důvěryhodný stroj, který spustí jakýkoli povrch Majordomus v repozitáři s deklarovaným meshem, je propojen s každým dalším důvěryhodným strojem v LAN nebo tailnetu bez ručně psané adresy, každý worktree se účastní a co mesh drží, lze přečíst jednou odpovědí nástroje.
Aktuální stav
Multicast na jednom segmentu LAN a pět ručně psaných rendezvous hubů; servery navázané na loopback; žádná deklarace v čerstvém repozitáři; worktree a žádosti o review mimo smyčku.
Cílový stav
Objevování přes Tailscale, multicast, broadcast a rendezvous; server s mesh dosažitelný na tailnetu a LAN pod seznamem důvěry; init, který deklaruje mesh a zapíše klíč stroje; worktree, které spolupracují přes runtime primárního; omezená, filtrovatelná čtení mesh; životní cyklus review, který končí.
Rozsah
- apps/majordomus-cli/src/mesh
- apps/majordomus-cli/src/capability/builtin/mesh.rs
- apps/majordomus-cli/src/cli.rs
- apps/majordomus-cli/src/shared.rs
- apps/majordomus-cli/src/lease.rs
- apps/majordomus-cli/src/commands
- share/skeleton
- share/schemas/majordomus/mesh-declaration
- lib/capture.sh
- docs/MESH.md
- test/cases
Mimo rozsah
- Důvěra stroji, který nikdo nevypsal: runtime-trust (I2261) drží nevypsaný klon mimo mesh a nic zde ho neoslabuje.
- Start relace, briefing a účast Codexu/Gemini: every-session-joins-the-mesh (I2285-I2292).
- Přidělování a provádění práce na peerovi: mesh-peers-execute-assigned-work (I2332–I2336).
Kritéria přijetí
- Dva důvěryhodné stroje na jednom tailnetu, každý s čerstvým `majordomus init` plus zápisem, se propojí bez ručně napsané adresy
- Server se zapnutým meshem je dosažitelný z důvěryhodného peera na tailnetu a nedůvěryhodného odmítne
- Worktree checkoutu, jehož primární instance běží na serveru, publikuje předávku a tvrzení
- mesh.state a mesh.peers odpovídají filtrovaným souhrnem pod 16 kB
- Žádost o revizi nese tělo a lze ji stáhnout nebo vyprší
Validace
- bin/majordomus plan validate
- cargo test --lib mesh::
Požadované důkazy
- two_machines_link_out_of_the_box
Rizika
- Staví na runtime-trust a na I2123 (PR #860), které zatím nejsou na master: I2411 přistane po nich.
- Navázání mimo loopback rozšiřuje to, co může server dosáhnout: čeká na omezení vzdálených volajících z runtime-trust (I2123, #860) a odmítne se pro uzel, který seznam důvěry nejmenuje.
Úkoly
Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I2410 | PŘIPRAVENO | 0 | — | Důvěryhodný stroj na tailnetu se najde přes Tailscale, bez ručně psané adresy |
| I2411 | PŘIPRAVENO | 0 | — | Server s povoleným meshem je dosažitelný na tailnetu i v LAN, a jen pro důvěryhodného peera |
| I2412 | PŘIPRAVENO | 0 | — | `majordomus init` deklaruje mesh a zapíše klíč tohoto stroje, takže čerstvý repozitář spolupracuje |
| I2413 | HOTOVO | 0 | — | Propojený worktree spolupracuje přes běžící server svého repozitáře a start, který ho nemůže zajistit, řekne proč |
| I2414 | HOTOVO | 0 | — | mesh.state a mesh.peers odpovídají filtrovaným souhrnem, který se vejde do jedné odpovědi nástroje |
| I2415 | HOTOVO | 0 | — | Žádost o review v meshi nese tělo, lze ji stáhnout a vyprší |
| I3835 | PŘIPRAVENO | 0 | — | A node the mesh lists as trusted and present but cannot link is said so, with why, on every surface that names it |
| I3837 | BLOKOVÁNO | 1 | I2410 | A case that enables the mesh declares its tailnet provider off, so it stays hermetic on a machine that runs Tailscale |
Graf
flowchart LR
I2410["I2410<br/>A trusted machine on the tailnet is found through Tailscale, with no address written by hand"]:::ready
I2411["I2411<br/>A server whose mesh is enabled is reachable on the tailnet and the LAN, and only by a trusted peer"]:::ready
I2412["I2412<br/>`majordomus init` declares the mesh and enrols this machine's key, so a fresh repository cooperates"]:::ready
I2413["I2413<br/>A linked worktree cooperates through its repository's running server, and a start that cannot ensure one says why"]:::done
I2414["I2414<br/>mesh.state and mesh.peers answer a filtered summary that fits one tool answer"]:::done
I2415["I2415<br/>A mesh review request carries a body, can be withdrawn, and expires"]:::done
I3835["I3835<br/>A node the mesh lists as trusted and present but cannot link is said so, with why, on every surface that names it"]:::ready
I3837["I3837<br/>A case that enables the mesh declares its tailnet provider off, so it stays hermetic on a machine that runs Tailscale"]:::blocked
I2410 --> I3837
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxOdkazováno z tohoto diagramu (8)
- I2410 Důvěryhodný stroj na tailnetu se najde přes Tailscale, bez ručně zapsané adresy
- I2411 Server s povoleným mesh je dosažitelný na tailnetu i LAN, a to jen důvěryhodným peerem
- I2412 majordomus init deklaruje mesh a zapíše klíč tohoto stroje, takže nový repozitář spolupracuje
- I2413 Propojený worktree spolupracuje přes běžící server svého repozitáře a start, který ho nemůže zajistit, říká proč
- I2414 mesh.state a mesh.peers odpovídají filtrovaným souhrnem, který se vejde do jedné odpovědi nástroje
- I2415 Žádost o review na meshi nese tělo, lze ji stáhnout a vyprší
- I3835 A node the mesh lists as trusted and present but cannot link is said so, with why, on every surface that names it
- I3837 A case that enables the mesh declares its tailnet provider off, so it stays hermetic on a machine that runs Tailscale
Kanonický záznam: .ai/repo/project/milestones/the-mesh-works-out-of-the-box.yaml. Přečtěte jej zpět pomocí majordomus plan show the-mesh-works-out-of-the-box.