rancher/dashboard PR 19794 (codyrancher), Show the project name in the Project Monitor detail header. Your round-one Comment review went in on 2026-11-05; Cody replied in the thread and pushed one commit. Reviewed 2026-11-10 in two independent passes. Nothing is posted.
Preview:rancherpr19794r.mf-created-dashboard.ui.rancher.space, rebuilt from the new head f703017fe, backend mf Rancher v2.16 head. Baseline: the shared dashboard-master preview, rebuilt today from the master tip 55438bb38.
Verdict: approve, with one question
The list half of your comment is fixed. The new commit f703017fe drops the list's projectDisplayName override, the same hunk I tested on pr19794fix last week. A monitor whose project can't be resolved now shows project-monitoring as a link, for the admin and for the Project Member.
The masthead half is answered, and Cody's reply holds. The legacy and edit header still stop at Project Monitor: when the project can't be resolved, exactly as on master. For the Project Member, master shows no header at all, so the PR is still better there. Cody wants to delete the isProjectHelmChart branch in a follow-up.
One question: no issue tracks that follow-up yet. Worth asking Cody to open one.
One optional nit: nothing tests the list change. Reverting the commit keeps every suite green. It's a one-line removal, so I'd leave it out unless you want it.
Both passes agree on every behavior. CI is green except Branch Milestone, the v2.17-on-master gate.
Round one, now
Point in your round-one comment
State
Proof on the new build
The list's Project column is empty, with nothing to click, when the project can't be resolved
Addressed
Admin, namespace in no project: a project-monitoring link that opens the detail page. Master: empty cell, a 0px link. Project Member reading a monitor in a namespace they can't see: Default, Default, project-monitoring, all links. Master: resource names on every row, and a TypeError.
The legacy masthead (also edit) still reads projectDisplayName, so the header stops at Project Monitor:
Answered
Code unchanged. Cody: already blank on master, can be deleted in a follow-up. Checked: admin, no-project namespace, ?legacy=true and ?mode=edit read Project Monitor: on both builds. Project Member, hidden namespace: PR Project Monitor:, master no header at all. The new commit doesn't touch it, so it's out of scope this round. No follow-up issue exists yet.
Your line: "fallback or a message saying there is no name?"
Answered by the change
Cody kept the fallback to the resource name, the same as the detail header. A "no project" message would be a copy decision for the designer.
Master, Project Member: resource names on every rowPR, Project Member: Default, Default, and a link for the monitor whose namespace they can't see
Master, admin: the pr19794-noproject row has an empty Project cellPR, admin: the same row reads project-monitoring and is a link
Master, ?legacy=true on the no-project monitor: no namePR, same page: no name, identical to master (Cody's follow-up)
The two passes
Pass A: Cody's process
Pass B: our process
How
His round-two skill my-pr-review-new-commits from codyrancher/ai-skills at 5f9619b, run in this session: state of each round-one comment, proven on the new build, then only what the new commits add, at his "real problems only" bar.
Our checklist in prompts/code-review.prompt.md plus your rules, run by a fresh agent that never saw Pass A: evidence kind on every finding, a 7-dimension coverage grid, mutation tests.
Findings
0 new comments. List Addressed, masthead Answered.
0 blockers, 0 suggestions. 1 question (follow-up issue), 1 optional nit (no test for the list change, evidence: test).
Checked by both
The list fallback as admin and as the Project Member, on both builds; the blank legacy header on both builds; search (Default, project-monitoring, second); the member's detail header; console TypeError on master only.
Only this pass
Clicked the Project column both ways and saw the fallback row sort in place; clicked through the fallback link to its detail page.
?mode=edit header; three mutation runs (old projectId, no override, revert of f703017fe); ESLint and CI; searched for a follow-up issue; the special-character project in drawer, delete dialog and aria-labels; two monitors in one project.
Missed
That no follow-up issue exists, and that the list change has no test. His round-two skill has no test-coverage step.
Nothing Pass A found. It checked default sort order but didn't click the column.
Run in this session alongside the setup; not metered separately.
199k tokens, 84 tool calls, about 30 minutes.
Pass A: Cody's round-two process
What changed:51a64e59d was rebased unchanged to 4638c7a0c (range-diff identical). The only new code is f703017fe, 1 line added and 3 removed in shell/list/helm.cattle.io.projecthelmchart.vue.
Your comment: list part Addressed, masthead part Answered, as in the table above. His rule marks a fix of one case of two as not addressed, but here the second case has a reply that holds, so it counts as Answered.
The new commit: nothing to file at his bar. Sorting by Project puts the fallback row in place both ways: Default ×3, po-ns-test, pr19794 R&D…, project-monitoring, zz9067-project1, zz9067-same. Search finds the fallback row by its shown name. The happy path still reads Project Monitor: Default. The list is client-side, so nameSort sorts in the browser.
His PR-level state, in short: list Addressed; masthead Answered (pre-existing, follow-up). By his process the PR looks ready to approve.
Pass B: our process
Question (evidence: ui, and an issue search): could Cody open the follow-up issue for deleting the legacy masthead's isProjectHelmChart branch? Now that nameDisplay falls back, deleting it is the root fix for the blank name, and nothing tracks it. I searched issues for isProjectHelmChart and the legacy masthead and found nothing.
Optional nit (evidence: test): shell/list/helm.cattle.io.projecthelmchart.vue:41 has no test. Reverting f703017fe keeps the model test and all six shell/list suites green. There is no test file for this list at all.
The new model test does its job: restoring master's projectId fails one test, removing the nameDisplay override fails another.
Two monitors in one project (only possible from kubectl) both read Project Monitor: Default now; master's view header said second-monitor. Intended by the issue.
Dimension
model
test
list
correctness
cleared (ui, 4 fixtures × 3 modes, 2 users)
cleared (jest 3/3)
cleared (ui, 8 admin rows, 3 member rows)
tests
cleared (2 mutations each fail a test)
cleared
finding: optional nit, revert keeps every suite green
a11y
cleared (aria-labels name the project; escaping is pre-existing)
n-a
cleared (fallback row is now a real link)
i18n
n-a
n-a
cleared (label key kept, no new strings)
conventions
cleared (getter on the model, ESLint clean)
cleared
cleared
errors
cleared (no TypeError for the member)
cleared (no-throw guarded)
cleared (no TypeError on the list)
perf
cleared (static)
n-a
cleared (static + ui)
Same on master, not filed
Escaped names: the Show Configuration title and the header aria-labels show R&D for a project called R&D. Master does the same on the project's own page. Same as round one: it could be its own issue.
Blank legacy and edit header when the project can't be resolved: Cody's follow-up.
Duplicate heading: under Explorer, "Project Monitors" shows twice above the list.
Search by resource name:second doesn't find second-monitor, because the column shows the project. Same on both builds.
Not checked, by either pass: the edit form itself (it stays on Loading, no federator on the cluster), saving, the YAML download name, the bulk Delete dialog, the User Base role, dark mode, Cypress.
To post
What I'd post: Approve
For Cody, in your voice and your usual shape: a short main comment and a reply in the existing thread. No code, no preview link.
Main comment
Thanks, the list now falls back like the header. I re-ran both cases from my last comment and each row is a link now.
Reply in the existing thread on shell/models/helm.cattle.io.projecthelmchart.js:27
Confirmed: the monitor outside any project and the one the Project Member reads in another project's namespace both show a clickable project-monitoring now. Agreed on the edit header, it's blank on master too, so a follow-up is fine. Could you open an issue for removing the isProjectHelmChart branch, so it doesn't get lost?
Optional inline on shell/list/helm.cattle.io.projecthelmchart.vue:41
Optional: nothing tests this column. Reverting this commit keeps every test green, so a small list test that the name column keeps nameDisplay would catch the override coming back.
Screenshots aren't needed for an approval. If you want one, the Project Member's list on this PR (above) fits the reply.
Left on the clusters
Still there from round one, so the preview links work: 8 Project Monitors and 2 namespaces on CD2, the temp project on mf, and the previews pr19794 and pr19794fix. pr19794fix isn't needed any more: the list half is in the PR and the masthead half is deferred. The round-two temp user, its RBAC and its credentials are deleted. The admin's saved language is Chinese, not changed by these runs. To clean up when you're done: