- Request a reviewer on the PR (houhoucoop is on the issue; codyrancher reviewed PR 1104).
- Later, separately: one follow-up for the Shard and Replica tile colours.
longhorn/longhorn-ui · our PR · new commits 6cf0ad2 and bc53e93 since round one at 13cc3ba · 11 November 2026 · two passes: Cody's process (my-pr-review-new-commits, ai-skills 8746ab4) and ours
Preview: http://13.60.211.184:30084 · built from bc53e93, backend Longhorn master-head with V2 sharding (our dev cluster).
All six points from round one are fixed at bc53e93, checked in the code and on the preview. The new commits add nothing that needs changing. Both passes have one optional note: the new "3 minutes ago" line on a failed tile is white on the failed red at 3.44:1. That red is the tile colour we're keeping (it's the Replica tile's), so it belongs to the same follow-up as the rest of the tile colours.
CI is green on bc53e93 (DCO, codespell, commit-lint). The PR description matches the code, and its screenshots and clip are current and don't show the dev cluster's address.
| # | Round-one point | Now | How it was checked |
|---|---|---|---|
| 1 | The count column said Running for shards | Fixed | Header "Replicas (Running/Desired) / Shards (Healthy/Total)", cell "3 / 3". Detached ec-ui again on bc53e93: shards stay normal, the row reads "3 / 3" under Healthy, a detached replicated volume reads "0 / 2" under Running; ec-ui reattached, engine running (Cody's). "1 / 3" with one failed and one rebuilding shard simulated (both) |
| 2 | Data tag at 2.95:1 | Fixed | Plain grey tags, #666 on #fafafa, 5.5:1 (both) |
| 3 | Failure time only on hover | Fixed | "Failed" with "3 minutes ago" under it, read in that order; fits the tile even as "a few seconds ago"; updates while the page is open ("a minute ago" → "2 minutes ago", Cody's); no line when there's no timestamp; old dates read "3 months ago" (ours) |
| 4 | Unused loading prop | Fixed | Prop and Spin removed; the only caller never passed it (both) |
| 5 | No tests for the helpers | Fixed | 3 tests, pass; they fail on master's helper file (mine), and catch 5 hand-made breakages: wrong slot sort, matching by name prefix, data/parity swapped, the empty-type check, a missing guard (ours) |
| 6 | The PR clip showed the dev cluster's address | Fixed | New clip 1280×784, no URL band in frames sampled every 4 s; both images clean too (both) |


12px white on #f15354, measured on the preview. "Failed" above it has the same colours. Only a darker failed red would fix both, and that's the tile-colour follow-up you already chose to leave for later, for the Shard and Replica tiles together. Nothing to change in this PR.
| What | Result |
|---|---|
| Header height | With the optional count column on, the header wraps to three lines in its 200px column, so the header row is 100px instead of 56px on master. It's off by default, so the default list is unchanged. A wider column would bring it back to two lines, if you or the designer want that. |
| Fixed Operation column | Stays aligned with the taller header |
| Column picker | Still "Replicas / Shards", like master's short "Replicas" label |
| Lint, tests, CI | eslint clean on the changed files; jest 2 suites, 4 tests; DCO, codespell, commit-lint green |
| Errors | No page errors on either build |
| Description vs code | Every claim matches, including the detached "3 / 3", now observed on bc53e93 |
| Cody's process | Ours | |
|---|---|---|
| Verdict | 6 addressed, 0 not addressed, 1 new (optional) | 6 fixed, 0 not fixed; 0 blockers, 0 suggestions, 1 nit |
| Only one pass | Detach rerun on the new build · long relative times fit · the time refreshes | Tests checked against 5 broken versions of the helpers · header heights measured on both builds · empty and old timestamps · media checked frame by frame |
| Cost | This session: code read while ours ran, browser after | Fresh agent: ~9 min, 140k tokens, 47 tool calls |