Skip to content

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

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

coverstypecommandresultat commit
ui_issues_unit_testscicargo test --lib ui::issues (validate run 38223440282 on 722228ef3c, the v0.21.0 top)5 ui::issues tests ok722228e
ui_issues_case_1080citest/run.sh 1080_the_issues_are_browsed (validate run 38223440282 on 722228ef3c, the v0.21.0 top)case 1080_the_issues_are_browsed ok722228e

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.

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