PR 330 review, round 5

rancher-ai-ui PR 330 (torchiaf) at 6fcbd72, reviewed 2026-11-09. Five commits on top of 5d64721 since your review this morning, no rebase (main is still f8d4357): fbe98fb e2e wait, ab23e27 label wrapping, 0f1261e hover background, febffcf aria-expanded, 6fcbd72 dead CSS.

Preview: rancheraipr330r.mf-created-dashboard.ui.rancher.space, built from 6fcbd72, backend mf 2.16 (rancher.13.48.147.135.sslip.io). Also: the same build against mf-rancher-16 (llm-mock).

Where it stands: all four comments fixed, one small aria follow-up, e2e still running

1. Your four comments, checked
Your commenttorchiafChecked now
MCP Cancel / Continue split mid-word near the narrowest panel (McpAuthenticationRequest.vue:237)"Fixed, thanks". ab23e27: overflow-wrap: break-word instead of word-break, and list-style-position dropped, in all four filesFixed. Whole words on one line at every width from 250 to 340px
Hovered Cancel: green text on the blue link tint (Confirmation.vue:267)"I added another custom rule". 0f1261e: background: var(--tertiary-hover, var(--accent-btn)) on hover in the four files, and a note on shell issue 19809Fixed. The five link buttons (the four Cancels and the recommendation's Don't show this again) hover with main's green, light and dark
The one Show more / Show less toggle has no aria-expanded (StatusInfo.vue:237)"Done, I also added the aria-expanded to the main collapse button". febffcfCollapse button right. Show more toggles miss it until the first click, card 1
Dead background: transparent on .cancel-button (StatusInfo.vue:263)"Done". 6fcbd72Gone. The class still carries the shared white-space and icon margin, and the tests use it

fbe98fb also adds a wait to the scroll e2e test that was red this morning: after each reply it waits for the "processing" state to go away before scrolling up. That matches the race found in round 4.

Comment 1: the MCP buttons at a 250px panel
MCP buttons at a 250px panel: whole on main, split mid-word at 5d64721, whole at 6fcbd72
Panel widthMCP buttons at 6fcbd72Agent recommendation
250pxone line, whole wordsno sideways scroll
260pxone line, whole wordsno sideways scroll
270pxone line, whole wordsno sideways scroll
280pxone line, whole wordsno sideways scroll
300pxone line, whole wordsno sideways scroll
340pxone line, whole wordsno sideways scroll

The recommendation buttons still wrap between words at 250 to 270px, like in torchiaf's screenshot. Main scrolls sideways there instead.

Comment 2: hovered link buttons, every case
Hovered Cancel: green on main, blue tint at 5d64721, green at 6fcbd72

All five link buttons. The text stays theme green at rest and on hover in every build. At rest the link Cancels have no background (main has a light green one); that is the designer's "the cancel button should be a link".

Buttonmain f8d4357
hovered
round 4 5d64721
hovered
now 6fcbd72
hovered
Cancel
Plan waiting for approval
main-light plan-pending-4-hover.png green tintpr-light plan-pending-4-hover.png blue tintpr5-light plan-pending-4-hover.png green tint
Cancel Execution
Plan running
main-light plan-running-4-hover.png green tintpr-light plan-running-4-hover.png blue tintpr5-light plan-running-4-hover.png green tint
Cancel
Confirmation before a change
main-light confirmation-1-hover.png green tintpr-light confirmation-1-hover.png blue tintpr5-light confirmation-1-hover.png green tint
Don’t show this again
Agent recommendation (system message)
main-light system-1-hover.png green tintpr-light system-1-hover.png blue tintpr5-light system-1-hover.png green tint
Cancel
MCP sign-in request
main-light mcp-1-hover.png green tintpr-light mcp-1-hover.png blue tintpr5-light mcp-1-hover.png green tint
Same in the dark theme
Buttonmain f8d4357
hovered
round 4 5d64721
hovered
now 6fcbd72
hovered
Cancel
Plan waiting for approval
main-dark plan-pending-4-hover.png green tintpr-dark plan-pending-4-hover.png blue tintpr5-dark plan-pending-4-hover.png green tint
Cancel Execution
Plan running
main-dark plan-running-4-hover.png green tintpr-dark plan-running-4-hover.png blue tintpr5-dark plan-running-4-hover.png green tint
Cancel
Confirmation before a change
main-dark confirmation-1-hover.png green tintpr-dark confirmation-1-hover.png blue tintpr5-dark confirmation-1-hover.png green tint
Don’t show this again
Agent recommendation (system message)
main-dark system-1-hover.png green tintpr-dark system-1-hover.png blue tintpr5-dark system-1-hover.png green tint
Cancel
MCP sign-in request
main-dark mcp-1-hover.png green tintpr-dark mcp-1-hover.png blue tintpr5-dark mcp-1-hover.png green tint
Comment 3: aria-expanded, step by step

