I2679 — Observatory sleduje proud pomocí kurzoru, místo aby se znovu ptala na jeho stránku
Zařídit, aby změna na meshi dorazila na displej v okamžiku, kdy nastane, a aby mezera v přijatých datech byla něčím, o čem displej ví a co říká.
HOTOVO vlna 0 · p2 · profil implementation · bezpečné souběžně
Součást development-runtime — The runtime has a development surface.
Cíl
Zařídit, aby změna na meshi dorazila na displej v okamžiku, kdy nastane, a aby mezera v přijatých datech byla něčím, o čem displej ví a co říká.
Proč
Observatory se o změně dozví tak, že každých 15 sekund požádá o vlastní stránku. To je poctivé a hrubé: událost je vidět s opožděním až 15 sekund, události mezi dvěma čteními se projeví jen jako rozdíl a zmeškané čtení nelze odlišit od klidného mesh. Specifikace vlastníka žádá o reconnect, deduplikaci, obnovu kurzoru a omezené fronty.
Aktuální stav
share/ui/observatory.js dotazuje svou stránku s ?fragment každých 15 sekund a ustupuje až na 120. Server už drží proud živých událostí pro provedení s kurzorem pro každé provedení a žurnál mesh je řazen podle streamu a pořadí.
Cílový stav
Displej sleduje existující stream událostí serveru od kurzoru, po odpojení z něj pokračuje, když kurzor vypršel, vezme novou projekci a řekne to, zahazuje duplicitu podle její identity a drží omezený počet událostí. Nezavádí se žádný nový transport.
Rozsah
- apps/majordomus-cli/src/ui/observatory.rs
- share/ui/observatory.js
- docs/MAJORDOMUS_UI.md
- .ai/repo/project/issues/I2679.yaml
Mimo rozsah
- Nový protokol streamu, úložiště událostí nebo broker zpráv
- Veřejný snímek, který opět nic nečte
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- Událost připojená k žurnálu meshe dosáhne displeje bez čtení celé stránky a případ to dokazuje přes skutečný server
- Po odpojení zobrazení pokračuje od svého kurzoru; s prošlým kurzorem převezme čerstvou projekci a jeho stavové slovo to říká
- Táž událost doručená dvakrát vykreslí jednu značku a počet událostí, které skript drží, má deklarovanou mez
Validace
- bin/majordomus plan validate
- bash test/run.sh 3011_the_observatory_draws_nothing_it_did_not_read
Požadované důkazy
- observatory_stream_resume_case
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| observatory_stream_resume_case | test | cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test mesh_cooperation -- three_runtimes | výsledek testu: ok. 1 prošel (běh 2026-10-14 na bb844110bd, #1123): nejnovější stránka, nic nad kurzorem, připojené tvrzení dorazí nad něj s jednou identitou, ať se čte kolikrát chce, vypršelý kurzor je hlášen; drily v prohlížeči na živém serveru: RESYNCED po vypršelém kurzoru, STALE pak LIVE po ztraceném serveru | 2ca25bb |
Časová osa
- zahájeno
- 2026-10-14T12:31:19Z
- ověřeno
- —
- dokončeno
- 2026-10-14T12:31:39Z
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/I2679.yaml. Přečtěte ho zpět pomocí majordomus plan show I2679.