I2704 — Dialer nečte odpověď nad mez odkazu ani víc kandidátů, než dovoluje mez, a odmítající peer se zkouší znovu naměřenou, rozptýlenou frekvencí
Omezit odpovědi na link a rendezvous, které dialer čte, na hranici zprávy linku a počet kandidátů, které přijímá, na hranici registrace, přidat linku backoff s jitterem a změřit v testu míru opakování unknown_link.
PŘIPRAVENO vlna 1 · p1 · profil implementation · běží samostatně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2704 bude přijato.
Cíl
Omezit odpovědi na link a rendezvous, které dialer čte, na hranici zprávy linku a počet kandidátů, které přijímá, na hranici registrace, přidat linku backoff s jitterem a změřit v testu míru opakování unknown_link.
Proč
Odděleno od I2133 dne 2026-10-14. I2133 omezilo frontu objevování, na odmítnutou registraci odpovědělo samotným odmítnutím a zpomalilo opakování unknown_link; jeho desired_state o omezení odpovědi, kterou dialer čte, a počtu přijatých kandidátů, jitteru backoffu linku a testu, který měří míru opakování unknown_link, říkal „Not done here“, zatímco jeho kritéria přijetí je stále vyžadovala, takže se nemohlo nikdy uzavřít. Audit základního stavu z 2026-10-09 na masteru 1fb8d6be44, mezery mesh 5 a 11, hrozby T4 a T13.
Aktuální stav
Každá odpověď, kterou bridge::request čte, je omezena na MAX_REPLY_BYTES, 32 MiB (apps/majordomus-cli/src/mcp/bridge.rs, I2147), ne na MAX_LINK_MESSAGE (900 KiB, apps/majordomus-cli/src/mesh/link.rs), které omezuje jen to, co přijímá odpovídající a co posílá volající. Klient rendezvous bere každého kandidáta, kterého odpověď nese (apps/majordomus-cli/src/mesh/rendezvous.rs); MAX_CANDIDATES (32) omezuje jen to, co tento uzel odpovídá (apps/majordomus-cli/src/mesh/manager.rs). Cooperation::backoff (apps/majordomus-cli/src/mesh/cooperation.rs) je heartbeat krát 2^selhání bez jitteru. Žádný test neměří, jak často se opakuje peer, který odpovídá na hello a odmítá každou synchronizaci.
Cílový stav
Odpověď linku nad MAX_LINK_MESSAGE a odpověď rendezvous s více než MAX_CANDIDATES kandidáty jsou odmítnuty jako typované chyby dřív, než se parsují; backoff linku nese omezený jitter; test řídí peera, který vítá a odmítá každou synchronizaci, a měří četnost opakování.
Rozsah
- apps/majordomus-cli/src/mesh/link.rs
- apps/majordomus-cli/src/mesh/rendezvous.rs
- apps/majordomus-cli/src/mesh/manager.rs
- apps/majordomus-cli/src/mesh/cooperation.rs
- apps/majordomus-cli/src/mcp/bridge.rs
- apps/majordomus-cli/tests/mesh.rs
- apps/majordomus-cli/tests/mesh_cooperation.rs
- docs/MESH.md
Mimo rozsah
- Ohraničená fronta objevování a odpověď na registraci, kterou dodal I2133
- Obecný limit MAX_REPLY_BYTES v bridge::request, který patří I2147
Závislosti
Kritéria přijetí
- Odpověď o jeden bajt přes MAX_LINK_MESSAGE a rendezvous odpověď s více než MAX_CANDIDATES kandidáty se odmítají jako typované chyby
- Peer, který odpoví na hello a odmítne každou synchronizaci, je opakován nejvýše jednou za heartbeat
- Dva runtimes, jejichž odkazy k jednomu peeru selžou společně, ho nezkoušejí znovu ve stejném okamžiku: backoff odkazu nese omezený jitter
Validace
- bin/majordomus plan validate
- cargo test --lib mesh
- cargo test --test mesh --test mesh_cooperation
Požadované důkazy
- reply_bound_test
- unknown_link_retry_rate_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/I2704.yaml. Zpětně ho přečtete pomocí majordomus plan show I2704.