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.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