I2410 — Důvěryhodný stroj v tailnetu se najde přes Tailscale, bez ručně psané adresy
Přidat poskytovatele objevování Tailscale vedle multicastu, broadcastu a rendezvous: čte peery lokálního tailnetu a nabízí adresu tailnetu každého z nich na deklarovaném portu jako kandidáta, kterého spojení pak přijme, nebo odmítne podle seznamu důvěry.
PŘIPRAVENO vlna 0 · p0 · profil implementation · bezpečné souběžně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2410 bude přijato.
Cíl
Přidat poskytovatele objevování Tailscale vedle multicastu, broadcastu a rendezvous: čte peery lokálního tailnetu a nabízí adresu tailnetu každého z nich na deklarovaném portu jako kandidáta, kterého spojení pak přijme, nebo odmítne podle seznamu důvěry.
Proč
Žádný poskytovatel nečte tailnet (apps/majordomus-cli/src/mesh/manager.rs:436-450 zapojuje jen multicast, broadcast a rendezvous; jediná zmínka o Tailscale je test řazení v mesh/address.rs:186). Stroje na tailnetu vlastníka jsou dnes propojeny jen proto, že .ai/repo/mesh/majordomus.yaml:41-50 vypisuje jejich adresy 100.x ručně, takže stroj přidaný do tailnetu je neviditelný, dokud někdo tento soubor neupraví.
Aktuální stav
Peery v tailnetu se vytáčejí jen přes ručně psané rendezvous endpointy.
Cílový stav
Sekce `tailscale:` deklarace mesh (ve výchozím stavu zapnutá, je-li přítomno CLI tailscale), jejíž poskytovatel vypíše online peery z `tailscale status --json` a jejich adresy předá volajícímu spolupráce; chybějící nebo selhávající tailscale se hlásí v mesh doctor, nikdy fatálně.
Rozsah
- apps/majordomus-cli/src/mesh
- apps/majordomus-cli/src/mesh/manager.rs
- apps/majordomus-cli/src/mesh/config.rs
- share/schemas/majordomus/mesh-declaration
- docs/MESH.md
- test/cases
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
- I3176BLOCKED The committed mesh declaration names its hubs by node, and no private address is tracked or published
- I3187BLOCKED A link names the endpoint candidates it tried, the one it chose and why
- I3837BLOCKED A case that enables the mesh declares its tailnet provider off, so it stays hermetic on a machine that runs Tailscale
Kritéria přijetí
- S podvrženým `tailscale status --json` jmenujícím dva online peery provider nabídne přesně jejich adresy v tailnetu na deklarovaném portu
- Offline peer, peer bez IP tailnetu a chybějící CLI tailscale každý nevytvoří žádného kandidáta a řádek doctoru
- Kandidáta, kterého seznam důvěry nejmenuje, spojení odmítne jako kteréhokoli jiného kandidáta
Validace
- bin/majordomus plan validate
- cargo test --lib mesh::tailscale
Požadované důkazy
- tailscale_provider_stubbed_test
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á.
Č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/I2410.yaml. Načtěte ho zpět pomocí majordomus plan show I2410.