Skip to content

I2998 — /cockpit/peers renders the blackboard and follows it live

Render /cockpit/peers from blackboard.snapshot instead of peers.list: every worker on every board and linked machine, its claims, the conflicts, the waiting reviews and handovers, and every source. Follow /events?follow=blackboard&frames=snapshot through the one socket client (share/cockpit/socket.js), as /ui/peers does. The page's state line says live, reconnecting or offline truthfully. /ui/peers and /cockpit/peers then render the same projection, and neither joins a fact of its own.

BLOCKED wave 4 · p1 · implementation profile · runs alone

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.

Objective

Render /cockpit/peers from blackboard.snapshot instead of peers.list: every worker on every board and linked machine, its claims, the conflicts, the waiting reviews and handovers, and every source. Follow /events?follow=blackboard&frames=snapshot through the one socket client (share/cockpit/socket.js), as /ui/peers does. The page's state line says live, reconnecting or offline truthfully. /ui/peers and /cockpit/peers then render the same projection, and neither joins a fact of its own.

Why

The milestone's invariant is that every surface that shows peers reads the one projection. /cockpit/peers still reads peers.list once: one checkout's boards, nothing of the mesh, never updated.

Current state

cockpit/pages.rs peers() asks peers.list and renders it once.

Desired state

/cockpit/peers shows what /ui/peers shows, from the same frames, and is pushed a change within a second on this machine.

Scope

  • apps/majordomus-cli/src/cockpit/pages.rs
  • share/cockpit/peers.js
  • docs/BLACKBOARD.md
  • docs/COCKPIT.md
  • .ai/repo/project/intents/the-peer-blackboard-is-one-reality.yaml
  • test/cases/3386_the_cockpit_peers_page_follows_the_blackboard.sh

Dependencies

Acceptance criteria

  • /cockpit/peers lists a worker announced over MCP with its intent and claim, and a mesh session of a linked runtime, from blackboard.snapshot
  • A second announcement reaches an open /cockpit/peers without a reload, and the page says live
  • No cockpit or ui page that shows peers asks peers.list or mesh.state for them directly

Validation

  • majordomus plan validate
  • bash test/run.sh 3386_the_cockpit_peers_page_follows_the_blackboard

Evidence required

  • case_cockpit_peers_follows_the_blackboard

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

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

Searches the titles and descriptions of every page this site publishes.