Skip to content

v0.24.0

Choose a tag to compare

@austinginder austinginder released this 06 Aug 20:17
· 207 commits to main since this release

The connections release. Minn has managed license keys for a while; this cycle it starts telling the whole truth about the external services a site talks to. The Licenses tab now inventories service keys and account connections alongside purchase licenses, with WooCommerce.com, Site Kit and Jetpack as read-only rows and the AI connector keys WordPress core manages one doorway away. Akismet's key gets a paste-in-place field on the spam card, WPForms Pro joins both the license manager and the Forms surface with the full entries treatment, and FluentSMTP's quiet daily connection test surfaces the failure that matters most: outgoing email that silently stopped working months after setup. A topbar progress pill while updates run and the sidebar toggle moving up into the topbar keep the everyday feel visible and honest.

Added

  • Updates tell you they are running: starting "Update everything" now puts a progress pill in the top bar that stays on every screen until the run finishes, so closing the notification panel or walking away no longer leaves you wondering whether anything is happening. It names the current phase (the plugin count, then each theme by name with its position, then WordPress), spins while it works, and clicking it reopens the panel where the results land. Plugins still update in a single batch, which is the fastest way to run them.
  • WPForms entries in Minn: WPForms joins the Forms surface with the full treatment. Entries render as contact cards with per-form tabs, unread, read, starred, spam and trash views, search, star and read state, spam and trash flows with restore, and permanent delete through WPForms' own machinery. Opening an entry marks it viewed, exactly as WPForms' own screen does, and the whole surface honors WPForms' access capabilities, so a user who cannot see entries in WPForms cannot see them in Minn either. Entries are a WPForms Pro feature; Lite sites simply do not get the surface.
  • Status cards across the whole forms family: Fluent Forms, Ninja Forms, Forminator, Contact Form 7 and Everest Forms now open with the same at-a-glance card SureForms already had: unread or received entries, spam and trash counts where the plugin tracks them, how many forms exist, and a link to the plugin's own entries screen. Every number comes from the plugin's own storage, so the card always agrees with what the plugin itself reports.
  • Resend an email to somebody else: every FluentSMTP log entry now offers "Resend to…" alongside the plain Resend, so a receipt that went to a dead address can be pointed at the right one without leaving the log. Addresses are checked before anything sends; one bad address stops the whole resend.
  • Your site's account connections, inventoried: WooCommerce.com (with who it is connected as and how many extension subscriptions ride it), Site Kit by Google and Jetpack now appear on the Licenses tab as read-only rows. A site that is not connected gets a Connect button straight into the right screen; a half-finished Site Kit setup says so honestly instead of reading as fine. Minn only checks that each connection exists: the sign-in ceremonies, tokens and disconnects stay entirely with each plugin.
  • Service keys and connections join the Licenses tab: the card covers more than purchase licenses now; the Envato Market account token, WPMU DEV's Hub link and Akismet's service key are connections, not licenses, and the rows finally say so. Each row carries a small chip naming what it is, connection rows read "Connected" or "Not connected" instead of borrowing license language, the "No license" group became "Not set up", and the AI connector keys WordPress core manages appear as read-only rows with a doorway to Settings → Connectors, so one screen answers "what external services does this site talk to, and is each healthy". Unconfigured AI connectors never trip the System health check.
  • Akismet keys, right on the spam card: an unconfigured Akismet card on Settings → Comments now carries a paste-your-key field (with a Change key option once one is set), verified and stored through Akismet's own machinery, including its subscription check. A rejected key shows Akismet's real reason inline and stores nothing. Akismet also appears on the Licenses card with the same activate, verify and remove controls, so both doorways drive one implementation. Keys supplied in code (the WPCOM_API_KEY constant or a filter) render read-only, and spam plugins can offer the same in-place field through a new keyProvider contract key.
  • WPForms Pro joins the license manager: the Licenses card now reads WPForms Pro's license state (plan level, expired, disabled, invalid and site-limit flags, and keys defined in wp-config) and offers activate, deactivate and verify through WPForms' own license machinery. A rejected key is refused cleanly with WPForms' own message and nothing is stored; deactivating frees the seat on wpforms.com the same way their settings screen does.
  • FluentSMTP's daily connection check, surfaced: FluentSMTP 2.3 quietly tests every mailer connection once a day, because the failure that matters is the silent one (an expired token months after setup). Minn now shows that verdict on the Email status card and, when a connection is failing, as a System health warning that links to the connection screen. A site whose outgoing email is broken says so the moment you open Minn.

Improved

  • The navigation toggle is a real button now: showing and hiding the sidebar moved from a slim tab on the left screen edge up into the top bar, as an icon button beside the page title. Same behavior, same ⌘. shortcut, same memory of your choice; it is simply where your eyes already are, and when the sidebar is hidden the button stays in the corner as the obvious way back.
  • Resends now leave a trail: resending from the FluentSMTP log rides FluentSMTP's own resend machinery on 2.3 and newer, so the original headers and attachments come along, the log entry records each resend (who sent it, where it went, and whether it delivered), and no duplicate row appears. The email's detail view shows that history. Older FluentSMTP versions keep the previous behavior.
  • FluentSMTP permissions are honored: sites that grant FluentSMTP access to a custom capability through its new filter get the same access rules in Minn's Email surface, instead of a hardcoded administrators-only gate.
  • Scrutoscope profiles read through Scrutoscope: the profiler's author shipped a list endpoint in Scrutoscope 1.5 so integrations no longer have to read his database table, and Minn now uses it. This is a safety improvement rather than housekeeping: Scrutoscope reduces stored SQL to a verb and table name, and outbound request URLs to a bare hostname, then re-applies both on the way out so that captures written by older versions get cleaned too. Reading the table directly was the one path that skipped that step. The profile list, and the totals on the status card, now come from Scrutoscope's own code on 1.5 and newer, with the previous reader kept for older versions.
  • Profiles you captured from Minn are easier to find: using "Profile this hook" on the Cron view saves an on-demand profile, but the list only offered Pinned, Session and Background tabs, so your own capture appeared under All profiles and nowhere else. There is now an On demand tab for exactly those.
  • A Context column on the profile list: every capture now shows whether it came from the front end, the admin, a REST call, Ajax, cron or the command line, which is the quickest way to tell an admin-only slowdown from one your visitors feel.
  • More on the profiler status card: it now reports how many distinct routes have been captured and how far back the stored history reaches, alongside the profile count, so you can see at a glance whether a profiling session covered enough of the site to be worth reading.