PR 19764 deep test

rancher/dashboard PR 19764 (codyrancher) at head ad9b8b26, tested 2026-11-04. It fixes your issue 19761: outside Cluster Explorer, every side nav group collapsed whenever the nav was rebuilt.

Preview: rancherpr19764r.mf-created-dashboard.ui.rancher.space, built from ad9b8b26, backend mf Rancher. Baseline: the shared dashboard-master preview. I confirmed the PR's currentNavState is on the running PR build and absent on master.

Verdict: still approve

Test it yourself

  1. Log in as the local admin (RANCHER_PASSWORD). The login page defaults to OpenLDAP, so click "Log in as a local user" first.
  2. Harvester: open the Harvester links above, expand all four groups and pick default in the namespace filter. Master collapses all four.
  3. Fleet: jump to "Bundle" from the search box, then switch the header workspace. On the PR, Resources stays open and the collapse-all button stays. On master, both go.

The namespace and workspace choices save to the shared admin's prefs when you do this by hand. My runs answered every write in the browser, so nothing changed.

New cases where the PR is better
CasemasterPR 19764
Harvester registered in Rancher (harvester-118), the real PR build with no hand patch: all 4 groups open, header namespace dropdown to defaultAll 4 collapseAll 4 stay open
Language switch to zh-hans, Cluster Management, Providers + Advanced openBoth collapseBoth stay open, labels translate
A schema arrives (the real allSchemasIds watcher): Cluster Management Advanced, Fleet ResourcesBoth collapseBoth stay open
Group expanded inside the 500ms debounce window, before the rebuild runsCollapsesStays open
Direct load of a Cluster Management page under Advanced, then a rebuildActive group collapsesStays open
Direct load of a nested Explorer page (More Resources > API), then a rebuildAPI collapses, parent staysBoth stay open
Fleet: jump-to "Bundle" with Resources closed, then a rebuildJump opens it, rebuild collapses itStays open
Fleet: collapse-all button after a rebuildButton gone, nothing is expandedStill there. Click closes all, focus moves to the first header, stays closed through another rebuild
Keyboard: Enter on Advanced, Space on Providers, focus back, rebuildFocus stays, aria-expanded goes false on bothFocus stays, aria-expanded stays true on both
Explorer with localStorage full (setItem throws)Rebuild collapses the groupStays open, a small bonus of the fix
Standard User: Cluster Management, Providers + Advanced open, rebuildBoth collapseBoth stay open
User Base: same walkBoth collapseBoth stay open
New cases where the PR matches master
CaseBoth builds
Cluster switch with a rebuild still queued: local → created-dashboard-2 in the same tickNothing from local reaches the new cluster, and local restores on return
local Explorer → Fleet → created-dashboard-2 ExplorerNothing crosses, no Fleet names in the saved state
Harvester → Explorer → Harvester on one real clusterNo shared names, no Harvester names saved in Explorer. Harvester comes back collapsed on both, nothing is saved for it
Active group collapsed by hand, then a rebuild, then a route changeStays closed through the rebuild, the route change reopens it
Starred through the real addFavorite / removeFavoriteStarts open, stays collapsed once collapsed, other groups untouched
Explorer nested group opened by hand, rebuild, reloadKept
Saved state corrupted: "oops", [1,2], 5, {bad, nullPage loads, groups still work
Explorer subgroup whose schemas go away and come back (inUse_K3s)Returns open from localStorage
Fleet group whose schemas go away and come back (Resources)Returns closed: the tree lost it and nothing is saved (card 4)
Preferences and back, which remounts SideNavCluster Management Advanced closed, Explorer restored (card 4)
Standard User as a cluster member on created-dashboard-2 Explorer: 3 groups open, rebuild, reloadAll kept
Fleet for Standard User and User BaseNo collapsible groups, so nothing to carry. User Base has no Explorer here, it lands on Home
Unit test strength
Mutation of the fix, in a fresh cloneSideNav.test.ts (28 tests)
stampNavState back to load() (master's code)3 fail
Precedence swapped, storage outranks the tree1 fails
Storage ignored in the merge5 fail
Only top-level groups carried, nested ones dropped4 fail
Only true carried3 fail

Unmodified, the head passes all 28. The wider set (shell/components/nav, SideNav, shell/composables) passes 47 suites, 918 tests. The file was restored after each mutation.

Findings
1

The new rule has no comment in the code

shell/components/SideNav.vue:322
Nit, optional

From round 1, already in your pending review. The rule that the tree on screen beats localStorage is guarded by a single test (the precedence-swap mutation above fails only that one), so the one-line comment is still worth asking for.

2

Should this stay on 2.17?

Milestone v2.17.0, Branch Milestone check red
Your call

Still open from round 1, and rechecked today. The gate says master expects v2.16.0, and there is still no release-2.16 branch. The regression came from PR 18195, which is on v2.16.0. So if this stays on 2.17, 2.16.0 ships with the collapse in Fleet, Cluster Management and Harvester unless it is backported. Moving it to v2.16.0 would turn the gate green. It is the only check holding the PR apart from the review itself.

3

Two tabs no longer sync on a rebuild

Explorer, same cluster in two tabs
FYI

Tab A opens Storage. Tab B then rebuilds its nav. On master, B opens Storage too, because the rebuild read localStorage. On the PR, B keeps what it had, and its next save writes Storage back to closed, so A's choice is lost on reload.

This is narrower than it sounds. Without a rebuild, master overwrites A's choice in exactly the same way (I ran that too), so tabs were already last-write-wins. It follows directly from the on-screen tree outranking storage, and a tab not changing under your hands is arguably better. I would not raise it.

4

Outside Explorer, state still resets when the tree is lost

Preferences and back; a group whose schemas leave and return
FYI

The fix carries state from the tree on screen, so it can't help once that tree is gone. Going to Preferences and back remounts SideNav, and Cluster Management's Advanced comes back closed. A Fleet group whose schemas leave and return also comes back closed. Both match master, and the PR description says persistence outside Explorer is deliberately left out. Your issue only asks for rebuilds, so this is not a gap in the PR. If someone reports the Preferences round trip, it needs its own issue.

Checked
Not checked