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.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-depependencies (#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-comptible) 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 Libary (#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 ediot (#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