I2678 — The public Observatory replays events that were recorded, and says it is a replay
Let the three scenes of the mesh move on the public site without inventing a single event: from a capture of real events, redacted, with its manifest, labelled as a recorded replay with its original times.
DONE wave 0 · p2 · implementation profile · parallel safe
Part of development-runtime — The runtime has a development surface.
Objective
Let the three scenes of the mesh move on the public site without inventing a single event: from a capture of real events, redacted, with its manifest, labelled as a recorded replay with its original times.
Why
ADR 0158 refuses a scene drawn from anything that was not read, and the process that takes the public snapshot runs no mesh, so on majordomus.dev the scenes mesh, activity and coop are unavailable. The owner's specification of 2026-10-14 allows exactly one way to show them there: a replay of genuinely recorded events, never labelled live.
Current state
The snapshot of /ui/observatory names mesh, activity and coop as unavailable with the reason mesh.peers gives in a process without a mesh. No capture of mesh events is tracked, and no capability answers one.
Desired state
A capture is a tracked, redacted record of real mesh events with a manifest: the window, the source capabilities, the original identities, what was removed and why. A capability answers it, the Observatory draws it under the words RECORDED REPLAY with the events' own times, and without a capture the scenes stay unavailable.
Scope
- apps/majordomus-cli/src/ui/observatory.rs
- share/ui/observatory.js
- docs/MAJORDOMUS_UI.md
- .ai/repo/project/issues/I2678.yaml
Out of scope
- Synthetic events of any kind outside a test harness
- Publishing intents, paths or message bodies of the mesh: an event stays its identity, kind, node and times
Dependencies
None. This issue is a root of the graph.
Acceptance criteria
- The public snapshot draws the mesh scenes only from a capture whose manifest it names, under a label that says replay, with the original times
- A capture with an event whose source record is absent is refused, and the refusal names the event
- Without a capture the three scenes are unavailable, as case 3011 holds today
Validation
- bin/majordomus plan validate
- bash test/run.sh 3011_the_observatory_draws_nothing_it_did_not_read
Evidence required
- recorded_replay_case
Evidence
| covers | type | command | result | at commit |
|---|---|---|---|---|
| recorded_replay_case | test | bash test/run.sh 3011_the_observatory_draws_nothing_it_did_not_read | ok (run 2026-10-14 on 753449f908, part of #1129's 7 cases): a mesh scene replays the recording labelled with when it was recorded and its manifest's sources; scenes the recording does not carry stay unavailable; a broken recording is a failed source | 2ca25bb |
Timeline
- started
- 2026-10-14T12:31:15Z
- verified
- —
- completed
- 2026-10-14T12:31:34Z
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/I2678.yaml. Read it back with majordomus plan show I2678.