fix(cli): show review lane count in kanban stats output - #29082
Conversation
|
Thanks for the focused regression fix. Current The proposed order matches the dashboard's existing status columns at Automated hermes-sweeper review. |
GottZ
left a comment
There was a problem hiding this comment.
This was generated by AI during triage.
Summary
Two PRs address the same plain-text stats omission: both add review to _cmd_stats() so counts already produced by board_stats() are displayed, with regression coverage that places a task in review and checks the rendered count.
Related pull requests
- #29082
related— (+25/-1) — keep open with a salvage path: the diff adds the missingreviewentry to the plain-text status tuple and tests both the text count and agreement withstats --json. This is the earlier implementation, and the maintainer-bot keep-open verdict confirms that currentmainstill omits the row athermes_cli/kanban.py:2421; relative to #51424, its additional salvageable value is the explicit text-versus-JSON parity assertion. - #51424 [closed]
duplicate— (+30/-1) — remain closed as duplicate of #29082: it makes the identical one-line renderer change and adds equivalent regression coverage in a different test module. Although it received a non-contributor APPROVED review, contributors briandevans and alt-glitch documented that #29082 is the earlier PR for the same fix, so the closed PR remains relevant as corroborating implementation and test evidence rather than a separate solution.
Duplicates
#51424 duplicates #29082: both add review to the same _cmd_stats() status tuple and test that plain-text stats report a review task count.
Suggested consolidation
Keep #29082 open with a salvage path: retain its focused renderer change and regression test, particularly the assertion that plain-text output agrees with stats --json. Keep #51424 closed as a duplicate of #29082; its diff does not contain a distinct fix that warrants a separate PR.
Complex graph
flowchart LR
classDef open fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
classDef merged fill:#dcfce7,stroke:#15803d,color:#14532d
classDef closed fill:#e5e7eb,stroke:#6b7280,color:#1f2937
classDef unverified fill:#f3f4f6,stroke:#9ca3af,color:#374151
classDef best stroke-width:3px,stroke:#b45309
classDef target stroke-width:3px,stroke:#4338ca
subgraph Dup29082 ["PRs duplicating each other"]
P29082["PR #29082 (open)"]
P51424["PR #51424 (closed)"]
end
class P29082 open
class P51424 closed
class P29082 target
click P29082 "https://github.com/NousResearch/hermes-agent/pull/29082"
click P51424 "https://github.com/NousResearch/hermes-agent/pull/51424"
Graph: solid arrow = fixes / best fix, dashed arrow = partial or unverified (see edge label); boxed group = PRs duplicating each other; amber border = best fix; indigo border = target; gray node = closed (state tag in the node label).
Cross-PR triage: Reviewed 2 pull requests and 0 issues in this complex. Each diff was read against this issue; Assessment working set: 4 kB of PR diffs, 5 kB of issue/PR text, 2 kB of discussion (4 comments), 0 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch.
What & Why
hermes kanban stats(text mode) prints a per-status breakdown, but thehardcoded status list omits
review:board_stats()already returns a count for every non-archived status(
GROUP BY status), so the data is present — it's just dropped on the wayto the terminal. Result: any task sitting in the
reviewlane is invisiblein the human-readable report, the printed totals don't reconcile with
list --status review, and the text path silently disagrees withstats --json(which still shows it).reviewis a first-class, dispatchable lane (workers move tasks into it forthe reviewer agent), so its count belongs in the summary.
Fix
Add
reviewto the display order (betweenblockedanddone):One line, behavior-only, backward compatible.
How to test
review.hermes kanban stats→ theBy status:block now listsreviewwith thecorrect count, matching
stats --json.Added regression test
test_run_slash_stats_text_includes_review_laneintests/hermes_cli/test_kanban_cli.py: it asserts the text output showsreview 1and that it agrees with the JSON path. Verified the test failswithout the fix and passes with it.
Platforms
Pure CLI output formatting — platform-independent.
tests/hermes_cli/test_kanban_cli.py: 47 passed.