github austinginder/minn-admin v0.16.0

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

The personalization and polish cycle. Minn now looks and behaves per user: named color schemes for light and dark (or a fully custom palette) picked on Your profile, and preferring Minn as the default admin becomes an opt-in per-user choice. Lists calm down across the app: tab, filter, and search changes keep toolbars painted and dim in place instead of flashing a Loading screen, on Content, Media, the commerce views, and plugin surfaces alike. The editor gets quieter and deeper at once: secondary meta tucks behind door rows, revisions open with an activity heatmap, the schedule calendar shows what is already planned, and long titles finally wrap. Licenses keep growing with Yoast SEO Premium and the Smash Balloon family, activity logs gain status cards, and updating a single plugin or theme no longer wipes every other pending offer.

Added

  • Yoast SEO Premium license: Extensions → Licenses gains a Yoast SEO Premium row. Subscription state comes from free Yoast SEO's MyYoast site info (WPSEO_Addon_Manager); there is no paste-a-key path. Activate ↗ opens Yoast's Licenses page, and Verify refreshes the MyYoast cache.
  • Smash Balloon licenses: Extensions → Licenses gains dedicated rows for Instagram Feed Pro, Custom Facebook Feed Pro, YouTube Feed Pro, Custom Twitter Feeds Pro, Social Wall, Reviews Feed Pro, TikTok Feeds Pro and Feed Analytics Pro. Paste-to-activate, deactivate and re-verify go through Smash Balloon's own EDD store (smashballoon.com); an All Plugins multi-product key activates each product with that product's own download name.
  • Per-user color schemes: how Minn looks is now a per-user preference on Your profile. Pick a named scheme for light and dark, or build a Custom scheme with per-slot color pickers (13 surface and brand tokens). Preferences live in minn_admin_appearance user meta via minn-admin/v1/me/appearance, paint FOUC-free from the pre-paint script, and scheme flips apply instantly with the save debounced in the background. Theme mode (System / Light / Dark) joins the profile beside the schemes, sharing the topbar control's preference. Legacy accent-only choices migrate; status colors stay fixed.
  • Open in new tab on the link popover: a switch on the editor's link popover sets target="_blank" (with noreferrer noopener) on Apply; links that already open in a new tab seed the switch on.
  • Schedule calendar shows what's already planned: in the date picker, days that already have published or scheduled items of the same type get a tint and an under-dot, with a floating list of titles on hover and a legend when any day is marked. Months soft-load as you page through the grid.

Fixed

  • Single plugin update cleared every other update notice: Plugin_Upgrader runs wp_clean_plugins_cache, which deletes the whole update_plugins transient. Updating one plugin (e.g. Jetpack from Notifications) then wiped every remaining plugin offer from the panel and Extensions badges. Minn now snapshots pending offers before the upgrade and restores every file that was not updated.
  • Single theme update cleared every other theme offer: same trap for Theme_Upgrader / wp_clean_themes_cache / update_themes. Snapshot and restore the other stylesheets after a single theme upgrade.
  • Extensions list empty after a notification-panel plugin update: finishing the last plugin update while the Updates filter was active (or left sticky from earlier) hid the Updates pill and left a blank “No updates plugins” page even though All still showed full counts. When no plugin/theme updates remain, Minn snaps back to All, keeps the active filter pill visible at zero, and uses clearer empty copy.
  • Connectors after Install & activate: installing a provider plugin (e.g. OpenAI) no longer leaves Settings → Connectors on “Connectors couldn’t be loaded” when the PHP worker recycles mid-response. Minn waits for REST, retries the connectors fetch, and offers an in-panel Retry if a load still fails. A dropped install reply after a successful package install is treated as success and reloads the list the same way.

