Releases
Release notes
Generated from the plugin’s own changelog, so this page and the plugin can never disagree. Newest first.
0.24.8
- Fixed: every documentation link in the plugin pointed at a page that does not exist. The Settings header, the onboarding wizard, the MCP Connection tab, the plugin action links, and the docs URLs the AI receives in
start_projectandget_best_practicesall resolved tonoleemits.com/docs/…, which has never been published — so every attempt to reach the documentation, by a human or by the AI, landed on a 404. The documentation now lives under the product atnoleemits.com/ai-design/documentation/and all of those links follow it. Theppd_docs_base_urlandppd_docs_urlfilters are unchanged, so self-hosted deployments pointing at an internal docs site are unaffected. - Fixed: the third-party-widgets best-practices response bypassed the docs helper. Its
docs_urlwas hardcoded, so it kept returning the old address even on sites that had filtered the docs base URL to somewhere else. - Fixed:
Stable tagin readme.txt had drifted five releases behind the plugin header.
0.24.7
- Fixed: icons ballooned to 300px in previews, embeds and exports. Previewing a library section or a global header/footer blew every icon up to a huge block that shoved the rest of the layout aside, making a perfectly good section look broken. Icons only had a default size on Design Page templates, so anywhere else — the "View" preview windows, sections embedded in a normal post with
/, content-only mode, and downloaded HTML exports — they fell back to the browser's placeholder size instead. The default now travels with the section itself, so an icon is the same size everywhere it appears. Sections that set their own icon size are unaffected.
0.24.6
- Fixed: "Save Overrides" on a shared section always failed with "section is required and must be an object." Per-page overrides on a library section could not be saved at all — the editor sent the section in the wrong shape and the save was rejected every time. Nothing was lost, the values simply never got written. Open the panel again and save, and they will stick.
- Fixed: saving a section to the library left the page still using its own private copy. The follow-up step that turns the section on the page into a reference to the new library item was rejected by the same bug, silently. The library item was created, but the page never linked to it — so later edits to the library item did not reach that page. Re-run "Save to Library" on any section where this happened, or insert it from the library.
- Fixed: hardcoded icons using
data-icon-styleemitted an invalidstyleattribute. An icon written asdata-icon-style="fill"rendered asstyle="fill"in the page HTML. The icon itself still looked right, so nothing appeared broken, but the markup was invalid on every icon that used it.
0.24.5
- Fixed: the "One command (recommended)" box on the Claude Code tab was always empty. The command was being built correctly on the server but never sent to the page, so the box came up blank and "Copy to Clipboard" copied nothing — leaving the recommended setup path as the only one that could not be followed. The other two tabs (Full config / Add to existing config) were unaffected. Generate a token again and the command will be there.
0.24.4
- Fixed: the Design Pages logo sprawling across the WordPress admin menu. The menu icon was drawn at its full size instead of icon size, so on every admin screen it spilled out of its slot and sat behind the menu items below it.
- New: a proper Design Pages menu icon. The menu now uses its own crisp line-art mark instead of a shrunken copy of the full-colour logo, so it stays sharp on high-resolution screens and matches the weight of the icons above and below it. It also picks up your admin colour scheme and lights up on hover and when the section is open, exactly like WordPress's own menu icons.
0.24.3
- Fixed: the generated MCP config used an address that does not exist on every site. The config always pointed at
/wp-json/…. That address only works when your permalinks are set to something other than "Plain" — on a Plain-permalink site WordPress serves its API fromindex.php?rest_route=…instead, so/wp-json/…is a flat 404 and the connection can never succeed. Claude Desktop reports only "Server disconnected", with the 404 buried in a log file, which makes this very hard to spot: the config looks perfect. The address is now taken from WordPress itself, so it matches whichever form your site actually answers on. This also fixes sites where WordPress is installed in a subdirectory. If your Claude app shows "Server disconnected", re-copy the config — your token is unaffected. - New: the MCP Connection screen now warns when permalinks are set to "Plain", explains why the address looks longer, and warns against "tidying" it into
/wp-json/by hand — the one edit guaranteed to break it. - Two new Troubleshooting entries. A
404in the MCP log now has its own row, including a quick way to tell a site-wide permalink problem from an MCP one (if/feed/and/wp-sitemap.xmlalso 404, no pretty URL on the site works). A401that persists with a freshly generated token is also covered: some servers strip theAuthorizationheader before PHP can read it, which makes every request look anonymous no matter how valid the token is — the row gives the two standard server-side fixes.
0.24.2
- Fixed: embedded pages rendered unstyled. A page's custom CSS and external stylesheet links now travel with it when it is embedded via
or, or rendered in content mode on a host post. Previously they only appeared on the page's own URL, so an embedded page lost all page-level styling. Emitted once per request, so nothing is duplicated. - Fixed: backslashes stripped from shared sections and variants. Saving a shared section or a section variant silently ate backslashes, breaking CSS unicode escapes (
content:"\2192"), escaped class selectors, and regular expressions in section JavaScript. Design Pages were already protected; the library and variant paths now match. - Fixed: the CSS isolation reset overpowering your own CSS. The reset's element rules (links, images, lists, headings, form controls) no longer out-specify hand-written page CSS, so
.my-headshot { height: 100% }works without having to be rewritten as.ppd-section .my-headshot. Most visibly, images no longer collapse and link underlines and list spacing survive. The section wrapper itself keeps its full-strength theme shield. - Fixed: targeted CSS fixes clobbering mobile styles. A new rule added via
css_overridesis now placed ahead of the section's responsive blocks instead of after them, so breakpoint styles still apply at their breakpoints. - Section box-sizing is now consistent in embeds. Border-box sizing ships with the sections themselves rather than only on the Design Page template.
- Clearer AI tool responses. Cache clearing now explains a zero result and warns that page caches and CDNs must be purged separately; page previews warn when auto-paragraph formatting is an artifact of the preview rather than the real page; bulk section adds return a compact summary by default instead of echoing the whole page back (pass
verbosefor the full payload); and the AI is told thatpageandpostcan be enabled for PicPilot in settings.
0.24.1
- New NoLeemits AI Design product icon. Added branded icon assets for the WordPress admin, Freemius, and other private product surfaces.
- Updated product metadata. The plugin author is now Stephen Lee and the plugin homepage points to
https://noleemits.com/noleemits-ai-design.
0.24.0
- MCP protocol revision 2025-06-18 is now supported. The server previously implemented only 2025-03-26 and 2024-11-05, so every modern client negotiated down two revisions to talk to it. It now advertises 2025-06-18 and still accepts 2025-03-26 and 2024-11-05, picking the newest revision each client understands — a client asking for 2025-11-25 settles on 2025-06-18, and older clients are unaffected. Two conformance fixes came with it: JSON-RPC batching (removed from the spec in 2025-06-18) is rejected for clients on that revision but still honoured for clients on older ones, and a
GETto the MCP endpoint now returns405 Method Not Allowedas the spec requires instead of WordPress's404, which some clients read as a wrong endpoint and retry against the legacy transport. - New: connect Claude Code with a single command. The MCP Connection screen now offers a ready-made
claude mcp addcommand as the first option for Claude Code / VS Code. The CLI writes the entry into.mcp.jsonitself, so there is no file to locate, no braces to balance, and no way to land the entry outsidemcpServers— the mistake that produces no error message and a server that simply never appears. The two JSON snippets are still there for anyone who prefers to edit the file directly. - Tested up to WordPress 7.0.
- Fix: the generated Claude Code / VS Code config now loads. The snippet declared
"type": "url", which is not a valid MCP server type — Claude Code accepts onlystdio,sseandhttp. The entry was rejected at config-load time with a warning that never appears in the UI, so the server silently never showed up and no amount of restarting helped. The snippet now correctly declares"type": "http". If you set up Claude Code or VS Code before this version, re-copy the config (or just change"url"to"http"on that line) — your token is unaffected. - Fix: the generated token and config no longer vanish while you are setting up. The MCP Connection screen reloaded itself 60 seconds after you generated a token. Because the plaintext token exists only in that one response and is stored hashed, the reload wiped the token and blanked every config snippet — so if you were mid-way through pasting into Claude Desktop, your token disappeared and you had to generate a new one. The auto-reload is gone; the token now stays on screen until you navigate away yourself.
- Fix: the generated Claude Desktop config now connects on Windows without hand-editing. The snippet on the MCP Connection screen had two faults that together made Claude Desktop fail to connect. It launched the bridge as a bare
mcp-remote, which Claude Desktop cannot spawn on Windows (it starts processes without a shell, so the realmcp-remote.cmdis never resolved — you gotspawn mcp-remote ENOENT). It also inlined the token asAuthorization: Bearer <token>; that space inside a single argument gets mangled by Windows argument handling and arrives as a failed login. Both configs now launch vianpx -y mcp-remoteand pass the token through anenvblock as${PPD_AUTH_HEADER}, which is space-free and works on every platform. If you set up Claude Desktop before this version, re-copy the config — your token is still valid and does not need regenerating. Copy the whole entry,envblock included: it holds the token the${PPD_AUTH_HEADER}reference stands in for, and dropping it sends an empty login. Troubleshooting now lists that case too. - Setup instructions corrected. The old "Verify" step told you to run
mcp-remote --helpand expect usage output. That command always fails withInvalid URL, because mcp-remote treats its first argument as the server URL — so a working install looked broken. Verification is nownode --version, and the globalnpm install -g mcp-remoteis correctly described as optional (npx fetches it on demand). - Clearer warning about where the config goes. Pasting the entry outside the
mcpServersobject leaves the file as valid JSON, so Claude Desktop shows no error and the server simply never appears — the easiest mistake to make and the hardest to spot. The "Add to existing config" snippet now flags this directly, and it is listed first in Troubleshooting along with the reminder to fully quit Claude Desktop from the tray rather than just closing the window.
0.23.4
- Fix: admin JS now logs a clear console warning when
ppd_adminconfig is missing. When a caching or JS-optimization plugin (FlyingPress, WP Rocket, etc.) strips the inline script generated bywp_localize_script, the editor-mode switch and the comments sidebar would silently do nothing. Both scripts now emit aconsole.warnthat names the cause and the fix (excludeppd-adminfrom JS optimization).
0.23.2
- Fix: Content mode on WooCommerce single products now works on all themes. The 0.23.0 content/hybrid mode relied on WooCommerce's classic product template, so on themes that render the product body their own way (X/Pro, Divi, and most page-builder themes) the PPD sections never appeared — you got the theme header/footer but an empty/native product body. Content mode now renders a hybrid template (theme header/footer + your PPD sections as the body) that works regardless of how the theme builds its product pages. Full mode is unchanged.
0.23.1
- Fix: critical error when rendering some pages/products. Pages or products whose sections were stored with object-shaped data (from certain import or transport paths) could trigger a "critical error" on the front end. The renderer now normalizes section data before rendering, so these pages display correctly instead of crashing. Most visible on WooCommerce single products in Full mode (added in 0.23.0).
0.23.0
- WooCommerce single products now support both render modes. You can design a product page the same way you design a regular page. Choose Full mode to let the plugin own the whole product page (your Design Pages global header and footer included), or Content mode to keep your theme's header and footer and replace just the product body with your PPD sections. Previously WooCommerce always took over single-product pages, so neither the global header/footer (Full mode) nor theme-wrapped section content (Content mode) appeared — because WooCommerce builds product pages from its own hooks instead of the normal content area. To use it, add Products to the allowed post types in Settings, enable a product, and pick its render mode. (Shop and product-category archives are unchanged for now.)
0.22.0
- Grant Design Page access to other roles. A new Settings → Access tab lets administrators choose exactly which user roles can create, edit, and delete Design Pages — for example, giving Editors (or any custom role) full access. The permission is independent of regular post/page editing: a granted role gets Design Page management and nothing more. It applies everywhere — the admin UI, the REST API, and MCP connections — so chat- and dashboard-driven editing respect the same rule. Administrators always retain access; the Settings and JS/CSS Libraries pages stay administrator-only. Existing sites keep working: Administrators and Editors are granted access automatically on update.
- Self-service MCP connection for granted roles. Anyone allowed to manage Design Pages now gets a Design Pages → MCP Connection page where they can generate and copy their own Claude Desktop / Claude Code connection token — no administrator hand-off required. Non-admins see and revoke only their own tokens; administrators still manage every token from Settings → MCP Connection.
0.21.1
- New "low editability" warning when creating or editing pages. When the AI saves a section that's mostly hardcoded text with few or no editable content fields, the plugin now warns that basic-view (Content mode) users won't be able to edit it — nudging the AI to extract the copy into editable fields instead of baking it into the HTML. This makes generated pages friendlier for non-technical editors, not just power users.
- The section editor now shows a short notice on any section that has no editable content fields, explaining that its content is hardcoded and pointing to the Code Editor.
0.21.0
- Front-end review mode. Logged-in editors now get a single 💬 Comments menu in the admin bar that groups all comment tools together — View all comments (the central dashboard, with the site-wide open count) and Enable review mode on this page. Turn review mode on and a banner confirms it's active; click any section to leave feedback pinned right to it — questions, assumptions, notes, or warnings. Each section with feedback shows a numbered marker; click it to read the thread and resolve or delete comments in place. Everything flows into the Design Pages → Comments dashboard, so review and triage stay in one place. Comments whose section was later deleted collect in an "orphaned" tray instead of disappearing. Not visible to public visitors — the overlay loads only for users who can edit, only while review mode is on.
0.20.3
- Section Library previews are now high-fidelity. Sections that rely on page-level CSS (custom properties like
--brand-*and shared utility classes like.btn) previously previewed unstyled — buttons rendered as plain links, brand colors disappeared. Saving a section to the library now snapshots the source page's CSS with it, so previews (and the section itself) keep their styling. Existing library items were backfilled. - Page previews now include the page's own custom CSS (
_ppd_page_css), which the preview iframe was not emitting.
0.20.2
- Fixed the section & global-section preview screens: the "Live Preview Mode" banner no longer overlaps a sticky/fixed navigation, and wide headers (e.g. a nav with a right-aligned "Book a call" button) are no longer clipped. Previews now render inside a sandboxed iframe, so they match the real front end.
0.20.1
calc(),clamp(),min(),max(), andvar()now survive CSS minification — spacing around+/-inside these functions is preserved, socalc(100% + 20px)no longer breaks.- Page CSS save now shows a one-time admin notice when
--ppd-*variable overrides are stripped, pointing to Settings → Design Tokens. - New per-page Sticky nav offset setting — adds
scroll-margin-topso in-page anchor links clear a fixed header (0 / empty = off). - REST
POST /pagesacceptsuse_global_header/use_global_footerso a page can be created with globals disabled in one request. - Page imports honor an optional
page.statusfield (draft,publish,private); publishing requires thepublish_pagescapability. - Blocked direct writes to PPD page meta are no longer silent — with
WP_DEBUGon they log toerror_log, and the newppd_meta_write_blockedaction lets integrations hook them. - New WP-CLI command:
wp ppd page create --file=page.json.
0.20.0
- Documentation URL system — canonical docs URLs surfaced via
PPD_Docshelper, wired into MCP responses (start_project,get_best_practices), admin settings header, onboarding wizard, and plugin action links. Base URL filterable viappd_docs_base_urlfor self-hosted deployments. readme.txtfor WordPress.org submission.
0.19.1
- Strip
--ppd-*token overrides frompage_csson save and render (token hygiene). - REST API:
create_page/update_pagenow acceptrender_modeandpage_template.
0.18.3
- Preserve backslashes in
section_js,page_css,page_jsacross all 34 meta write sites.
0.18.2
- Render PPD globals (design tokens, fonts, page CSS/JS) correctly on converted pages.
0.18.1
- Accept PPD-enabled regular pages in
get_homepage/set_homepage.
0.18.0
- Archive template support — assign Design Pages to category, tag, taxonomy, search, date, and CPT archives. 14 new placeholders (
{{archive_*}},{{term_*}},{{post_type_archive_*}},{{search_query}},{{paged_*}}).
0.17.0
- MCP fixes —
generate_imagepropagates PixelVault error details,check_healthHTML-decodes site name,find_imagesalways returns metadata.
0.16.0
- Proper
/shop/archive integration viatemplate_include(priority 1000). WooCommercepre_get_posts, Yoast/Rank Mathwp_head, and pagination all intact.
0.15.0
- WooCommerce shop page + URL filters + loop helpers.
{{main_query}}block, seven{{loop_wc_*}}placeholders, price/category/sort filters.
0.14.0
- Section-level optimistic concurrency via
if_versionparameter. Prevents silent overwrites between human and AI edits.
0.13.0
- Real-actor attribution on every revision — actor, client name/version, user agent, IP address. Revisions UI shows "Who" column.
0.12.0
- MCP writes honor WordPress post locks. 409
post_lockedresponse withforce=trueoverride.
0.11.0
- Comments / feedback system. Per-page sidebar, per-section badges, per-field inline buttons, central dashboard with admin bar indicator.
0.10.0
- Content Mode — friendly editor for non-technical users with labelled inputs (text, WYSIWYG, image, icon, color, select).
0.9.0
content_fields_schemafoundation — declare type / label / description per field.