I2140 — Stránkování mesh.events vrací každou událost právě jednou
Stránkovat mesh.events podle kauzálního klíče a vracet poslední vrácený klíč jako další kurzor.
HOTOVO vlna 0 · p2 · profil implementation · bezpečné souběžně
Cíl
Stránkovat mesh.events podle kauzálního klíče a vracet poslední vrácený klíč jako další kurzor.
Proč
EventList.lamport je zdokumentováno jako 'the after of the next page' (apps/majordomus-cli/src/capability/builtin/mesh.rs:594-596), ale je to maximální lamport žurnálu (apps/majordomus-cli/src/mesh/journal.rs:2124-2133), takže zkrácená stránka přeskočí zbytek žurnálu. Stránkování podle posledního vráceného lamportu také přeskakuje události, které ho sdílejí napříč proudy, protože filtr je lamport > after (apps/majordomus-cli/src/capability/builtin/mesh.rs:601-619). Žádný test nepokrývá events_after. Výchozí audit z 2026-10-09 na masteru 1fb8d6be44, mezera meshe 8 a drift 9.
Aktuální stav
Klient, který sleduje zdokumentovaný kurzor, zmešká události.
Cílový stav
Stránky se řežou kauzálním klíčem (lamport, stream, seq) (apps/majordomus-cli/src/mesh/journal.rs:858), odpověď nese poslední vrácený klíč jako další kurzor a mesh events --after jej přijímá.
Rozsah
- apps/majordomus-cli/src/capability/builtin/mesh.rs
- apps/majordomus-cli/src/mesh/journal.rs
- apps/majordomus-cli/src/cli/local.rs
- apps/majordomus-cli/tests/mesh.rs
- docs/MESH.md
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
Kritéria přijetí
- Procházení mesh.events s limitem 1 přes žurnál, kde několik proudů sdílí lamport, vrátí každou událost jednou, v kauzálním pořadí
- Kurzor, který schéma dokumentuje, je kurzor, který další stránka přijme
Validace
- bin/majordomus plan validate
- cargo test --test mesh
- cargo test --lib mesh::journal
Požadované důkazy
- events_paging_test
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| events_paging_test | test | cargo test --lib -- mesh::; cargo test --test mesh | lib mesh:: 319 prošlo včetně paging_by_stamp_returns_every_event_exactly_once; --test mesh 8 prošlo (kód na master od f820f5ab02f; znovu spuštěno na master 01227a0) | 01227a0 |
Časová osa
- zahájeno
- 2026-10-17T12:05:34Z
- ověřeno
- 2026-10-17T12:05:46Z
- dokončeno
- 2026-10-17T12:05:53Z
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/I2140.yaml. Načtěte ho zpět pomocí majordomus plan show I2140.