Improved

  • Users list column sort: Name, Email, and Registered are sortable headers (server-side via wp/v2/users orderby / order). Click flips direction; a new column uses a sensible default (A→Z for name/email, newest first for registered). Role is not sortable (WordPress has no roles orderby).
  • Revision heatmap: the All revisions dialog opens with a GitHub-style activity grid (activity window capped ~3–6 months so empty years don’t dominate). Click a day to filter the list to that day; click again or Show all to clear.
  • Rank Math social thumbnail: when Rank Math is the active SEO provider, the SEO panel gains a Social thumbnail image field (Facebook OG image; Twitter inherits via Rank Math’s own flag). Set / replace / remove through the media picker; values write rank_math_facebook_image + _id.
  • Settings door summary omits Uncategorized: only real category picks appear on the Settings door one-liner.
  • Sticky moved to Settings: “Stick to the top of the blog” leaves the Publish card (still hidden under password visibility) and lives in the Settings modal with discussion.
  • Editor sidebar doors: secondary editor meta (Settings, Page attributes, History, Custom fields, SEO, …) is a quiet door row with a one-line summary that opens a large modal. Publish, Featured image, and Outline stay on the rail so the write path stays one glance. Same fields, dirty flags, and autosave as before — no second save button in the modal.
  • Content list thumbnails: posts and pages with a featured image show a small thumb in the content list (type icon stays when none is set). Uses core REST _embed=wp:featuredmedia with the existing _fields allowlist, so lists still never run the_content.
  • Content list type chip: on the All tab, each row shows a quiet Post / Page / CPT chip under the title (same line as the slug and builder chip). Not a full column: single-type tabs already name the type in the filter, and thumbs had hidden the ¶/file glyph.
  • Gravity SMTP bulk log delete: the Email log (the mail family reference) gains single-row and bulk Delete, through Gravity SMTP's own Event_Model::delete and gated on its DELETE_EMAIL_LOG capability. Permanent, no trash; same shape FluentSMTP and Post SMTP already had.
  • Activity Log status cards: Simple History, WP Activity Log, Stream and Aryo each gain a status strip above the list (events in the last 24 hours and 7 days, all-time total, last event, plus a family-specific mix: severity, high+critical, top connector, or top action). Matches the daily-ops depth Solid Security, Limit Login Attempts and Wordfence already had. Open ↗ deep-links to each plugin's own screen.
  • Extensions cards drop the ⋯ button: plugin and theme cards open their actions menu only via right-click (or long-press). The on-card ⋯ was the same menu and just cluttered the foot.
  • Default admin is per-user and opt-in: "Prefer Minn Admin as the default admin" is a profile preference now, off unless you turn it on (it is no longer seeded from the legacy site option). When on, login lands in Minn and edit links open the Minn editor; wp-admin lists and screens keep their classic Edit links either way, with only the admin bar's edit entry retargeted. The admin bar entry always reads "Minn Admin".
  • Soft-reload keeps list chrome painted: Content, Comments, Orders, Subscriptions, Products, Coupons, Customers, Media, and surface lists (Gravity Forms and friends) share one soft-reload path. Tab, filter, and search changes keep the toolbar and tabs painted and dim the list body instead of replacing the whole view with "Loading…". First visits to Extensions Themes / Licenses, Menus, and Structure keep the tab strip too, and stale responses after a fast tab change are ignored.
  • Long editor titles wrap: the title is an auto-sizing textarea, so long titles wrap onto multiple lines instead of clipping. Enter still moves into the body and never inserts a newline.
  • Users: ID and session filter: the list shows a sortable ID column (the edit dialog shows the ID too) and filters by session status (All / Active / Expired / Never signed in) through minn-admin/v1/users.
  • Editor switches: Discussion, Stickiness, and Public preview checkboxes are now left-aligned switches.
  • Media toolbar drops the SVG pill: the SVG filter tab already signals Safe SVG is active, so the green toolbar badge is gone (the sanitization note stays on media detail).

Don't miss a new minn-admin release

NewReleases is sending notifications on new releases.