Skip to content

Ship 1.6.1: hide the WordPress 7 panel for disabled modules, fix admin copy - #52

Merged
wpgaurav merged 2 commits into
mainfrom
fix/ui-copy-audit
Sep 6, 2026
Merged

Ship 1.6.1: hide the WordPress 7 panel for disabled modules, fix admin copy#52
wpgaurav merged 2 commits into
mainfrom
fix/ui-copy-audit

Conversation

@wpgaurav

@wpgaurav wpgaurav commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Interface fixes found by auditing admin copy after the "WordPress 7 workspace" heading was queried.

The heading

The panel above Redirect Manager was headed "WordPress 7 workspace". That named the implementation rather than what the reader was looking at, and it dates itself the moment WordPress 8 ships. Removed: the panel's own tables already say "Redirects" and "404 activity", so the outer heading carried a label and no information. The two sibling loading and error strings no longer name the platform version either.

The bug behind it

Auditing turned up something worse on the same screen. The panel rendered for any of its four supported modules without ever checking whether that module was enabled.

On gauravtiwari.org, where Redirect Manager is switched off, its page still showed two empty tables and a fully interactive "Add redirect" form. The REST route correctly returns nothing for a disabled module and create-redirect correctly refuses, so the only thing that form could do was produce an error toast.

The enabled state now reaches the localized config and the workspace returns early without it.

Three more strings naming internals

  • Performance & Cleanup settings were headed "Miscellaneous (Bloat Control)". misc is the module's internal slug and "Bloat Control" appears nowhere else, so the card and the page it opened disagreed.
  • The dashboard box holding a single AI opt-in checkbox was headed "WordPress 7 Integration" and advertised abilities, command-palette actions, data workspaces and Core Icon interoperability, none of which are settable there. Renamed after the control it contains.
  • Link Management printed a bare Filter available: functionalities_json_preset_path where every other filter note uses Filter: <code>name</code> — what it does.

Audited and clean

No other UI string names a WordPress or plugin version. Classic-interface empty states are actionable rather than bare. The developer vocabulary elsewhere (REST API, cron, slug, Schema.org) is either correct WordPress terminology or sits in explicitly developer-facing hook listings.

Tests

Two new regressions, plus one fix:

  • The enabled gate is asserted in the PHP config, the JS source and the built bundle, so a forgotten npm run build fails rather than shipping stale JS.
  • Every translatable string in both admin files is walked and the test fails if any names a WordPress version.
  • WordPress7IntegrationTest pinned the literal 1.6.0 as block.json's version, so it failed on this bump and would fail on every future one. VersionConsistencyTest already asserts block.json matches the plugin header, so that assertion is no longer a second copy of the number.

54 tests, PHPCS clean, POT regenerated, bundle rebuilt.

Not addressed

Even with the gate, an enabled module shows the modern panel above the classic interface listing the same data. That is a design decision about which interface is canonical, not a copy fix, so it is left alone.

🤖 Generated with Claude Code

wpgaurav and others added 2 commits September 6, 2026 11:17
…ule is off

The panel above Redirect Manager was headed "WordPress 7 workspace". That named
the implementation rather than what the reader was looking at, and it dates
itself the moment WordPress 8 ships. The heading is gone: the panel's own
tables already say "Redirects" and "404 activity", so the outer heading carried
a label and no information.

Auditing the rest of the admin copy turned up a worse problem behind the same
screen. The panel rendered for any of its four supported modules without ever
checking whether that module was enabled. On a site with Redirect Manager
switched off it showed two empty tables and a fully interactive "Add redirect"
form. The REST route correctly returns nothing for a disabled module and
create-redirect correctly refuses, so the only thing the form could do was
produce an error toast. The enabled state now reaches the bundle and the
workspace returns early without it.

Three more strings named internals rather than what the reader sees:

- The Performance & Cleanup settings section was headed "Miscellaneous (Bloat
  Control)". "Misc" is the module's internal slug and "Bloat Control" appears
  nowhere else in the interface, so the card and the page it opens disagreed.
- The dashboard box holding a single AI opt-in checkbox was headed "WordPress 7
  Integration" and advertised abilities, command-palette actions, data
  workspaces and Core Icon interoperability, none of which are settable there.
  It is now named after the one control it contains.
- Link Management printed a bare "Filter available: functionalities_json_preset_path"
  where every other filter note in that file uses "Filter: <code>name</code> —
  what it does".

Two tests cover the regressions: one asserts the enabled gate exists in the PHP
config, the JS source and the built bundle, and one walks every translatable
string in both admin files and fails if any names a WordPress version.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Version bumped in the plugin header and constant, readme.txt stable tag,
README.md, block.json, package.json and the lockfile, with a changelog
section and upgrade notice.

WordPress7IntegrationTest pinned the literal '1.6.0' as the expected
block.json version, so it failed on this bump and would fail on every
future one. VersionConsistencyTest already asserts block.json matches the
plugin header, so the assertion here is now just that the key exists and
looks like a version rather than a second copy of the number.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@wpgaurav
wpgaurav merged commit 44dad22 into main Sep 6, 2026
9 checks passed
@wpgaurav
wpgaurav deleted the fix/ui-copy-audit branch September 6, 2026 05:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant