All notable changes to this project will be documented in this file, per the Keep a Changelog standard, and will adhere to Semantic Versioning.
Unreleased - TBD
1.5.0 - 2026-10-29
- New Experiment: Content Verification, that adds read-only detection of C2PA Content Credentials in uploaded JPEG/PNG/WebP images (#459).
- New Experiment: Text to Speech, that allows you to generate audio for a specific post and then render audio controls on the frontend (#888).
- New Experiment: MCP Access, that installs and activates the MCP Adapter plugin from WordPress.org when enabled, and adds a
Tools → MCP Accessscreen to control which abilities are exposed to AI agents over MCP (#992). - New Experiment: WebMCP, that lets an agent browser work in the block editor through
document.modelContext, with tools that set the title, insert and edit blocks, save and publish, with every change visible on the page as it happens (#1081). - New Experiment: Revision Change Summary, that summarizes what changed between two revisions of a post on the visual and classic revisions screens (#1159).
- New Experiment: Block Container Label Generation, that generates concise block container labels in List View and the block Rename modal (#1175, (#1218).
- A post's Markdown document (
?output_format=markdown) has approved comments appended (#1121). - New background sync processing to handle generating embeddings for posts and terms (#1135).
- "Generate title" button in the post Rename modal (#1140).
- Learn WordPress AI course links to the plugin readmes and the AI settings header for easier access to course resources (#1154).
- A neutral badge icon to thumbnails of images with C2PA data detected in the Media Library grid view (#1164).
- An
ai.abilitiesExplorer.fieldsJavaScript filter for adding read-only table columns to the Abilities Explorer page (#1181). - Clarified which parts of the plugin are stable Features vs Experiments, flag Experiments that run automatically in
Settings > AI, and show when each runs, what it sends to your AI provider, and how many requests it makes from an info icon, the readme, and docs (#1190). - Featured Connector plugins (Mistral and Vercel AI Gateway) on
Settings > Connectors, sorted by name, plus awpai_featured_connectorsfilter to change the list (#1212).
- Update the wording in our capability check notice and change that from an error to a warning (#935).
- Content Translation now translates any block that has rich text instead of just paragraphs and headings (#1009).
- Move the Key Encryption experiment onto the new Secrets API feature plugin with backward-compatible fallback and migration (#1107).
- The
/<post>/feed/markdown/no longer works and serves a 404 (#1121). - The
core/content-query,core/settings-get, andcore/users-queryabilities now set thepublicmeta flag added in WordPress 7.1 (#1122). - Summarize enabled and disabled experiments in the AI Status dashboard widget to keep it compact as more experiments are added (#1155).
- Rebuilt the Abilities Explorer on DataViews and added three
ai/v1REST routes to retrieve and run abilities (#1181). - Replace the "Purge All Logs" button in the AI Request Logs screen with a control to delete logs older than 30 days, 90 days or 1 year, or all logs, and add a
before_daysargument toDELETE /ai/v1/logs(#1182). - The
core/settings-getability now matches WordPress core. Settings use their REST API names (for example,titleinstead ofblogname), and a value that does not match its schema is left out. Breaking changes: Some schema fields have changed so ensure you are using the correct field names in your ability calls; thecore/read-settingsalias was also removed (#1206). - The
core/users-queryability now matches WordPress core. The input is nowwhere,fields, andpagination, and the output is alwaysitemsandpagination. Users are looked up through theids,slugs, orusernameslists inwhere, and lookup by email is no longer supported. Results are ordered by username, a filter that cannot be used is rejected, and a page after the last one returns an error. Breaking changes: Some schema fields have changed so ensure you are using the correct field names in your ability calls; thecore/read-usersalias was also removed (#1207). - The
core/content-queryability now matches WordPress core. The input is nowwhere,fields, andpagination, and the output is alwaysitemsandpagination. Posts are looked up through theidsorslugslists inwhere, which also requires the post type intype. Posts are filtered by author throughwhere.author, with the authoridorslug. Fields are nested, such astitle.rendered. A filter that cannot be used is rejected, and a page after the last one returns an error. The author name and slug are only returned to users who may see the author. Only ashow_in_abilitiesvalue oftrueexposes a post type. Breaking changes: Some schema fields have changed so ensure you are using the correct field names in your ability calls; thecore/read-contentalias was also removed (#1208). - The
dateandmodifiedfields ofcore/content-queryreturnsiteandgmtdates instead oflocalandgmt. Breaking change: Ensure you are using the correct field names in your ability calls (#1235). - The
registered_datefield ofcore/users-queryis replaced by aregisteredobject withsiteandgmtdates. Note that all 3 core abilities have now identical shape like these shipping in WordPress 7.2. Breaking change: Ensure you are using the correct field names in your ability calls (#1237).
- The deprecated
core/read-settingsability alias. Usecore/settings-getwith REST API field names (for example,titleinstead ofblogname). The alias could not keep the old field names or response shape after the sync with WordPress core (#1206). - The deprecated
core/read-usersability alias. Usecore/users-querywith the newwhere,fields, andpaginationinput. The alias could not keep the old input and response shape after the sync with WordPress core (#1207). - The deprecated
core/read-contentability alias. Usecore/content-querywith the newwhere,fields, andpaginationinput. The alias could not keep the old input and response shape after the sync with WordPress core (#1208).
- AI Request Logging now captures successful generations from providers that use a custom transport, not only those routed through the SDK HTTP transporter (#757).
- Display a clear, context-aware error notice during Ability execution when the configured AI connector is pending approval (#759).
- Remove the text generation capability check from the alt text generation WP-CLI command (#935).
- Feature toggles are loaded with one database query instead of one per feature on sites without a persistent object cache (#1113).
- Content Translation: Translate the blocks inside Post Content when "Show template" is enabled (#1116).
- On multisite, network deactivation restores API keys on every site, and uninstall no longer deletes keys that were still encrypted (#1118).
- The Markdown Feeds and Key Encryption flags are loaded together with the feature toggles instead of with one query each on every request (#1119).
- The site-wide comment markdown feed lists comments instead of the post list (#1121).
- Feed requests are no longer served the post's Markdown by Accept negotiation or
?output_format=markdown(#1121). - Accept-header negotiation now follows the header's quality values and order, so a request that prefers HTML gets HTML and one that prefers Markdown gets Markdown (#1125).
- Ensure canceling meta description generation stops the loading state. Note the actual request won't be cancelled but the result from that will be discarded (#1128).
- Show an error when a Note fails to save, in place of a "suggestions added" message, and keep reviewing the other blocks when one fails (#1131).
- Skip blocks that are removed, replaced or edited mid-translation (#1137).
- Ensure all strings can be translated in the Abilities Explorer pages (#1146).
- Ensure all strings can be translated in the Content Classification experiment (#1147).
- A comment reply suggestion is no longer inserted into the reply form of a different comment (#1158).
- Match existing terms whose names contain "&" or non-ASCII letters, and add them from suggestions (#1168).
- A non-string term or parent in the AI response no longer fails the whole request when running content classification (#1171).
- Add missing title attribute to singular alternate Markdown discovery link (#1177).
- Show “Regenerate Reply” after a reply suggestion has been generated (#1179).
- Checkbox icon color on the AI settings page (#1183).
- Ensure success and error notices show on the AI Request Logs screen (#1184).
- Key Encryption no longer causes a fatal error when stored API keys can't be decrypted (#1186).
- Suggest Reply no longer sends the title or excerpt of private or password-protected posts to the AI provider (#1192).
- Comment Moderation no longer automatically analyzes pingbacks, trackbacks or block editor notes (#1192).
- Uninstalling the plugin now removes Comment Moderation analysis data (#1192).
- Omit Author meta line in Markdown feeds when a post has no assigned author (#1210).
- Preserve line-level diff granularity for multi-line blocks like tables and quotes in Revision Change Summary (#1216).
- Markdown Feeds now apply the core
the_content_feedandthe_excerpt_rssfilters, matching RSS and Atom feed output (#1224). - Ensure the "Serve Markdown via the Accept header" setting can now be saved (#1229).
- The Guidelines prompt no longer contains the HTML entity
'(#1230). - The permission error for a post now mentions image prompts instead of excerpts when running image prompt generation (#1234).
- Resolved GHSA-7mwf-4ppp-cxmp (GHSA-7mwf-4ppp-cxmp).
- Resolved GHSA-g94j-h78j-rr2j (GHSA-g94j-h78j-rr2j).
- Sync the
core/content-queryability with the fixes from its core review (#1123). - Added unit and integration test coverage for Connector Approval
Admin_Pageand extendedAdmin_Noticetests (#1134). - Fixed PHPUnit test failures in
Show_In_AbilitiesTeston WordPress trunk (#1165). - Fixed PHPUnit test failures in
Image_GenerationTeston WordPress trunk (#1172). - Added a post-release step to update the AI plugin handbook page (#1189).
- Fix PHPUnit tests failing when WordPress core natively declares
show_in_abilities(#1204). - Bump
actions/setup-nodefrom 7.0.0 to 7.1.0 (#1198). - Bump
actions/upload-artifactfrom 7.0.1 to 7.0.2 (#1198). - Bump
compressionfrom 1.8.1 to 1.8.2 (#1152). - Bump
concurrentlyfrom 10.0.5 to 10.0.6 (#1151). - Bump
launch-editorfrom 2.14.1 to 2.14.2 (#1225). - Bump
markdown-itfrom 14.3.2 to 14.3.3 (#1226). - Bump
momentfrom 2.30.1 to 2.31.0 (#1114). - Bump
phpstan/phpstanfrom 2.2.15 to 2.3.1 (#1141). - Bump
phpstan/phpstan-phpunitfrom 2.0.18 to 2.1.1 (#1141, #1197). - Bump
@playwright/testfrom 1.63.0 to 1.64.1 (#1199, #1217). - Bump
proxy-addrfrom 2.0.7 to 2.0.8 (#1149). - Bump
serovalfrom 1.5.5 to 1.6.9 (#1148). - Bump
shell-quotefrom 1.9.0 to 1.12.0 (#1151). - Bump
shivammathur/setup-phpfrom 2.37.2 to 2.40.0 (#1198). - Bump
source-map-jsfrom 1.2.1 to 1.2.2 (#1150). - Bump
@wordpress/admin-uifrom 2.10.0 to 2.12.0 (#1142, #1205). - Bump
@wordpress/block-libraryfrom 9.48.1 to 11.2.0 (#1143, #1201, #1205). - Bump
@wordpress/buildfrom 0.24.0 to 0.25.0 (#1199). - Bump
@wordpress/e2e-test-utils-playwrightfrom 1.54.0 to 2.1.0 (#1202, #1217). - Bump
@wordpress/prettier-configfrom 4.56.0 to 4.57.0 (#1199). - Bump
@wordpress/scriptsfrom 36.0.0 to 36.1.0 (#1199). - Bump
@wordpress/uifrom 0.22.0 to 0.24.0 (#1142, #1205).
1.4.0 - 2026-10-05
- When comment moderation is run, calculate a value score, providing a relevance signal (0–1) for each comment based on how substantive and on-topic it is relative to the post it was left on. Show this score in a new column on the comment screen (#681).
- New experiment, Markdown Feeds, that creates markdown feeds at
/feed/markdown/(available in every feed context) and of individual posts and pages via?output_format=markdown(#855). - User-triggered retry for Content Translation if it fails (#941).
- Limit comment moderation bulk analysis queue size (#972).
- Storage and CRUD layer for embedding vectors (new
wpai_embeddingstable) that can be used to recording the provider and model alongside every vector (#976). - 9 new default target languages to the Content Translation experiment (#986).
- Guideline categories support to the Content Translation Ability (#987).
- New
Vector_MathandVector_Rankerclasses, allowing users to run similarity and ranking queries against vectors (#993). - Loading indicator for type-ahead suggestion requests (#1029).
- Integrate Alt Text Generation with the Image block’s decorative setting (#1031).
- Bump minimum supported WordPress version to 7.0.3 (#1001).
- Display specific taxonomy labels in Content Classification notice error messages instead of generic terminology (#916).
- Show a notice and disable title translation when the post title is too short (#967).
- Update to the latest version of the embedding code from the PHP AI Client (#975).
- Our
generate_embeddingshelper function now requires a specific embedding model. Passmodel(a model ID or aModelInterfaceinstance) and, for a model ID, theproviderthat offers it. This is a breaking change for anyone that happened to start using this function (#975). - Update Settings vertical ellipsis icon to tool icon (#1001).
- The
core/read-contentandcore/read-usersabilities are renamed tocore/content-queryandcore/users-query. The old names keep working as deprecated aliases for now (#1002). - Use
gpt-image-2.5-flareas our default OpenAI image generation model (#1023). - The
core/read-settingsability has been renamed tocore/settings-get. The old name keeps working as a deprecated alias for now (#1087).
- The
ai/get-post-detailsability. Use the single-post mode ofcore/content-queryinstead (#1002).
- Unnecessary URL validation that is now handled by WordPress core (#1011).
- The
Enable AIheader toggle from the AI settings page (#985).
- Ensure focus moves to the Accept button when content generation completes in the Content Resizing modal (#917).
- Increase the default request timeout from 5 seconds to 30 seconds when Core revalidates API keys. If this validation request times out, Core will delete the API key so this is an attempt to fix that (#947).
- Cached the active SEO plugin detection - with a TTL and immediate invalidation on any plugin activation/deactivation - so meta description meta-key lookups no longer re-scan active plugins on every request (#973).
- Improves the Content Translation loading animation to preserve existing text and background colors (#977).
- Settings page failing to render on Gutenberg 23.9+ after
@wordpress/dataviewswas removed from the private-apis allowlist (#989). - Ensure our guidelines integration reads published guideline rows from the
wp_knowledgepost type instead of the removedwp_guidelineso those work with the latest version of Gutenberg. We don't migrate data from the old post type and taxonomy to the new so anyone that had previously set guidelines in an older version of Gutenberg will need to re-add those (#988). - Import core's prefixed PSR
EventDispatcherin the vendoredEmbeddingBuilder(#1005). - Reserve space for type-ahead text generation when caret is at the end (#1008).
- Updated the settings page container
min-heightso that it spans the full viewport height (#1013). - Fix focus style on collapsible card by updating the
@wordpress/dataviewspackage to latest version (#1035). - AI Request Logs now records HTTP error responses (4xx/5xx) from providers as
errorwith the status code and message, instead ofsuccess; Gemini text generation requests are no longer mislabeled asMetadata(#1040). - Hide the "Suggest Reply" button when the inline comment form is in Quick Edit mode (#1049).
- Editorial Notes only reviewing template blocks when "Show template" mode is enabled in the block editor (#1053).
- Insert the generated summary into the post content when Show template is enabled (#1055).
- Aligned the focus styles of Content Classification suggestion pills with the core Button component (#1060).
- Connector Approvals no longer blocks core's connector key check by attributing it to the provider plugin or to Gutenberg (#1070).
- Abilities Explorer no longer crashes when an ability's input property lists several types (#1073).
- Preserve HTML entities and text between shortcodes when normalizing content, while still encoding entity-encoded tags (#1077).
- Prevent
options.phpvalidation error when saving general settings with abilities active (#1080). - Ensure post titles, the site tagline and excerpts no longer contain HTML entities in the markdown feeds (#1086).
- Ensure markdown feeds don't 404 when the rewrite rules were rebuilt without the feed in place (#1110).
- Ensure we check for the
moderate_commentscapability before we allow bulk comment moderation and then check for theedit_commentcapability for each individual comment that is being moderated (GHSA-pjw7-q94g-4q34). - Harden the Playground preview publishing workflow to derive pull request and commit metadata from the triggering workflow run (#978).
- Harden JSON data parsing on admin screen (#991).
- Credits updates (#959).
- Update plugin screenshots (#960).
- Update documentation (#969, #990, #1057, #1078, #1082, #1088).
- Add multisite PHPUnit coverage to CI (#974).
- Stop measuring vendored SDK code as this plugin's test coverage (#1007).
- Added unit test coverage for
Admin\Deactivation,Admin\Upgrades\Abstract_Upgrade,Logging\AI_Request_Log_Page,Logging\AI_Request_Log_Schema, andLogging\Logging_Integration(#1022, #1033, #1038, #1051, #1056). - Update the Playground artifact helper to v4 (#1043).
- Updated minimum Node.js version to 24.18 and npm to 11.16, matching WordPress Core and Gutenberg (#1067).
- Shard the E2E suite across three CI jobs and cache
node_modules(#1076). - Bump
brace-expansionfrom 2.1.2 to 2.1.7,brace-expansionfrom 1.1.16 to 1.1.21,brace-expansionfrom 5.0.9 to 5.0.12,brace-expansionfrom 2.1.4 to 2.1.7 andbrace-expansionfrom 5.0.7 to 5.0.12 (#1097). - Bump
codecov/codecov-actionfrom 7.0.0 to 7.1.1 (#1039). - Bump
colordfrom 2.9.3 to 2.10.0 (#1093). - Bump
concurrentlyfrom 10.0.4 to 10.0.5 (#983). - Bump
fast-urifrom 3.1.5 to 3.1.8 (#1091). - Bump
filenamifyfrom 7.0.2 to 7.0.3 (#1020). - Bump
ip-addressfrom 10.5.0 to 10.7.2 (#1094). - Bump
js-yamlfrom 4.3.0 to 4.3.2 andjs-yamlfrom 3.15.0 to 3.15.2 (#1090). - Bump
markdown-itfrom 12.3.2 to 14.3.2 (#1096). - Bump
phpstan/php-8-stubsfrom 0.4.36 to 0.4.43 (#1044, #1059, #1101). - Bump
phpstan/phpstanfrom 2.2.9 to 2.2.15 (#1018, #1059, #1101). - Bump
@playwright/testfrom 1.62.1 to 1.63.0 (#1045). - Bump
softprops/action-gh-releasefrom 3.0.2 to 3.0.3 (#1019). - Bump
svgofrom 3.3.4 to 3.3.5 (#1089). - Bump
szepeviktor/phpstan-wordpressfrom 2.0.3 to 2.0.4 (#982). - Bump
WordPress/action-wp-playground-pr-previewfrom 3.0.0 to 4.0.0 (#1039). - Bump
@wordpress/admin-uifrom 2.7.0 to 2.10.0 (#966, #998, #1046). - Bump
@wordpress/buildfrom 0.20.0 to 0.24.0 (#965, #997, #1045, #1102). - Bump
@wordpress/datafrom 10.44.0 to 10.55.0 (#1035). - Bump
@wordpress/dataviewsfrom 14.1.0 to 19.0.0 (#1035). - Bump
@wordpress/e2e-test-utils-playwrightfrom 1.52.0 to 1.54.0 (#965, #997). - Bump
@wordpress/envfrom 11.10.0 to 11.15.0 (#1020). - Bump
wordpress/plugin-check-actionfrom 1.1.7 to 1.1.9 (#964). - Bump
@wordpress/prettier-configfrom 4.52.0 to 4.56.0 (#965, #997, #1045, #1102). - Bump
@wordpress/scriptsfrom 33.0.0 to 36.0.0 (#999, #1020, #1096). - Bump
@wordpress/uifrom 0.19.0 to 0.22.0 (#966, #998, #1046). - Bump
wp-phpunit/wp-phpunitfrom 7.0.2 to 7.1.1 (#963, #982, #1044).
1.3.0 - 2026-08-18
- New Experiment: Content Translation; translates Paragraph and Heading blocks—and optionally the post title—into a selected language directly from the post editor (#747).
- New Experiment: Slug Generation; suggest SEO-friendly permalinks that can be set as the slug (#897, #932).
- New Experiment: Custom Abilities. Gates the plugin's custom WordPress Abilities (
ai/get-post-details,ai/get-post-terms,core/read-settings,core/read-users,core/read-content) behind a single opt-in toggle, so enabling it exposes all of them at once via the Abilities API. Note for anyone that is using these Abilities, you'll need to enable this new experiment first for those to be available (#881). - New Developer Tool: Import/Export functionality for non-sensitive AI settings (#734).
- Cleanup plugin data when the plugin is deleted (#692).
- AI-specific Site Health integration and status tests (#734).
- New filters,
wpai_content_classification_available_terms,wpai_content_classification_min_confidenceandwpai_content_classification_candidate_pool_size, to allow more control over Content Classification (#633). - Prompt template extension points, making it easy for others to filter prompts and prompt builders (#770).
- Brought the embedding code over from the PHP AI Client and load that conditionally so those using the AI plugin can start to take advantage of embedding generation (#892, #946).
- Public
WordPress\AI\log_ai_request()API so MCP servers and ability consumers can record requests in the AI Request Log (#914).
- Updated all meta keys to use the
wpai_prefix instead of justai_. Note this changes the prefix on theai_generated,ai_generated_summaryandai_notemeta so if you are directly using those, update to using thewpai_names (#867). - Updated preferred models to more recent ones for the three default providers (#913).
- Bump WordPress tested-up-to version 7.1 (#934).
- Improve the relevance of category and tag suggestions produced by the Content Classification experiment (#633).
- Editorial Updates now links to the visual revisions screen when reviewing refined content, falling back to the classic revisions screen when visual revisions are unavailable (#861).
- Reordered setting experiments list; grouped linked experiments and sorted editor experiments alphabetically (#871).
- Improved keyboard focus handling when generating, accepting, or dismissing classification suggestions (#873).
- The Abilities Explorer provider filter dropdown now includes custom providers, and the overview statistics count abilities by origin so custom-provider abilities remain in their Core/Plugins/Theme bucket (#884).
- Set focus to the generated title textarea when generating a title (#901).
- The
core/read-usersability now returns collections ordered by display name, A to Z (#948).
- The
AI_Serviceclass and theget_ai_service()helper introduced in 0.2.1 will be removed in the next major release. Neither is used anywhere in the plugin; experiments and abilities callwp_ai_client_prompt()directly (#905). - Filter
wpai_meta_description_result_temperatureis no longer being used and will be removed in the next release (#913).
- No longer set custom temperature values on any of our requests (#913).
- The AI Request Log REST endpoint now registers its
operationfilter parameter, so it appears in the REST schema and a non-string value returns a 400 instead of causing a fatal error (#758). - Inline reply textarea not receiving focus after generating a suggested reply (#877).
- Meta Description suggestions applied on pages and custom post types were lost on save when Yoast SEO was active (#886).
- Improved accessibility and keyboard usability for the request logs provider/model details (#889).
- Improved keyboard and focus handling for the Suggest Reply tone dropdown (#907).
- Synchronized generating state across the inline and modal excerpt generation buttons (#908).
- Ensure caller detection in the encryption experiment properly matches the calling plugin, not the host plugin (#909).
- Synchronized loading state between the sidebar and block toolbar regenerate summary buttons (#912).
- Preserve inline HTML when resizing content (#915).
- Bulk actions no longer re-run when sorting or paginating the list after the action completes (#928).
- Apply editorial updates to blocks that store editable text in the
valueattribute (#930).
- Ensure any content we render from the LLM or content we send to the LLM is properly sanitized (#950).
- Add proper nonce check prior to bulk alt text and summarization generation (GHSA-hfp9-55vw-ccjc).
- When passing a custom image URL to the Alt Text Generation Ability, ensure that URL is public, that it points to an allowed image type and that the final URL we download matches the initial one we verify (GHSA-v2wx-9j88-4rqq).
- New filter,
wpai_bulk_action_max_items, allowing you to control how many items are processed in a single bulk action (GHSA-hfp9-55vw-ccjc). - New filters,
wpai_alt_text_allowed_image_mime_types,wpai_alt_text_image_download_timeoutandwpai_alt_text_image_max_download_bytes, that allow more fine-grained control when a custom image URL is passed to the Alt Text Generation Ability (GHSA-v2wx-9j88-4rqq). - Removed unnecessary
anycasts to improve TypeScript type safety (#878). - Update plugin screenshots (#882).
- Documented the Key Encryption threat model: what encrypting API keys at rest does and does not protect against, and why the caller-supplied
plugincontext is a namespace-collision guard rather than an isolation boundary between plugins (#909). - The
secrets_accessedandsecrets_{$operation}actions now receive a backtrace-deriveddetected_pluginalongside the caller-assertedpluginvalue, so audit consumers can attribute operations and flag a mismatch (#909). - Ensure our IPv4-in-IPv6 address check works for PHP <8.3 (#952).
- Bump
actions/checkoutfrom 7.0.0 to 7.0.1 (#894). - Bump
actions/setup-nodefrom 6.4.0 to 7.0.0 (#894). - Bump
automattic/vipwpcsfrom 3.0.1 to 3.1.0 (#919). - Bump
concurrentlyfrom 10.0.3 to 10.0.4 (#902). - Bump
fast-urifrom 3.1.3 to 3.1.5 (#904, #927). - Bump
fast-xml-parserfrom 5.10.0 to 5.10.1 (#903). - Bump
ip-addressfrom 10.2.0 to 10.5.0 (#925). - Bump
phpstan/phpstanfrom 2.2.5 to 2.2.8 (#910, #936). - Bump
phpstan/phpstan-deprecation-rulesfrom 2.0.4 to 2.0.5 (#910). - Bump
phpstan/phpstan-phpunitfrom 2.0.17 to 2.0.18 (#879). - Bump
@playwright/testfrom 1.61.1 to 1.62.1 (#920). - Bump
postcssfrom 8.5.19 to 8.5.26 (#926). - Bump
shell-quotefrom 1.8.4 to 1.9.0 (#902). - Bump
softprops/action-gh-releasefrom 3.0.1 to 3.0.2 (#894). - Bump
@wordpress/admin-uifrom 2.4.0 to 2.7.0 (#880, #896, #921). - Bump
@wordpress/buildfrom 0.18.0 to 0.20.0 (#895, #920). - Bump
@wordpress/e2e-test-utils-playwrightfrom 1.50.0 to 1.52.0 (#895, #920). - Bump
@wordpress/prettier-configfrom 4.50.0 to 4.52.0 (#895, #920). - Bump
@wordpress/scriptsfrom 32.6.0 to 33.0.0 (#939). - Bump
@wordpress/uifrom 0.15.1 to 0.19.0 (#880, #896, #921). - Bump
wp-coding-standards/wpcsfrom 3.3.0 to 3.4.1 (#893, #899). - Bump
wp-phpunit/wp-phpunitfrom 7.0.0 to 7.0.2 (#879, #893).
1.2.0 - 2026-07-14
- New Experiment: Suggest Reply; gives comment moderators a quick way to generate a reply to a comment through the admin (#724).
- New "Advanced settings" option in Developer Tools to show/hide additional configuration options for features and experiments (#842).
- Bulk "Generate AI Summary" action to the posts and pages list table, enabling summary generation for multiple posts at once (#650).
- New
core/read-contentAbility with secure single-post and query modes (including include and opt-in fields) to enable read-only content access (#739). - New
core/read-usersAbility that retrieves a single user by ID, email, login, or nicename, or a filtered and paginated users collection, with sensitive fields opt-in and permission-gated (#774). - An inline admin notice when Connector Approvals are enabled and no AI connectors are yet approved, prompting admins to approve the AI plugin for use (#830).
- Introduce new
wp_ai_client_default_request_timeoutfilter to make the default request timeout configurable. Use this for the image generation request timeout (#862).
- Content Summary block detection now checks within nested blocks (#810).
- Move all existing configuration options into a new "Advanced settings" section which is hidden by default (#842).
- Focus restoration after AI setting saves (#812).
- Added descriptive alt text to AI Home feature card images for improved screen reader accessibility (#819).
- Prevent Type-Ahead assets from loading on the front end (#820).
- Dismissing a type-ahead suggestion with escape should not trigger a new suggestion request (#840).
- Type-ahead ghost text placement and stale suggestions overlapping empty-block placeholders (#847).
MutationObservercrash when editor iframe body isn't ready when using Title Generation (#849).- Respect an explicit
show_in_abilitiesvalue on curated settings, and leave the flag to WordPress core once core declares it (#852). - Register initial settings before
core/read-settingssnapshots them (#856).
- Increased test timeout from 20m to 30m (#811).
- Updated Excerpt Generation E2E selectors to use Playwright user-facing attributes (#813).
- Fix feature request issue template formatting (#814).
- Update type-ahead E2E selectors to use Playwright user-facing attributes (#817).
- Update Alt Text Generation E2E selectors to use Playwright user-facing attributes (#828).
- Pin NPM package versions and update dev-dependencies (#831).
- Updated and added screenshots/casts (#838).
- Updated Meta Description E2E selectors to use Playwright user-facing attributes (#843).
- Updated Connector Approvals E2E selectors to use Playwright user-facing attributes (#850).
- Register core ability categories once in the bootstrap test file (#854).
- Added docs on becoming a Maintainer (#857).
- Updated Content Classification E2E selectors to use Playwright user-facing attributes (#859).
- Standardize E2E snackbar locators to use
data-test-id(#860). - Bump
actions/cachefrom 5.0.5 to 6.1.0 (#821). - Bump
phpstan/phpstan-phpunitfrom 2.0.16 to 2.0.17 andphpstan/phpstanfrom 2.2.2 to 2.2.5 (#836). - Bump
@wordpress/admin-uifrom 2.0.0 to 2.4.0 and@wordpress/uifrom 0.12.0 to 0.15.1 (#837).
1.1.0 - 2026-06-30
- New Experiment: Type Ahead; automatically suggests ghost text at the end of paragraphs, can be manually triggered within a paragraph (#151, #776).
- New Experiment: Key Encryption; encrypts AI Connector API keys before storing them in the database (#560).
- Ensure all Features that rely on utilizing content are disabled until minimum content thresholds are met (#581).
- New
core/read-settingsAbility (#691, #806). - New
wpai_has_image_generation_supportfilter that allows 3rd parties to claim support for Image Generation, for example if authenticating without an API key (#748). - New setting to choose if guest comments should be moderated or not, defaulting to
yes(#751). - Explicit save button to developer settings panel, requiring a user to click save before the Provider and Model settings are saved (#761).
- Documentation callouts that the plugin has targeted support for the Block Editor only (#766).
- Note prompting the user to save after running Editorial Notes (#682).
- Use
__next40pxDefaultSizefor buttons consistently (#702). - Skip Comment Analysis and Moderation when comment has already been flagged as spam/trash (#743).
- Replace developer mode settings CSS with Stack component (#785).
- Use character-based count instead of word-based to determine when features are available to use (#802).
- Use
Noticecomponent to display warnings within experiment modals (#803). - Added success snackbar when saving or resetting developer settings (#807).
- Add
wordCountTypeto check for user's locale and update to count character or words when detecting minimum content length (#581). - Restrict Content Resizing to REST-exposed post types when a post ID is provided (#658).
- Only show Editorial Updates button when pending Notes are linked to current blocks (#682).
- Hide developer settings on stable Features when AI is disabled (#737).
- Improve readability of Ability Explorer schema output by preventing unicode escaping for non‑ASCII characters (#740).
- The "Last 30 Days" summary period in the AI Requests Logs page now uses a fixed 30-day window so the summary cards and logs table cover the same span (#753).
- Developer Tools popover overlapping the WP admin bar (#756).
- Persistence of suggested terms when running the Content Classification experiment (#769).
- Restored term suggestion pills to their original positions if the backend term assignment API fails, resolving stale state race conditions (#772).
- Preserve omitted
runAbility()input so ability schema defaults can apply when abilities are invoked without input (#775). - Ensure scalar input schemas are allowed in the Abilities Explorer validation (#787).
- Standardize the Title Generation button text (#790).
- Scope the Editorial Note generation loading spinner only to the block currently being reviewed (#794).
- Snackbar notifications no longer overlap the settings content; they are pinned to the bottom-left of the content area (#801).
- Skip push-triggered CI workflows on forks (#722).
- Remove
anytype assertions from notices store dispatches (#725). - Fix link to AI plugin roadmap view on the GitHub Project board (#742).
- Updated Content Summarization E2E selectors to use Playwright user-facing attributes (#762).
- Updated Title Generation and Editorial Notes E2E selectors to use Playwright user-facing attributes (#773).
- Extracts repeated inline Developer Tools menu interactions for E2E tests into reusable utility functions (#786).
- Update Issue templates (#796, #804).
- Playground PR link now redirects users to
/wp-admin/admin.php?page=ai-wp-admin(#797). - Bump
phpstan/phpstanfrom 2.2.1 to 2.2.2 andphpstan/php-8-stubsfrom 0.4.35 to 0.4.36 (#744). - Bumps
shivammathur/setup-phpfrom 2.37.1 to 2.37.2 andcodecov/codecov-actionfrom 6.0.1 to 7.0.0 (#745). - Bump
@wordpress/buildfrom 0.16.0 to 0.16.1 (#754). - Bump
wp-phpunit/wp-phpunitfrom 6.9.4 to 7.0.0 (#779). - Bump
actions/checkoutfrom 6.0.3 to 7.0.0 andsoftprops/action-gh-releasefrom 3.0.0 to 3.0.1 (#780).
1.0.2 - 2026-06-16
- Manual refresh button to the AI Request Logs table header (#687).
- New
ai_generatedparam on our Image Import Ability to set if the imported image was AI generated or not (GHSA-42mg-ffvx-4xff).
- Ensure Editorial Notes and Editorial Updates controls stay grouped together in the post editor sidebar (#605).
- Use explicit UTF-8 encoding for generated Meta Description character counts (#655).
- Return a consistent decorative flag from Alt Text Generation results (#659).
- Show an error message immediately in the Image Generation UI when there's no AI Connector in place that supports image generation (#679).
- Use a neutral icon for disabled Features and Experiments in the AI Status widget (#720).
- Abilities Explorer schema validation (#612).
- Alt Text Generation button becomes unresponsive after using Next/Previous in the media modal (#631).
- Add descriptive accessible labels to approval matrix toggle controls (#637).
- Added accessible labels to the Provider and Category filter dropdowns on the Abilities Explorer page (#642).
- Lost focus after generating a Title (#644).
- Lost focus when generating Alt Text in Image block inspector controls (#645).
- Lost focus when toggling the Connector Approval state (#646).
- Lost focus after generating Images (#647).
- Added an accessible label to the ability test payload textarea in the Abilities Explorer (#649).
- Excerpt generation post context payload (#651).
- Clear out the Meta Description suggestion when the modal closes (#653).
- Lost focus after running Content Resizing actions (#663).
- Column reordering and hiding in the AI Request Logs table now persists instead of resetting to the default (#669).
- Summary statistics showing zero for short time periods on non-UTC MySQL servers (#671).
- UI inconsistency on AI Request Logs page (#676).
- Ensure thinking tokens are counted in AI Request Logs (#680).
- Ensure the Ability schemas and outputs are valid JSON Schema for strict REST and MCP consumers (#688).
- Title Generation button disappears after toggling off "Show template" (#694).
- Prevent accidental interactions and stale feedback in the Meta Description Generation modal and improve focus handling (#696).
- Ensure focus isn't lost after generating an Excerpt inline (#698).
- AI Request Logs: "Copy Log ID" gives no feedback when copied (#700).
- AI Request Logs: main header overlapping table header (#705).
- Allow users to clear an applied Meta Description while preventing whitespace-only descriptions (#706).
- Rename unforwarded
MaskCanvascomponent function toInnerMaskCanvasto avoid duplicate declarations (#713).
- Remove the
metaparam from our Image Import Ability (GHSA-42mg-ffvx-4xff). - Check the current user's capabilities and the comment type before setting an Editorial Note (GHSA-j7hg-vqpw-f98f).
- Clarify AI Connector provider setup documentation (#638).
- Add
@WordPress/ai-maintainersteam (#677). - Removes the
ready_for_reviewpull request event from the Test and Plugin Check GitHub Actions workflows (#703). - Bump
tmpfrom 0.2.5 to 0.2.7 (#630). - Bump
phpstan/php-8-stubsfrom 0.4.34 to 0.4.35 (#635). - Bump
phpstan/phpstanfrom 2.1.54 to 2.2.1 (#635, #672). - Bump
codecov/codecov-actionfrom 6.0.0 to 6.0.1 (#636). - Bump
WordPress/action-wp-playground-pr-previewto latest version (#673). - Bump
actions/checkoutfrom 6.0.2 to 6.0.3 (#707). - Bump
wordpress/plugin-check-actionfrom v1.1.6 to v1.1.7 (#726). - Update NPM dev-dependencies (#712).
1.0.1 - 2026-05-27
- New helper functions that are used to determine if we have valid AI Connector credentials (#603).
- New helper methods,
is_globally_enabledandis_individually_enabledto help tell if a feature is enabled individually or if features are globally enabled (#604).
- Removed the description from the Abilities listing within the Abilities Explorer (#592).
- Filter Guideline queries by the guideline type content (#593).
- Use the new
has_connector_authenticationinstead ofis_connector_configuredto avoid unnecessary API requests (#603).
- Deprecated
__nextHasNoMarginBottomprop (#609).
- Utilize a new
is_connector_configuredfunction to properly determine if a connector is configured, whether via an API key, constant or ENV var (#537). - "Generate Editorial Note" button appearing in the block settings menu during post revisions (#591).
- If the Connector Approvals experiment is turned on, ensure we don't over-aggressively block functionality in the AI plugin that isn't actually making requests, like Request Logging (#595).
- Better matching of the originating code when the Connector Approvals experiment is on (#595).
- Focus loss issues when interacting with Purge actions in the Request Logs experiments page (#599).
- Disable the "Purge All" button when no logs are available to purge (#599).
- AI Status feature checklist properly shows if an individual feature is enabled even if globally features are disabled (#604).
- Ensure focus isn't lost when buttons enter disabled state during Alt Text Generation, Content Classification, Content Summarization, Excerpt Generation, Featured Image Generation, and Title Generation (#608, #611).
- Settings page strings, which are enqueued as script modules, are now localized at runtime (#613).
- Connector Approvals "Dismiss" button failing for pending requests whose key contains a slash (#615).
- Hide empty provider capabilities section in the dashboard widget (#616).
- Playground and test configs now target the latest WordPress release instead of the beta release (#626).
- Connector Approvals notice no longer overlaps the page header on the AI Request Logs screen (#628).
- Corrected installation instructions in readme (#620).
- Bump
@wordpress/buildfrom 0.13.0 to 0.14.0 (#606). - Bump
@wordpress/scriptsfrom 32.1.0 to 32.2.0 (#606).
1.0.0 - 2026-05-19
- New Experiment: Request Logging that provides observability for all AI operations (#437).
- New Experiment: Connector Approvals that allows administrators the ability to determine which plugins can access which AI connectors (#467).
- Integrate Alt Text generation into the experimental media editor (#446).
- Sorting and filtering in Comments screen by Toxicity and/or Sentiment (#518).
- Toxicity and Sentiment labelling in admin dashboard for comments (#518).
- Disable the Summarization button until content reaches a certain length (#492).
- Refined image generation loading state (#512).
- Featured image button now hides when image is already set (#512).
- When no AI provider is configured and a feature is triggered, show actionable guidance directing users to configure an AI Connector (#523).
- Update Meta Description loading state and remove duplicate heading in modal (#527).
- Rename "Review Notes" experiment to "Editorial Notes" and "Refine from Notes" experiment to "Editorial Updates" (#528).
- Keep comments without moderation metadata visible when sorting by Comment Moderation columns (#538).
- Updated plugin banner and icons (#546).
- Show a notice when a user has chosen a provider that no longer exists (#552).
- When no provider is configured, show an error notice instead of an admin notice for alt text generation (#561).
- Standardize error message text (#562).
- Abilities Explorer page heading (#585).
- Ensure we properly use the new client-side Abilities API (#482).
- Keep keyboard focus on the Provider select when resetting per-feature developer settings to default (#532).
- Deduplicate provider API requests on the settings page when developer mode is toggled on (#542).
- Update the Playground Preview workflow to use
pluginDatainstead ofpluginZipFile(#548). - Empty space shown for Model field when saved provider no longer exists in developer settings (#552).
- Prevent analyzing newly inserted comments when no provider is configured (#554).
- Ensure the meta description modal doesn't open if no provider is configured (#558).
- False error for alt text generation on decorative images in media library (#559).
- Show a failed badge when comment analysis fails (#568).
- Correct RTL rendering of directional icons, runtime-set styles, and inline styles in the admin UI (#573).
- Add notice to standalone image generation when there is no provider connected (#575).
- Ensure we show a more specific error message when no valid AI connector is in place and we try to generate a featured image (#576).
- Improve keyboard focus visibility for suggested term actions in content classification (#580).
- User-facing text in several experiments is now fully translatable, and JS-side translations are loaded at runtime (#582).
- Make title generation and content classification UI react to current editor state (#584).
- Ensure global AI enabled options are migrated properly (#586).
- Various documentation updates (#475, #501, #540, #550, #569).
- Add an
.npmrcconfig file (#535). - Add a 7 day cooldown period for GitHub Action updates triggered by Dependabot (#553).
- Bump
phpstan/phpstanfrom 2.1.51 to 2.1.54 (#524). - Bump
@wordpress/buildfrom 0.12.0 to 0.13.0 (#525). - Bump
@wordpress/scriptsfrom 32.0.0 to 32.1.0 (#525). - Bump
dealerdirect/phpcodesniffer-composer-installerfrom 1.2.0 to 1.2.1 (#555). - Bump
shivammathur/setup-phpfrom 2.37.0 to 2.37.1 (#556). - Bump
actions/dependency-review-actionfrom 4.9.0 to 5.0.0 (#556). - Bump
wordpress/plugin-check-actionfrom 1.1.5 to 1.1.6 (#556).
0.9.0 - 2026-05-07
- New Experiment: Comment Moderation to automatically moderate comments based on toxicity detection and sentiment analysis (#155, #516).
- New Experiment: Content Resizing to shorten, expand, or rephrase selected block content (#331).
- Developer Mode settings page toggle to set the desired provider and model per feature (#486).
- WP-CLI command,
wp ai alt-text generate, for bulk alt text generation (#436). - Basic styles for the Content Summary block (#510).
- Compress the AI settings page by moving the global AI toggle into the header with an infotip (#455).
- Update AI settings page to use
@wordpress/uicomponents and related UI adjustments (#472, #488, #490, #491, #505, #519). - AI-generated images are now saved with descriptive, slugified filenames derived from the post title or prompt instead of
ai-generated-image-<timestamp>(#471). - For image generation, set guidelines as part of the prompt instead of system instructions (#497).
- Update the Content Summary experiment to render the summary in a Group variation block instead of a Paragraph variation block (#510).
- Standards compliance switch from the custom
$builder->is_text_generation_supported()method with the abstractensure_text_generation_supported()method (#465). - Ability schema JSON viewer now stays LTR under RTL admin languages (#485).
- Ensure the Generate Image button doesn't render in contexts that aren't valid (#489).
- Localize several user-facing fallback error strings in image-generation and summarization flows (#500).
- Bump
serialize-javascriptfrom 6.0.2 to 7.0.5 (#503). - Bump
postcssfrom 8.5.10 to 8.5.14 (#503). - Bump
minimatchfrom 3.0.8 to 3.1.4 (#503).
- Ignore
/.wp-env.test.override.jsonso local test-onlywp-envoverrides stay untracked (#484). - Add E2E coverage for Dashboard Widgets (#498).
- Add custom experiment reference documentation for developers extending the plugin (#499).
- Add squash merge commit approach to developer guide (#504, #511, #521).
- Bump
phpstan/phpstanfrom 2.1.46 to 2.1.51 (#468, #493). - Bump
actions/setup-nodefrom 6.3.0 to 6.4.0 (#469).
0.8.0 - 2026-04-23
- New Experiment: Refine from Notes, automatically apply editorial notes to content (#289).
- AI Status and AI Capabilities dashboard widgets, plus framework for registering new dashboard widgets (#311).
- Integrates Gutenberg's Guidelines allowing abilities to respect site-wide editorial standards (#359).
- Check
wp_supports_ai()before initializing experiments (#268). - Admin redirect from the old
aipage to the newai-wp-adminpage (#424). - Set the new
gpt-image-2model for our preferred model list (#456).
- Promote Image Generation from an Experiment to a Feature (#418).
- Title Generation now utilizes a modal for editing and regeneration before applying changes to the Post Title (#290).
- Update feature descriptions to include AI provider model supports (#377).
- Update button loading states to match the standard loading pattern (#382, #389, #396, #433, #449).
- Refactor
Mainbootstrap class (#404). - Allow bulk enabling/disabling Experiments in groups (#422).
- Improve visual hierarchy on the AI settings page so card titles are more prominent than the toggle labels (#431).
- Reduce the context we send when running Review Notes to decrease the amount of tokens used (#434).
- Refactor
strpostostr_starts_withandstr_contains(#438). - Render Review Notes only on post types that support
editor.notes(#444). - Improve accessibility of the Meta Description modal: inline "Copied!" confirmation on the copy button and accessibleWhenDisabled on disabled controls (#445).
- Refactor
Asset_Loaderclass and add error checking when dependencies are missing (#458).
- Remove references to DALL·E image models (#414).
- Excerpt and Title generation no longer include conversational preambles, wrapper quotes, markdown, or meta-commentary when using smaller language models (#440).
- Defer failed
Requirementsmessages until translation functions are available (#453).
- Align testing docs with current test setup (#393).
- Add
dependabot.ymlconfig file with cooldowns and groupings (#405). - Bump
actions/checkoutfrom 5.0.0 to 6.0.2 (#407). - Bump
shivammathur/setup-phpfrom 2.35.4 to 2.37.0 (#407). - Bump
actions/setup-nodefrom 5.0.0 to 6.3.0 (#407). - Bump
ramsey/composer-installfrom 3.1.1 to 4.0.0 (#407). - Bump
actions/upload-artifactfrom 4.6.2 to 7.0.1 (#407, #442). - Bump
actions/dependency-review-actionfrom 4.8.2 to 4.9.0 (#407). - Bump
actions/github-scriptfrom 7.0.1 to 8.0.0 (#407). - Bump
actions/cachefrom 4.2.4 to 5.0.5 (#407, #442). - Bump
actions/github-scriptfrom 8.0.0 to 9.0.0 (#415). - Update
blueprint.jsonto use WordPress beta version (#423). - Bump
basic-ftpfrom 5.2.1 to 5.2.2 (#426). - Update PR template sections (#429).
- Ensure our JS lint script excludes the
build-scriptsdirectory (#432). - Bump
softprops/action-gh-releasefrom 2.6.1 to 3.0.0 (#442). - Update all NPM dependencies and migrate configs (#447).
- Add
npm run format, and apply repo-wide formatting (#463).
0.7.0 - 2026-04-09
- New Experiment: Content Classification to generate taxonomy terms based on post content (#313).
- New Experiment: SEO Descriptions that provides AI-generated meta description support (#318).
- Added a bulk "Generate Alt Text" action to Media Library to generate alt text for multiple images at once (#330).
- Added Category filtering to the Abilities table to improve organization and discoverability (#355).
- Added extensibility hooks for customizing system instructions, and post context during AI operations (#304).
- Added a new
wpai_has_ai_credentialsfilter to allow 3rd parties to modify the credential detection logic, for instance to support non-API-key connectors to report their configured status (#337).
- Adjust Alt Text Generation to better align with the W3C Alt Text decision tree guidance (#374).
- Updated AI settings page leveraging modern
wp-buildDataForm route (#340, #376). - Revised Feature and Experiment Lifecycle and other documentation updates (#326, #329).
- Update some of our system instructions to prompt the LLM to return content in the same language as the original content they were given (#357).
- Updated end-to-end tests to resolve flaky failures and account for markup changes in the Connectors screen (#360).
- Updated preferred models to more recent ones for the three default providers (#361).
- Updated provider compatibility checks to use the AI Client's built-in
is_supported_*methods for improved validation and error reporting (#362). - Updated the PR preview workflow to use a preferred WordPress version for improved consistency during testing (#366).
- Switch to using a
Buttoncomponent instead of aToolbarButtoncomponent within the Title Generation Experiment when in normal editing mode (non-template mode) (#375).
- Unneeded
function_existschecks (#378).
- Improved error messages when Image Generation or Editing fails due to incompatible providers (#332).
- Fixed an issue where Title Generation could fail when using the Anthropic provider (#341).
- Invalid schema type in the summarization ability that prevented proper execution in some environments (#347).
- Fixed an issue where the Generate Alt Text button could appear when an Image block was not selected, particularly when working with Patterns (#356).
- Fixed an issue where repeated calls to load system instructions could return empty content (#358).
- Fixed an issue where retrieving post content did not always return the most recently edited version (#367).
- Bump
flattedfrom 3.3.3 to 3.4.2 (#328). - Bump
lodash-esfrom 4.17.23 to 4.18.1 (#369). - Bump
lodashfrom 4.17.23 to 4.18.1 (#370). - Bump
node-forgefrom 1.3.3 to 1.4.0 (#371). - Bump
picomatchfrom 2.3.1 to 2.3.2 and from 4.0.3 to 4.0.4 (#372). - Bump
yamlfrom 1.10.2 to 1.10.3 and from 2.8.2 to 2.8.3 (#373). - Updates Composer & NPM to their latest (semver-compatible) versions (#401).
0.6.0 - 2026-03-20
There are Breaking Changes in this release.
- Refactor
Experimentsto be a type ofFeature, improving how functionality is organized and surfaced (#316).
The following classes have been removed. Anyone that was directly using these will need to make updates to utilize the correct replacements: Abstract_Experiment, Invalid_Experiment_Metadata_Exception, Invalid_Experiment_Exception, Experiment_Loader, Experiment_Registry.
- Standardize the Title Generation Ability to align with other registered Abilities (#227).
The ai/title-generation Ability now uses a context argument instead of a post_id argument in the input_schema. Anyone directly using this Ability will need to make updates to account for that.
- New Experiment: Image Editing via prompt-based image refining in the Post Editor and Media Library (#292).
- New Experiment: Image Editing via expanding or removing background and removing or replacing items in the Media Library (#305, #312).
- Rename the plugin from "AI Experiments" to "AI" (#287).
- Replace
Invalid_Experiment_Exceptionwith_doing_it_wrong()(#303). - Rename hook prefixes in
helpers.php(#315). - Rename plugin constants to
WPAI_*(#317). - Refactor the upgrade routine and add v0.6.0 migrations (#321).
- Move the Generate Alt Text button to the new Content tab for improved discoverability (#306).
- Remove stray "AI" references from UI for improved consistency (#320).
- Update documentation (#314).
- Remove duplicate error display in the Generate Alt Text flow (#255).
0.5.0 - 2026-03-12
Note this version bumps the WordPress minimum supported version from 6.9 to 7.0.
- Bump WordPress minimum supported version from 6.9 to 7.0 (#272).
- Bump WordPress tested-up-to version 7.0 (#272).
- Migrate credentials from the AI Credentials to the new Connectors screen (#286).
- Improve documentation and plugin assets (#280, #281, #291, #293, #296).
- No longer using AI Client via Composer package (#271).
- Bump
simple-gitfrom 3.30.0 to 3.33.0 (#295).
0.4.1 - 2026-03-06
- Issues with 0.4.0 release merge and deploy (#266).
- Bump
immutablefrom 5.1.4 to 5.1.5 (#273). - Bump
svgofrom 3.3.2 to 3.3.3 (#274). - Updated Release Instructions documentation (#277).
0.4.0 - 2026-03-05
- Inline Image Generation directly in the post editor, enabling users to generate images without leaving authoring/editing flows (#235).
- Generate Image within the Media Library with prompt-based image generation workflows (#258).
- Generate Review Notes experiment to analyze post content or individual blocks and suggest refinements via Notes comments in the editor (#260, #267).
- Split editor and admin experiments within the settings page (#232).
- Contextual help text to the Abilities Explorer screen to assist users in understanding what Abilities are and how to use them (#243).
- Update “Generate Summary” button style to use consistent UI with other buttons in the editor (#253).
- Standardize Abilities invocation using the
runAbilityhelper to improve consistency across API calls (#228). - Make provider labels in the Abilities Explorer translatable and adjust badge styling for clarity (#247).
- Improve Abilities Explorer table layout by aligning spacing and styles with WordPress admin table conventions (#248).
- Improve the Ability test page with better internationalization and add copy-to-clipboard functionality (#256).
- Remove unused checkbox column from the Abilities Explorer table, as it was not tied to any bulk actions (#246).
- Fix the position and behavior of the “Copy” button in code blocks within the Abilities Explorer (#245).
- Bump
basic-ftpfrom 5.1.0 to 5.2.0 (#259).
0.3.1 - 2026-02-18
- Increased image generation request timeout from 30s to 90s to reduce failed generations on slower providers/models (#226).
- Added Experiment lifecycle and contribution criteria documentation, plus general doc tidy-ups to better explain how experiments land in (and could eventually graduate from) the plugin (#219).
- Updated the Pull Request template to include an “AI tools usage” disclosure section, aligned with the equivalent change in core (#217).
- Bump
qsfrom 6.14.1 to 6.14.2 (#229).
0.3.0 - 2026-02-09
- Content Summarization Experiment, allowing authors to generate and store AI-powered summaries directly in the post editor (#147).
- Featured Image Generation Experiment, enabling AI-generated featured images from the editor sidebar with optional alt text and AI attribution metadata (#146).
- Alt Text Generation Experiment, supporting images within Image blocks and Media Library workflows (#156).
- “Experiments” and “Credentials” quick action links to the Installed Plugins screen for faster configuration (#206).
- Replace the global “Enable Experiments” checkbox with an auto-submitting enable/disable button to reduce friction when toggling experiments (#168).
- Improve robustness of asset loading to handle missing or invalid built files and prevent admin and editor warnings (#175).
- Add missing strict typing declarations in the Abilities Explorer to ensure consistency and correctness (#208).
- Streamline and clarify Contributor and Developer documentation to improve onboarding and reduce duplication (#169).
- Fix inline documentation issues, including missing
@globaltags, non-standard hook tags, and incomplete@returndescriptions (#207, #210). - Bump
phpunit/phpunitfrom 9.6.31 to 9.6.33 as part of ongoing test and tooling maintenance (#209). - Expand and align allowed open source licenses in dependency configuration to better match Gutenberg and ecosystem tooling (#212, #213, #214).
0.2.1 - 2026-01-26
- Introduced a shared
AI_Servicelayer to standardize provider access across experiments (#101).
- Documentation updates (#195).
- Guarded against
preg_replace()returningnullto prevent content corruption innormalize_content()(#177).
- Change our user permission checks to use
edit_postinstead ofread_post(GHSA-mxf5-gp98-93wv).
- Bumped
difffrom 4.0.2 to 4.0.4 (#196). - Bumped
lodash-esfrom 4.17.22 to 4.17.23 (#198). - Bumped
lodashfrom 4.17.21 to 4.17.23 (#199).
0.2.0 – 2026-01-20
- Core excerpt generation support for AI-powered summaries, including a new Excerpt Generation Experiment with editor UI (#96, #143).
- Abilities Explorer - a new admin screen to view and interact with registered AI abilities in the plugin (#63).
- Introduce foundational backend support for Content Summarization and Image Generation experiments (API-only; no UI yet) (#134, #136).
- Improve plugin documentation and onboarding with expanded WP.org readme content (#135).
- Add Playground preview support to build and PR workflows using the official WordPress action (#144).
- Rely on the Abilities API bundled with WordPress 6.9 and remove the previously bundled dependency (minimum WP version updated) (#107).
- Reorganize Playground blueprints and update demo paths to align with WordPress.org conventions (#137).
- Improve and clarify plugin documentation, descriptions, screenshots, and in-context messaging (#69, #158, #161, #162, #164).
- Update and align runtime and development dependencies, including
preact,qs,express, and React overrides (#165, #166, #171). - Replace custom Plugin Check setup with the official GitHub workflow for more reliable enforcement (#139).
- Resolve UI and messaging issues on the AI Experiments settings screen (#130, #132).
- Ensure AI Experiments are visible even when no credentials are configured (#173).
- Fix Plugin Check, linting, and CI failures introduced by updated tooling and workflows (#150, #163, #167, #176).
- Cleanup and standardize scaffold, linting, TypeScript, and CI configuration to better align with WordPress Coding Standards (#172).
0.1.1 - 2025-12-01
- Link to the plugin settings screen from the plugin list table (#98).
- WordPress Playground live preview integration (#85).
- RTL language support and inlining for performance (#113).
- Updated namespace to
ai_experiments(#111). - Bumped WP AI Client from
dev-trunkto 0.2.0 (#118, #122, #125).
- Valid AI credentials check from the Experiment
is_enabledcheck (#120). - Example Experiment registration (#121).
- Bug in asset loader causing missing dependencies (#113).
- Bumped
js-yamlfrom 3.14.1 to 3.14.2 (#105). - Updated format script to only format JS to avoid random JSON file changes (#114).
- Updated documentation (#108, #112).
0.1.0 - 2025-11-26
First public release of the AI Experiments plugin, introducing a framework for exploring experimental AI-powered features in WordPress. 🎉
- Experiment registry and loader system for managing AI features
- Abstract experiment base class for consistent feature development
- Experiment: Title Generation
- Basic admin settings screen with toggle support
- Initial integration with WP AI Client SDK and Abilities API
- Utilities Ability for common AI tasks and testing
