I2985 — The Observatory's cooperation scene draws the blackboard, not a second join of the journal
Read blackboard.snapshot for the Observatory's coop scene (ui/observatory.rs, Cooperation Choreography) instead of mesh.state. A dancer is a worker of the blackboard: a board peer or a mesh session, joined only where the blackboard joined them. Its ribbons are the claims it holds, conflicted ones marked, and its sparks are the reviews and handovers that wait for it. Pairs whose claims meet are drawn as the blackboard's conflicts. The projection keeps the scene's existing rule that what is projected is what the screen may show: a worker's key, origin and presence, counts and kinds, and never an intent's text, a path, a scope or a host name. The mesh scene (machines and runtimes, from mesh.peers) is left as it is, because it draws the topology and not the workers.
BLOKOVÁNO vlna 4 · p2 · profil implementation · běží samostatně
Part of peer-blackboard — The peer blackboard is one projection, pushed live to every surface.
Blocked. This issue cannot start until I2983 is done. The status is derived from that, not declared.
Cíl
Read blackboard.snapshot for the Observatory's coop scene (ui/observatory.rs, Cooperation Choreography) instead of mesh.state. A dancer is a worker of the blackboard: a board peer or a mesh session, joined only where the blackboard joined them. Its ribbons are the claims it holds, conflicted ones marked, and its sparks are the reviews and handovers that wait for it. Pairs whose claims meet are drawn as the blackboard's conflicts. The projection keeps the scene's existing rule that what is projected is what the screen may show: a worker's key, origin and presence, counts and kinds, and never an intent's text, a path, a scope or a host name. The mesh scene (machines and runtimes, from mesh.peers) is left as it is, because it draws the topology and not the workers.
Proč
The milestone's invariant is that every surface that shows peers reads the one projection. The coop scene joins sessions, claims and reviews from mesh.state itself. It counts only mesh sessions, so a worker attached to a board without a mesh session is missing from the wall display that is meant to show who works here.
Aktuální stav
The coop scene reads mesh.state and joins its sessions, claims, reviews and handovers itself.
Cílový stav
The coop scene draws the blackboard's workers, conflicts, reviews and handovers, so the wall display and /ui/peers show the same workers.
Rozsah
- apps/majordomus-cli/src/ui/observatory.rs
- share/ui/observatory-kiosk.js
- docs/MAJORDOMUS_UI.md
Závislosti
Kritéria přijetí
- The coop scene of a repository with a board peer and no mesh session draws that worker, and one with two meeting claims draws their conflict
- The projection carries no intent text, path, scope or host name, as the scene's rule says
Validace
- majordomus plan validate
Požadované důkazy
- case_observatory_draws_the_blackboard
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/I2985.yaml. Read it back with majordomus plan show I2985.