Read from the DOM of the real package (the attribute sits on the native button). Highlighted rows have a Show more toggle with no aria-expanded.

StepPlan collapse buttonTask 1 toggleTask 2 toggle
Plan shown"Collapse", aria-expanded true"Show more", aria-expanded missing"Show more", aria-expanded missing
Click Show more on task 1"Collapse", aria-expanded true"Show less", aria-expanded true"Show more", aria-expanded missing
Click Show less on task 1"Collapse", aria-expanded true"Show more", aria-expanded false"Show more", aria-expanded missing
Enter on task 2's Show more"Collapse", aria-expanded true"Show more", aria-expanded false"Show less", aria-expanded true
Enter on the collapse button"Expand", aria-expanded falsenot shownnot shown
Space on the collapse button (plan open again)"Collapse", aria-expanded true"Show more", aria-expanded missing"Show more", aria-expanded missing
The plan after the last step
2. Findings
1

Show more toggles start without aria-expanded

StatusInfo.vue:239 (:aria-expanded="isTaskExpanded[index]")
Code, suggestion

isTaskExpanded starts as {}, so isTaskExpanded[index] is undefined until the first click, and Vue leaves an attribute out when its value is undefined. A screen reader hears a plain "Show more, button" with no collapsed state. After one open and close it reads false. Collapsing and reopening the plan resets the map, so the attribute disappears again. !!isTaskExpanded[index] fixes all three. The collapse button binds !isPlanCollapsed, a real boolean, and is right: Enter and Space toggle it once and focus stays.

2

e2e

run 42634734531
FYI, running

Still running on 6fcbd72 (started 14:26 UTC). At 5d64721 it failed 3 of 3 on the scroll test It should not scroll when interacting with actionable items. fbe98fb now waits for the processing state to go away after each reply before the test scrolls up. That fits the round-4 diagnosis: scrollToBottom in useScrollComposable unhooks the scroll listener until the next frame, so a scroll in that frame is lost.

3

Seen and left out on purpose

Your call
3. What was checked
CheckResult
Real build-pkg at 6fcbd72 swapped into mf 2.16, light and dark, every button and link in nine chat casesSince round 4 only the hover background of the five link buttons changed, now the same green as main. Nothing else moved. Same four 404s as main, from the environment
The PR preview (standalone build), same inventorySame colours as the real package on all 24 elements
Narrow panel sweep, 250 to 340px, light and darkNo mid-word splits, nothing sticks out, no sideways scroll
aria-expanded through click, Enter and Space, plan collapse and reopenCard 1
Code review of the five commits against the team checklistNo blockers. Styles scoped, no :deep, no new strings, the e2e wait uses an existing page-object helper
CI at 6fcbd72unit, lint, i18n green; e2e: running
Not checkedA real agent conversation (replies scripted), Firefox and Safari, a real screen reader
4. Suggested review (draft, not posted)

Body

Thanks, all four are fixed. One small thing on the new aria-expanded below, not blocking.

StatusInfo.vue:239

isTaskExpanded[index] is undefined until the first click, so Vue leaves aria-expanded off and a screen reader hears a plain button. !!isTaskExpanded[index] gives false from the start, and also after the plan is collapsed and opened again, which resets the map.