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.

I3222 — A follower whose frames are lost, delayed or reordered, or whose peer is partitioned, ends equal to a fresh snapshot

Add a fault-injection case over the live channel: a test-only frame-level WebSocket proxy drops, delays and reorders frames and partitions a mesh peer, then each follower's state is compared with a snapshot read afresh; no feature is added and the protocol is unchanged.

PŘIPRAVENO vlna 0 · p2 · profil verification · bezpečné paralelně

Part of every-surface-follows-what-changed — Every surface follows what changed in the repository by push, and a surface that does not says so.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3222 bude přijato.

Cíl

Add a fault-injection case over the live channel: a test-only frame-level WebSocket proxy drops, delays and reorders frames and partitions a mesh peer, then each follower's state is compared with a snapshot read afresh; no feature is added and the protocol is unchanged.

Proč

The 2026-10-18 live-fabric design asked for chaos tests for replay, resync and partition before more surfaces depend on the channel. Proposed in ADR 0216 (Every live surface follows one channel with named follow streams, and nothing polls where a stream exists) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c294#7.

Aktuální stav

Verified on master 707a04c7ce8: apps/majordomus-cli/src/http/events.rs has replay and heartbeat tests for executions; nothing in test/, scripts/ or apps/majordomus-cli/tests injects faults. In flight, not on master: PR #1178's case 3046 and 5a's blackboard branch with stream.resync and cases 3381 and 3382, which cover stopping and restarting the server.

Cílový stav

One case holds convergence for every follow stream the server serves.

Rozsah

  • apps/majordomus-cli/src/http/events.rs
  • apps/majordomus-cli/src/http/ws.rs

Mimo rozsah

  • Changing the protocol

Závislosti

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

Co na tom čeká

Kritéria přijetí

  • After every fault, the follower's state equals a fresh snapshot read. Receiving a resync frame is not enough

Validace

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib http::events
  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test cov_runtime_b_http_channel

Požadované důkazy

  • case_a_follower_converges_after_loss

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.

Canonical record: .ai/repo/project/issues/I3222.yaml. Read it back with majordomus plan show I3222.

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