Skip to content

The UI's dashboard at /ui links every capability it read to that capability's page, serves under the Cockpit's security policy, and never waits for the pull-request queue, which is a page and a fragment of its own

majordomus ui, the primary surface at /ui (ADR 0135), shows a person how the delivery

declared statusdeclared status: guaranteed Declared deterministic and blocking, implemented, and naming the behavioural test that is to prove it. Whether a recorded run supports it is the evidence verdict, shown beside it.

recorded evidencerecorded evidence: not run Declared guaranteed, and not supported by a recorded run: the test is named, and no passing run of the current inputs is recorded. how evidence is recorded

the_dashboard_is_served_at_ui_under_the_cockpits_policy starts a real server on a fixture repository and asserts that the page links /cockpit/capabilities/<id> for each of health.report, release.version, distribution.releases, plan.status, plan.roadmap and mesh.peers, carries the Cockpit's content-security policy, and pulls the queue from /ui/panels/pull-requests rather than citing integration.queue; the_queue_panel_is_a_page_and_a_fragment proves the queue's own route.

What it means

majordomus ui, the primary surface at /ui (ADR 0135), shows a person how the delivery stands. Every source the dashboard reads is cited on the page, each with a link to that capability's page in the Cockpit, where its schema, routes and provenance are. A reader who doubts a number can follow it to the capability that answered it, and from there call that capability over the API, the command line or MCP and get the same answer.

The dashboard is served under the same content-security policy as the Cockpit, so the UI adds no looser surface. The pull-request queue is the slowest source the delivery has. It is not something the first paint waits for: it is a panel at a route of its own, which answers both as a whole page and as a fragment that a screen pulls in after it has painted.

How it works

The dashboard (apps/majordomus-cli/src/ui/dashboard.rs) declares the sources it reads. It asks them through the one executor that serves MCP and HTTP, all at once, and renders each answer with a source line naming the capability and linking /cockpit/capabilities/<id>. A source that fails reads "not answered", never zero (project.ui-derived-state). The queue is left out of the first paint. Its place holds a data-panel-src placeholder naming the panel's route, /ui/panels/pull-requests, which the UI's one script fills, and a reader without JavaScript gets it as a link.

apps/majordomus-cli/tests/ui_surface.rs proves the claim over a real socket against a disposable repository. the_dashboard_is_served_at_ui_under_the_cockpits_policy asks for /ui and asserts:

  • the page is HTML under the Cockpit's own content-security-policy, with nosniff;
  • it links to the Cockpit;
  • it cites health.report, release.version, distribution.releases, plan.status, plan.roadmap and mesh.peers through their Cockpit pages;
  • the queue is referenced only as /ui/panels/pull-requests, never as integration.queue.

the_queue_panel_is_a_page_and_a_fragment asks for that panel's route, once as a page and once with ?fragment.

How to see it

majordomus serve                       # logs the URL of the shared server
# open <url>/ui and follow any "source" line under a tile or panel
cd apps/majordomus-cli && cargo test --test ui_surface

What it does not cover

It proves the dashboard, not every screen. That every screen renders its hero and panels with a source line is held by ui::tests::every_screen_renders_its_hero_and_panels in the crate, and that no screen shows a value a capability did not answer is held by the ui-integrity gate (case 547). Neither is this claim's test.

It does not prove that the cited capability's answer is correct. That is proven by the capability's own tests. Nor does it prove the layout at every width, which the ui-audit gate and the design rules hold.

Why it exists

The UI is the surface a person is sent to first, so it is the one most likely to be believed without checking. A dashboard that showed numbers without naming where they came from would be a second authority over the delivery, which is what ADR 0012 and ADR 0088 forbid. The claim makes the citation part of the contract a reader relies on, and the test holds it over a real server rather than over a rendered template.

Detail rendered from docs/claims/ui-dashboard-cites-its-sources.md.

From the statement to the proof

  1. 1 · the public statement

    The UI's dashboard at /ui links every capability it read to that capability's page, serves under the Cockpit's security policy, and never waits for the pull-request queue, which is a page and a fragment of its own

    Made on UI.

  2. 2 · the canonical claim

    ui-dashboard-cites-its-sourcesdeclared status: guaranteed in docs/CLAIMS.yaml

    Defined in read it on this site · docs/MAJORDOMUS_UI.md

  3. 3 · the implementation

    apps/majordomus-cli/src/ui/dashboard.rs

  4. 4 · the test and the scenarios

    Test: apps/majordomus-cli/tests/ui_surface.rs

  5. 5 · the recorded runs

    recorded evidence: not run how evidence is recorded

Verify it yourself

The test runs in a disposable temporary repository and asserts the behaviour, not a string in the source.

from a clone of the repository
bash test/run.sh apps/majordomus-cli/tests/ui_surface.rs

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