Reviewed in #1, where CodeRabbit found four issues — one of them a real functional bug. All four are fixed in this release.
New: filter box at the top of the sidebar
A grouped sidebar trades scanning for clicking — an item you cannot see is behind a collapsed header, and on a thirty-plugin site you may not know which one. Start typing and the menu narrows to matching items across every group, open or closed.
Escapeclears,Enterfollows the first match- While a query is active every header hides and the list goes flat, because disclosure is meaningless when the visible set is decided by a query rather than by your clicks
- A polite live region announces the match count, so the menu does not silently rearrange under a screen reader
- Hidden below eight menu items, and while the sidebar is folded
With JavaScript off there is no box and the sidebar is a plain grouped menu.
Opening a group brings it to the top
Expanding a group near the bottom of a long sidebar used to reveal its members below the fold, so the click looked like it had done nothing. The group's header is now scrolled to the top of the scrollable area. Only on expand — doing it on collapse would yank the page for no reason — and it honours prefers-reduced-motion.
Long group names wrap instead of being cut off
This is the third attempt at the clipped-name problem and the first that fixes the right thing.
Shortening the defaults did not work, because a name is stored per group: a site that saved a layout beforehand keeps the long one, and you can type a long name at any time. Truncation was never a defaults problem. Names now wrap onto a second line, which holds for names you choose as well as the ones that ship.
The indent can no longer be cached away
The member indent is now also written inline on every page load, not left to the stylesheet alone.
A live site reported the Plugins screen showing the new version while the sidebar still rendered flat. The cause was a stale OPcache: old compiled PHP meant the version constant evaluated to the previous release, so the stylesheet was fetched at its old URL and the browser served a copy predating the indent rules. Meanwhile WordPress reads the version header straight off disk, so the plugin looked updated and behaved as though it were not.
No plugin can flush someone's OPcache. It can stop depending on a cacheable file for the part that matters.
From the review
- Filtering now outranks the collapsed-row rules. The desktop selector carried one more class than the filter-hidden rule, so it won on specificity and re-revealed every non-matching row inside a collapsed group — the filter appeared to do nothing for exactly the groups it helps most. The mirror image applied below 782px, hiding rows a query had just matched. Both scoped correctly now.
- Dropped
word-break: break-word, deprecated in CSS Text 3 and redundant besideoverflow-wrap: anywhere. - Lowercased
currentcolorkeyword values. - Added the Arabic translation for the filter's match-count status, which was reaching Arabic users in English.
Verification
12 checks green on the PR and 11 on main: Plugin Check across all five categories, the integration suite on PHP 7.4 / 8.1 / 8.3 against both WordPress 6.4 and current stable, unit suite 323 tests / 3135 assertions, a real PHP 7.4 syntax pass, WordPress coding standards, an outbound-request scan, and CodeRabbit.
Not verified: the filter box and the reveal-on-expand have not been used in a browser. Both degrade to the previous behaviour if the script fails, but the interaction itself wants a human.