Skip to content

I2984 — The published site shows a public-safe blackboard, labelled as the snapshot it is

Give the UI snapshot (ADR 0141) a /ui/peers page and a home panel built from a public-safe projection of blackboard.snapshot. It shows the counts (workers, present, boards, conflicts, open reviews, untaken handovers), every source with its state and reason, and the revision and time it was read. It names no worktree path, scope, intent, message body, session key, node id or endpoint. The page says it is a snapshot of that revision and never that it is live. A link to the live page leads to it.

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

Give the UI snapshot (ADR 0141) a /ui/peers page and a home panel built from a public-safe projection of blackboard.snapshot. It shows the counts (workers, present, boards, conflicts, open reviews, untaken handovers), every source with its state and reason, and the revision and time it was read. It names no worktree path, scope, intent, message body, session key, node id or endpoint. The page says it is a snapshot of that revision and never that it is live. A link to the live page leads to it.

Why

majordomus.dev/ui says Mesh: unknown and withholds /ui/peers. A visitor cannot tell whether the mesh exists, or how old what they see is. A private path or session key in a published bundle would be a leak no later commit can take back.

Current state

The UI snapshot withholds /ui/peers (I2983). The published /ui home shows the mesh as not observed and names no blackboard source.

Desired state

The published /ui/peers shows the public-safe counts and source states of the blackboard at the snapshot's revision, says so, and carries nothing private.

Scope

  • apps/majordomus-cli/src/capability/builtin/blackboard.rs
  • apps/majordomus-cli/src/ui/peers.rs
  • apps/majordomus-cli/src/web/report/snapshot.rs
  • docs/BLACKBOARD.md
  • docs/MAJORDOMUS_UI.md
  • test/cases/1092_the_ui_snapshot_holds_every_screen.sh

Dependencies

Acceptance criteria

  • The published /ui/peers shows the blackboard's counts and every source's state with the revision and time it was read, and its state line says snapshot
  • The published bundle names no worktree path, scope, intent, session key, node id or endpoint that the blackboard read
  • A visitor offline from any runtime is told the page is a snapshot; nothing on it says live

Validation

  • majordomus plan validate
  • bash test/run.sh 1092_the_ui_snapshot_holds_every_screen

Evidence required

  • case_published_blackboard_is_public_safe

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/I2984.yaml. Read it back with majordomus plan show I2984.

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