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.

I2133 — Každý vstup a odpověď meshe má mez a odmítnutá registrace se nic nedozví

Omezit kanál discovery, každou odpověď, kterou runtime čte, a kandidáty, které přijme; na odmítnutou registraci odpovědět samotným odmítnutím; a dát každému opakování linku spodní mez a jitter.

HOTOVO vlna 0 · p1 · profil implementation · běží samostatně

Součást runtime-trust — Runtime je bezpečné zpřístupnit z jiného stroje a připojení k mesh nikomu nevěří omylem.

Cíl

Omezit kanál discovery, každou odpověď, kterou runtime čte, a kandidáty, které přijme; na odmítnutou registraci odpovědět samotným odmítnutím; a dát každému opakování linku spodní mez a jitter.

Proč

Kanál poskytovatele je neomezený (apps/majordomus-cli/src/mesh/manager.rs:425 channel()) a krmí jedno vlákno, které provádí Ed25519 verify na každý datagram, bez limitu na zdroj a bez počítadla zahozených (hrozba T3). Odpovědi rendezvous a linku volajícímu se čtou neomezeným read_to_end (apps/majordomus-cli/src/mcp/bridge.rs:84-85) jen s timeoutem na čtení, takže pomalé kapání drží workera a zámek kola na runtime (apps/majordomus-cli/src/mesh/cooperation.rs:2383-2387) (T4), a počet přijatých kandidátů je neomezený. docs/MESH.md:341 uvádí 'messages (900 KiB)' jako mez záplavy, která platí jen pro to, co přijímá odpovídající (apps/majordomus-cli/src/mesh/cooperation.rs:1769-1779, 2010-2020) a co odesílá volající (apps/majordomus-cli/src/mesh/link.rs:883-888). mesh.register odpovídá vlastní obálkou a až 32 kandidáty, i když je obálka volajícího odmítnuta (apps/majordomus-cli/src/mesh/manager.rs:623-636), a kandidáti zahrnují nedůvěryhodné uzly kteréhokoli repozitáře (apps/majordomus-cli/src/mesh/registry.rs:342-357) (T2, T13). Odpověď UnknownLink se opakuje s nulovým zpožděním (apps/majordomus-cli/src/mesh/cooperation.rs:2592-2595), takže peer, který uvítá a pak odmítne sync, žene aktivní smyčku, a backoff linku nemá jitter (apps/majordomus-cli/src/mesh/cooperation.rs:2611-2614). Základní audit z 2026-10-09 na masteru 1fb8d6be44, mezery mesh 5 a 11, hrozby T2, T3, T4 a T13, drift 5.

Aktuální stav

Vstupy, které odpovídač přijímá, jsou omezené; discovery kanál, odpovědi, které čte dialer, přijatí kandidáti a odpovědi na registraci omezené nejsou.

Cílový stav

Provideři posílají přes omezenou frontu (OBSERVATION_QUEUE, 1024), jejíž zahozené položky se počítají jako přetečení v odmítnutích mesh.status; odmítnutá registrace se zodpoví samotným odmítnutím a přijatá tímto uzlem a důvěryhodnými uzly vlastních repozitářů volajícího (MeshRegistry::candidates_for; nefiltrovaný candidates je pryč); odpovídající, který stále odpovídá unknown_link, se opakuje nejrychleji po heartbeatu po prvním okamžitém opakování. Odložená část, meze odpovědi a kandidátů volajícího, jitter na zpětném ustupování spojení a test frekvence opakování unknown_link, je I2704.

Rozsah

  • apps/majordomus-cli/src/mesh/manager.rs
  • apps/majordomus-cli/src/mesh/rendezvous.rs
  • apps/majordomus-cli/src/mesh/registry.rs
  • apps/majordomus-cli/src/mesh/cooperation.rs
  • apps/majordomus-cli/tests/mesh.rs
  • apps/majordomus-cli/tests/mesh_cooperation.rs
  • docs/MESH.md

Závislosti

Žádné. Tento úkol je kořenem grafu.

Co na tom čeká

Kritéria přijetí

  • Datagramy nad hranici kanálu se zahazují a počítají ve stavu mesh a paměť procesu zůstává omezená při testu zahlcení
  • Registrace, jejíž obálka je odmítnuta, nedostane žádného kandidáta a žádná odpověď nenese kandidáta jiného repozitáře

Validace

  • bin/majordomus plan validate
  • cargo test --lib mesh
  • cargo test --test mesh --test mesh_cooperation

Požadované důkazy

  • discovery_flood_bounded_test
  • refused_registration_learns_nothing_test

Důkazy

pokrývátypcommandvýsledeku commitu
discovery_flood_bounded_testtestcargo test --locked --manifest-path apps/majordomus-cli/Cargo.toml --test mesh discovery_flood_bounded_testtest result: ok. 8 passed; 0 failed (whole file) (run 2026-10-14 12:00-12:15Z on master 2ca25bb9cf plus this change)2ca25bb
refused_registration_learns_nothing_testtestcargo test --locked --manifest-path apps/majordomus-cli/Cargo.toml --test mesh a_registration_learns_only_the_trusted_nodes_of_its_own_repositorytest result: ok. 8 passed; 0 failed (whole file) (run 2026-10-14 12:00-12:15Z on master 2ca25bb9cf plus this change)2ca25bb

Časová osa

zahájeno
2026-10-14T12:15:55Z
ověřeno
—
dokončeno
2026-10-14T12:16:35Z

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/I2133.yaml. Načtěte jej zpět pomocí majordomus plan show I2133.

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