github austinginder/minn-admin v0.15.0

latest releases: v0.36.0, v0.35.0, v0.34.0...
one month ago

v0.15.0 - July 15, 2026

The library and daily-ops cycle. Performance settings join a provider family beside Perfmatters, Add plugin opens a marketing-style catalog, Meta Box and Pods land in the editor sidebar next to ACF, WooCommerce Subscriptions gets its own Workspace surface, and Extensions finally feels like a real package manager: card menus, clearer hub links, resilient Update all, and per-row Update on notification offers. Notices and mail keep catching up to real plugins: clickable Allow / No Thanks, ThemeIsle dismiss in-panel, Post SMTP search and delete, and a Fluent Forms suite that closes the last forms-family coverage gap.

Added

  • Performance family pack: the thin Performance card grows three popular peers alongside Perfmatters, sharing one Tools nav item with a provider switcher. Autoptimize maps its daily JS / CSS / HTML / CDN / Misc options as a settings-only surface (Critical CSS, Extra and Image stay in Autoptimize; Clear site cache still purges its cache). Asset CleanUp maps global minify/combine, head cleanup, Google Fonts and test-mode toggles the same way (the page-level CSS/JS unload manager stays in Asset CleanUp). Performance Lab lists the WordPress Performance Team standalone features with Activate (through its own install helper) and Deactivate, plus a status card.
  • Add plugin catalog: the Add plugin dialog opens on a marketing-style grid of popular plugins by category (SEO, Forms, Backup, Performance, Dev tools, and more) instead of flat search chips. Click a chip to install from WordPress.org or activate if already present; Disembark installs from its latest GitHub release. Hover a chip for a tip with icon, author, active installs and short description (wordpress.org info, cached 12h; GitHub-only plugins use a local blurb). Free-text search still hits the directory, with a one-click return to the catalog.
  • Meta Box editor panel: simple Meta Box fields (text, textarea, number, range, email, url, select, radio, checkbox, switch) appear in the editor sidebar as Custom fields · Meta Box, with values on a dedicated minn_meta_box REST field written through rwmb_set_meta. Cloneable and advanced fields count as locked with a wp-admin link (ACF-style).
  • Pods editor panel: simple Pods fields on extended post types (text, paragraph, number, email, website, single custom-simple pick, boolean) appear as Custom fields · Pods, with values on a dedicated minn_pods REST field written through pods()->save(). File, relationship, multi-pick and other advanced types count as locked with a wp-admin link.
  • Traffic day drill-down for Burst and Independent Analytics: the Overview Traffic bar modal now answers from Burst Statistics (burst_statistics pages + burst_sessions referrers) and Independent Analytics (views × resources + session referrers), joining Koko and WP Statistics on minn_admin_traffic_day.
  • Safe SVG media affordance: when Safe SVG is active, Media gains an SVG filter tab, an SVG on badge, and a detail note that uploads are sanitized by Safe SVG. Sanitization stays the plugin's job; Minn only surfaces that SVG uploads are allowed.
  • WooCommerce Subscriptions: when the extension is active, Workspace gains Subscriptions (status tabs, search, next payment, billing period, detail modal with status save through wc/v3/subscriptions, related orders, deep link). Order modals list related subscriptions and open them in place. The shop_subscription CPT stays fenced out of Content.
  • Extensions card menus (plugins and themes): right-click, long-press, or the button on a plugin or theme card for Activate / Deactivate (or Activate theme), Update when an offer is pending, Delete when allowed, plus Links (Open on WordPress.org / Open on GitHub when the URL is on those hosts, otherwise plugin/theme website and author) and Copy plugin file / stylesheet. Theme cards also link the screenshot and author to the theme hub when known. Verbs share the same handlers as the on-card controls so the menu cannot drift.
  • Update buttons on update notifications: each plugin, theme, or WordPress core update row in the Notifications panel has its own Update → version button (same serial queue and labels as Extensions), so you can apply one offer without Update everything.

Fixed

  • Otter / ThemeIsle “No, thanks.” dismisses in-panel: review nags that link to wp-admin/index.php?nid=…&tsdk_dismiss_nonce=… (and similar admin dismiss URLs) run as background actions instead of opening wp-admin in a new tab. External review CTAs (wordpress.org) still open in a new tab.
  • Notification panel keeps scroll on mark-read: clicking a notice to clear its unread dot no longer jumps the list back to the top.

Improved

  • Fluent Forms suite: Playwright coverage for the Fluent Forms entries surface (form tabs, Received/Spam/Trash filters, search, labeled detail + mark-read on open, trash and permanent delete, Forms manage view). Closes the last forms-family suite gap for an adapter that already had full depth.
  • Notice “No, Thanks” / “Allow” buttons work: telemetry and opt-in nags that only use href="#" buttons (Everest Forms contribute notice, and the same shape) show as real action buttons in the Notifications panel instead of dead text. No, Thanks runs the plugin’s dismiss path (whitelist) so the nag does not bounce back; Hide still works for everything else.
  • Post SMTP email log: search (subject / to / from) and permanent single + bulk delete on the log, matching FluentSMTP and WP Mail Logging. Session transcripts stay out of the surface.
  • Content bulk status is a themed combobox: the bulk bar's Set status… control (and Products' status / stock pickers) uses the same searchable autocomplete as Users bulk role, instead of a native OS <select>.
  • Update all feedback on Extensions cards: Update all queues each pending plugin through the same one-at-a-time path as a single Update click, so cards show Queued… then Updating… (with a highlight on the active card) and the toolbar button reads Updating… (N) until the queue drains, instead of a silent bulk request with only a toast.
  • Plugin update queue survives worker recycles: after each upgrade (and on "Failed to fetch" / connection refused) Minn waits for REST to answer again before the next card, retries a dropped upgrade, and treats a vanished update offer as success when the reply was lost mid-upgrade. Stops a multi-update run from dying after the first successful package swap on FrankenPHP.
  • Subscriptions polish: clearer empty state; parent order callout and open action; View customer from the subscription modal; customer detail gains a Subscriptions strip (and All subscriptions) when WooCommerce Subscriptions is active. Dogfooded on WooCommerce Subscriptions 9.0.1 (same wc/v3/subscriptions contract; detail also shows manual renewal and suspension count when present).

Don't miss a new minn-admin release

NewReleases is sending notifications on new releases.