I2475 — The issues are browsed: every issue of the plan by status, milestone, priority or text, each a link onward
Give majordomus ui an Issues screen (/ui/issues) that lists every issue of the plan, narrowed by the plan's own statuses as tabs and by milestone, priority and text in a GET form, each issue leading to its inspector, its milestone to the milestone's and what blocks it to that issue's.
DONE wave 4 · p1 · implementation profile · runs alone
Part of development-runtime — The runtime has a development surface.
Objective
Give majordomus ui an Issues screen (/ui/issues) that lists every issue of the plan, narrowed by the plan's own statuses as tabs and by milestone, priority and text in a GET form, each issue leading to its inspector, its milestone to the milestone's and what blocks it to that issue's.
Why
The owner asked on 2026-10-11 to implement every view of the UI screenshots, maximally interactive (reference 05-issues-and-prs; pack v3 M05-01 issue list and detail). /ui/work shows only the ready and the active issues; the plan holds about 280, 152 of them blocked, and nothing let a reader find one or see a slice of them.
Current state
The UI shows two short lists of issues and one issue at a time on the PR Drain.
Desired state
/ui/issues paints at once from plan.issues, plan.status and plan.roadmap. Tabs are the statuses the issues hold with their counts; a GET form narrows by text (id, title, objective, slug), milestone (from the roadmap) and priority (from the issues), carrying the status tab; the pick stays picked. Each row shows the issue, its status, its milestone (a link to its inspector), its priority, what blocks it (each a link to that issue) and its evidence as a meter. A value that is no word of the plan is dropped.
Scope
- apps/majordomus-cli/src/ui/issues.rs
- apps/majordomus-cli/src/ui/mod.rs
- .ai/repo/project/issues/I2475.yaml
- docs/MAJORDOMUS_UI.md
- test/cases/1080_the_issues_are_browsed.sh
Dependencies
- I2470DONE The pull requests drain in the UI: a queue a reader narrows, inspects and follows to what each depends on
- I2471DONE The roadmap opens a milestone: what it holds, what can start, its critical path, and what it waits for
Acceptance criteria
- /ui/issues lists every issue; a status tab narrows to it
- milestone, priority and text narrow together, and the pick stays picked
- an issue, its milestone and what blocks it are links to their inspectors
- a value that is no word of the plan is dropped
Validation
- cargo test --lib ui::issues
- test/run.sh 1080_the_issues_are_browsed
Evidence required
- ui_issues_unit_tests
- ui_issues_case_1080
Evidence
| covers | type | command | result | at commit |
|---|---|---|---|---|
| ui_issues_unit_tests | ci | cargo test --lib ui::issues (validate run 38223440282 on 722228ef3c, the v0.21.0 top) | 5 ui::issues tests ok | 722228e |
| ui_issues_case_1080 | ci | test/run.sh 1080_the_issues_are_browsed (validate run 38223440282 on 722228ef3c, the v0.21.0 top) | case 1080_the_issues_are_browsed ok | 722228e |
Timeline
- started
- 2026-10-12T11:04:21Z
- verified
- 2026-10-12T11:04:28Z
- completed
- 2026-10-12T11:04:42Z
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/I2475.yaml. Read it back with majordomus plan show I2475.