Skip to content

I3231 — The Observatory shows its own stream health: lag, dropped frames, resyncs and frame rate

Add a diagnostics overlay to the Observatory (toggled like its legend) that derives from the stream it follows: frames received, last frame age, resyncs, gaps detected, and the measured frame rate of the renderer.

BLOCKED wave 1 · p3 · implementation profile · parallel safe

Part of every-surface-follows-what-changed — Every surface follows what changed in the repository by push, and a surface that does not says so.

Blocked. This issue cannot start until I3219 is done. The status is derived from that, not declared.

Objective

Add a diagnostics overlay to the Observatory (toggled like its legend) that derives from the stream it follows: frames received, last frame age, resyncs, gaps detected, and the measured frame rate of the renderer.

Why

Proposed on 2026-10-14 as a self-observing visualisation; useful for a kiosk left running. Proposed in ADR 0216 (Every live surface follows one channel with named follow streams, and nothing polls where a stream exists) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c260#8.

Current state

share/ui/observatory.js has an 'i' legend toggle and status words; no counters of its own stream.

Desired state

The overlay's numbers are counted by the script from frames it received; nothing is typed.

Scope

  • share/ui/observatory.js
  • docs/MAJORDOMUS_UI.md

Out of scope

  • Server-side telemetry

Dependencies

Acceptance criteria

  • A forced resync increments the overlay's resync count
  • The overlay on the published replay is claimed by an interaction spec, and on /ui/observatory it is driven by cockpit-probe

Validation

  • bash test/run.sh 3011_the_observatory_draws_nothing_it_did_not_read
  • bash test/run.sh 3042_the_observatory_asks_again_when_it_is_seen
  • scripts/ci/interaction-check

Evidence required

  • interaction_spec_observatory_health

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

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