the-ui-runs-and-explains — The UI runs any capability and explains what needs the owner, whose version it shows and where its time went
I3225, I3226, I3227, I3228, I3229 and I3230 close these gaps on the existing screens.
PLANNED 0 of 6 issues done
- ready
- 2
- blocked
- 4
- active
- 0
- verify
- 0
- done
- 0
- cancelled
- 0
Problem
The Cockpit runs any capability from a schema-generated form (cockpit/pages.rs, share/cockpit/runner.js), but /ui/capabilities only describes one, and docs/MAJORDOMUS_UI.md says nothing on the UI starts work yet; no response says where its time went; the Dashboard leads with delivery figures rather than what needs the owner; the UI's search does not reach every entity; a version badge does not say whose version it is. Sources: chatgpt-majordomus:c187#8, chatgpt-majordomus:c223#2.
Outcome
I3225, I3226, I3227, I3228, I3229 and I3230 close these gaps on the existing screens.
Current state
Verified on master 707a04c7ce8: /ui/capabilities reads capabilities.describe and runs nothing; capability/builtin/perf.rs exposes phase timings; no Server-Timing header in apps/ or share/ (grep); ui/dashboard.rs reads repository.info, health.report, release.version, distribution.releases, plan.status, plan.roadmap and mesh.peers; ui/navbar.rs fills the badge with the executable's version.
Desired state
Each issue lands as one PR against the existing screen it names, serving one criterion of the-ui-runs-and-explains-the-work.
Scope
- apps/majordomus-cli/src/ui
- apps/majordomus-cli/src/cockpit
- apps/majordomus-cli/src/http
- share/ui
- share/cockpit
- site/templates/partials/navbar.html
- .ai/repo/benchmarks
Out of scope
- A new screen family
- A shell endpoint
- Running anything from the published site
Acceptance criteria
- Each issue's evidence_required is recorded and its validation passes
Validation
- majordomus plan validate
- majordomus intent explain the-ui-runs-and-explains-the-work
Risks
- 2b's /ui/idd work (I2907, I2915, branch) states the same overview on the workspace; I3230 must reuse its sentences rather than add a second set
Issues
Each one is an execution contract with its own acceptance criteria, validation command and required evidence. The wave column is the layer of the dependency graph it sits in.
| issue | status | wave | depends on | title |
|---|---|---|---|---|
| I3225 | BLOCKED | 2 | I3221 | A capability is run from /ui through the form its input schema generates, confirmed when its effect writes, and followed as an execution |
| I3226 | READY | 0 | — | Every UI and Cockpit response says where its time went |
| I3227 | BLOCKED | 1 | I3226 | A UI link a reader is about to follow is fetched ahead when the route is cheap and the connection allows it |
| I3228 | BLOCKED | 1 | I2902 | The UI's search finds any entity the registry addresses and offers the moves its status admits |
| I3229 | READY | 1 | I2770 | Every version badge says whose version it is and how it stands to the latest release |
| I3230 | BLOCKED | 2 | I3138 | The Dashboard opens on what needs the owner: what runs, what is blocked and why, what was verified, and the next safe move |
The graph
flowchart LR
I3225["I3225<br/>A capability is run from /ui through the form its input schema generates, confirmed when its effect writes, and followed as an execution"]:::blocked
I3226["I3226<br/>Every UI and Cockpit response says where its time went"]:::ready
I3227["I3227<br/>A UI link a reader is about to follow is fetched ahead when the route is cheap and the connection allows it"]:::blocked
I3228["I3228<br/>The UI's search finds any entity the registry addresses and offers the moves its status admits"]:::blocked
I3229["I3229<br/>Every version badge says whose version it is and how it stands to the latest release"]:::ready
I3230["I3230<br/>The Dashboard opens on what needs the owner: what runs, what is blocked and why, what was verified, and the next safe move"]:::blocked
I3226 --> I3227
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxLinked from this diagram (6)
- I3225 A capability is run from /ui through the form its input schema generates, confirmed when its effect writes, and followed as an execution
- I3226 Every UI and Cockpit response says where its time went
- I3227 A UI link a reader is about to follow is fetched ahead when the route is cheap and the connection allows it
- I3228 The UI's search finds any entity the registry addresses and offers the moves its status admits
- I3229 Every version badge says whose version it is and how it stands to the latest release
- I3230 The Dashboard opens on what needs the owner: what runs, what is blocked and why, what was verified, and the next safe move
Canonical record: .ai/repo/project/milestones/the-ui-runs-and-explains.yaml. Read it back with majordomus plan show the-ui-runs-and-explains.