Skip to content

Latest commit

 

History

History
648 lines (559 loc) · 64 KB

File metadata and controls

648 lines (559 loc) · 64 KB

Changelog

All notable changes to this project will be documented in this file, per the Keep a Changelog standard, and will adhere to Semantic Versioning.

1.3.0 - 2026-08-18

Added

  • 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_confidence and wpai_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).

Changed

  • Updated all meta keys to use the wpai_ prefix instead of just ai_. Note this changes the prefix on the ai_generated, ai_generated_summary and ai_note meta so if you are directly using those, update to using the wpai_ 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-users ability now returns collections ordered by display name, A to Z (#948).

Deprecated

  • The AI_Service class and the get_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 call wp_ai_client_prompt() directly (#905).
  • Filter wpai_meta_description_result_temperature is no longer being used and will be removed in the next release (#913).

Removed

  • No longer set custom temperature values on any of our requests (#913).

Fixed

  • The AI Request Log REST endpoint now registers its operation filter 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 value attribute (#930).

Security

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

Developer

  • 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_timeout and wpai_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 any casts 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 plugin context is a namespace-collision guard rather than an isolation boundary between plugins (#909).
  • The secrets_accessed and secrets_{$operation} actions now receive a backtrace-derived detected_plugin alongside the caller-asserted plugin value, 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/checkout from 7.0.0 to 7.0.1 (#894).
  • Bump actions/setup-node from 6.4.0 to 7.0.0 (#894).
  • Bump automattic/vipwpcs from 3.0.1 to 3.1.0 (#919).
  • Bump concurrently from 10.0.3 to 10.0.4 (#902).
  • Bump fast-uri from 3.1.3 to 3.1.5 (#904, #927).
  • Bump fast-xml-parser from 5.10.0 to 5.10.1 (#903).
  • Bump ip-address from 10.2.0 to 10.5.0 (#925).
  • Bump phpstan/phpstan from 2.2.5 to 2.2.8 (#910, #936).
  • Bump phpstan/phpstan-deprecation-rules from 2.0.4 to 2.0.5 (#910).
  • Bump phpstan/phpstan-phpunit from 2.0.17 to 2.0.18 (#879).
  • Bump @playwright/test from 1.61.1 to 1.62.1 (#920).
  • Bump postcss from 8.5.19 to 8.5.26 (#926).
  • Bump shell-quote from 1.8.4 to 1.9.0 (#902).
  • Bump softprops/action-gh-release from 3.0.1 to 3.0.2 (#894).
  • Bump @wordpress/admin-ui from 2.4.0 to 2.7.0 (#880, #896, #921).
  • Bump @wordpress/build from 0.18.0 to 0.20.0 (#895, #920).
  • Bump @wordpress/e2e-test-utils-playwright from 1.50.0 to 1.52.0 (#895, #920).
  • Bump @wordpress/prettier-config from 4.50.0 to 4.52.0 (#895, #920).
  • Bump @wordpress/scripts from 32.6.0 to 33.0.0 (#939).
  • Bump @wordpress/ui from 0.15.1 to 0.19.0 (#880, #896, #921).
  • Bump wp-coding-standards/wpcs from 3.3.0 to 3.4.1 (#893, #899).
  • Bump wp-phpunit/wp-phpunit from 7.0.0 to 7.0.2 (#879, #893).

1.2.0 - 2026-07-14

Added

  • 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-content Ability with secure single-post and query modes (including include and opt-in fields) to enable read-only content access (#739).
  • New core/read-users Ability 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_timeout filter to make the default request timeout configurable. Use this for the image generation request timeout (#862).

Changed

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

Fixed

  • 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).
  • MutationObserver crash when editor iframe body isn't ready when using Title Generation (#849).
  • Respect an explicit show_in_abilities value on curated settings, and leave the flag to WordPress core once core declares it (#852).
  • Register initial settings before core/read-settings snapshots them (#856).

Developer

  • 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/cache from 5.0.5 to 6.1.0 (#821).
  • Bump phpstan/phpstan-phpunit from 2.0.16 to 2.0.17 and phpstan/phpstan from 2.2.2 to 2.2.5 (#836).
  • Bump @wordpress/admin-ui from 2.0.0 to 2.4.0 and @wordpress/ui from 0.12.0 to 0.15.1 (#837).

1.1.0 - 2026-06-30

Added

  • 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-settings Ability (#691, #806).
  • New wpai_has_image_generation_support filter 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).

Changed

  • Note prompting the user to save after running Editorial Notes (#682).
  • Use __next40pxDefaultSize for 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 Notice component to display warnings within experiment modals (#803).
  • Added success snackbar when saving or resetting developer settings (#807).

Fixed

  • Add wordCountType to 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).

Developer

  • Skip push-triggered CI workflows on forks (#722).
  • Remove any type 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/phpstan from 2.2.1 to 2.2.2 and phpstan/php-8-stubs from 0.4.35 to 0.4.36 (#744).
  • Bumps shivammathur/setup-php from 2.37.1 to 2.37.2 and codecov/codecov-action from 6.0.1 to 7.0.0 (#745).
  • Bump @wordpress/build from 0.16.0 to 0.16.1 (#754).
  • Bump wp-phpunit/wp-phpunit from 6.9.4 to 7.0.0 (#779).
  • Bump actions/checkout from 6.0.3 to 7.0.0 and softprops/action-gh-release from 3.0.0 to 3.0.1 (#780).

1.0.2 - 2026-06-16

Added

  • Manual refresh button to the AI Request Logs table header (#687).
  • New ai_generated param on our Image Import Ability to set if the imported image was AI generated or not (GHSA-42mg-ffvx-4xff).

Changed

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

Fixed

  • 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 MaskCanvas component function to InnerMaskCanvas to avoid duplicate declarations (#713).

Security

  • Remove the meta param 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).

Developer

  • Clarify AI Connector provider setup documentation (#638).
  • Add @WordPress/ai-maintainers team (#677).
  • Removes the ready_for_review pull request event from the Test and Plugin Check GitHub Actions workflows (#703).
  • Bump tmp from 0.2.5 to 0.2.7 (#630).
  • Bump phpstan/php-8-stubs from 0.4.34 to 0.4.35 (#635).
  • Bump phpstan/phpstan from 2.1.54 to 2.2.1 (#635, #672).
  • Bump codecov/codecov-action from 6.0.0 to 6.0.1 (#636).
  • Bump WordPress/action-wp-playground-pr-preview to latest version (#673).
  • Bump actions/checkout from 6.0.2 to 6.0.3 (#707).
  • Bump wordpress/plugin-check-action from v1.1.6 to v1.1.7 (#726).
  • Update NPM dev-depependencies (#712).

1.0.1 - 2026-05-27

Added

  • New helper functions that are used to determine if we have valid AI Connector credentials (#603).
  • New helper methods, is_globally_enabled and is_individually_enabled to help tell if a feature is enabled individually or if features are globally enabled (#604).

Changed

  • 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_authentication instead of is_connector_configured to avoid unnecessary API requests (#603).

Removed

  • Deprecated __nextHasNoMarginBottom prop (#609).

Fixed

  • Utilize a new is_connector_configured function 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).

Developer

  • Corrected installation instructions in readme (#620).
  • Bump @wordpress/build from 0.13.0 to 0.14.0 (#606).
  • Bump @wordpress/scripts from 32.1.0 to 32.2.0 (#606).

1.0.0 - 2026-05-19

Added

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

Changed

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

Fixed

  • 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 pluginData instead of pluginZipFile (#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).

Developer

  • Various documentation updates (#475, #501, #540, #550, #569).
  • Add an .npmrc config file (#535).
  • Add a 7 day cooldown period for GitHub Action updates triggered by Dependabot (#553).
  • Bump phpstan/phpstan from 2.1.51 to 2.1.54 (#524).
  • Bump @wordpress/build from 0.12.0 to 0.13.0 (#525).
  • Bump @wordpress/scripts from 32.0.0 to 32.1.0 (#525).
  • Bump dealerdirect/phpcodesniffer-composer-installer from 1.2.0 to 1.2.1 (#555).
  • Bump shivammathur/setup-php from 2.37.0 to 2.37.1 (#556).
  • Bump actions/dependency-review-action from 4.9.0 to 5.0.0 (#556).
  • Bump wordpress/plugin-check-action from 1.1.5 to 1.1.6 (#556).

0.9.0 - 2026-05-07

Added

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

Changed

  • 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/ui components 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).

Fixed

  • Standards compliance switch from the custom $builder->is_text_generation_supported() method with the abstract ensure_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).

Security

  • Bump serialize-javascript from 6.0.2 to 7.0.5 (#503).
  • Bump postcss from 8.5.10 to 8.5.14 (#503).
  • Bump minimatch from 3.0.8 to 3.1.4 (#503).

Developer

  • Ignore /.wp-env.test.override.json so local test-only wp-env overrides 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/phpstan from 2.1.46 to 2.1.51 (#468, #493).
  • Bump actions/setup-node from 6.3.0 to 6.4.0 (#469).

0.8.0 - 2026-04-23

Added

  • 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 ai page to the new ai-wp-admin page (#424).
  • Set the new gpt-image-2 model for our preferred model list (#456).

Changed

  • 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 Main bootstrap 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 strpos to str_starts_with and str_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_Loader class and add error checking when dependencies are missing (#458).

Removed

  • Remove references to DALL·E image models (#414).

Fixed

  • Excerpt and Title generation no longer include conversational preambles, wrapper quotes, markdown, or meta-commentary when using smaller language models (#440).
  • Defer failed Requirements messages until translation functions are available (#453).

Developer

  • Align testing docs with current test setup (#393).
  • Add dependabot.yml config file with cooldowns and groupings (#405).
  • Bump actions/checkout from 5.0.0 to 6.0.2 (#407).
  • Bump shivammathur/setup-php from 2.35.4 to 2.37.0 (#407).
  • Bump actions/setup-node from 5.0.0 to 6.3.0 (#407).
  • Bump ramsey/composer-install from 3.1.1 to 4.0.0 (#407).
  • Bump actions/upload-artifact from 4.6.2 to 7.0.1 (#407, #442).
  • Bump actions/dependency-review-action from 4.8.2 to 4.9.0 (#407).
  • Bump actions/github-script from 7.0.1 to 8.0.0 (#407).
  • Bump actions/cache from 4.2.4 to 5.0.5 (#407, #442).
  • Bump actions/github-script from 8.0.0 to 9.0.0 (#415).
  • Update blueprint.json to use WordPress beta version (#423).
  • Bump basic-ftp from 5.2.1 to 5.2.2 (#426).
  • Update PR template sections (#429).
  • Ensure our JS lint script excludes the build-scripts directory (#432).
  • Bump softprops/action-gh-release from 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

Added

  • 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_credentials filter to allow 3rd parties to modify the credential detection logic, for instance to support non-API-key connectors to report their configured status (#337).

Changed

  • Adjust Alt Text Generation to better align with the W3C Alt Text decision tree guidance (#374).
  • Updated AI settings page leveraging modern wp-build DataForm 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 Button component instead of a ToolbarButton component within the Title Generation Experiment when in normal editing mode (non-template mode) (#375).

Removed

  • Unneeded function_exists checks (#378).

Fixed

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

Developer

  • Bump flatted from 3.3.3 to 3.4.2 (#328).
  • Bump lodash-es from 4.17.23 to 4.18.1 (#369).
  • Bump lodash from 4.17.23 to 4.18.1 (#370).
  • Bump node-forge from 1.3.3 to 1.4.0 (#371).
  • Bump picomatch from 2.3.1 to 2.3.2 and from 4.0.3 to 4.0.4 (#372).
  • Bump yaml from 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.

Breaking Changes

  • Refactor Experiments to be a type of Feature, 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.

Added

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

Changed

  • Rename the plugin from "AI Experiments" to "AI" (#287).
  • Replace Invalid_Experiment_Exception with _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).

Fixed

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

Added

  • Switch to using AI Client bundled in WordPress 7.0 (#275, #301).

Changed

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

Removed

  • No longer using AI Client via Composer package (#271).

Developer

  • Bump simple-git from 3.30.0 to 3.33.0 (#295).

0.4.1 - 2026-03-06

Fixed

  • Issues with 0.4.0 release merge and deploy (#266).

Developer

  • Bump immutable from 5.1.4 to 5.1.5 (#273).
  • Bump svgo from 3.3.2 to 3.3.3 (#274).
  • Updated Release Instructions documentation (#277).

0.4.0 - 2026-03-05

Added

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

Changed

  • Update “Generate Summary” button style to use consistent UI with other buttons in the ediot (#253).
  • Standardize Abilities invocation using the runAbility helper 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).

Removed

  • Remove unused checkbox column from the Abilities Explorer table, as it was not tied to any bulk actions (#246).

Fixed

  • Fix the position and behavior of the “Copy” button in code blocks within the Abilities Explorer (#245).

Developer

  • Bump basic-ftp from 5.1.0 to 5.2.0 (#259).

0.3.1 - 2026-02-18

Fixed

  • Increased image generation request timeout from 30s to 90s to reduce failed generations on slower providers/models (#226).

Developer

  • 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 qs from 6.14.1 to 6.14.2 (#229).

0.3.0 - 2026-02-09

Added

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

Changed

  • Replace the global “Enable Experiments” checkbox with an auto-submitting enable/disable button to reduce friction when toggling experiments (#168).

Fixed

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

Developer

  • Streamline and clarify Contributor and Developer documentation to improve onboarding and reduce duplication (#169).
  • Fix inline documentation issues, including missing @global tags, non-standard hook tags, and incomplete @return descriptions (#207, #210).
  • Bump phpunit/phpunit from 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

Added

  • Introduced a shared AI_Service layer to standardize provider access across experiments (#101).

Changed

  • Documentation updates (#195).

Fixed

  • Guarded against preg_replace() returning null to prevent content corruption in normalize_content() (#177).

Security

  • Change our user permission checks to use edit_post instead of read_post (GHSA-mxf5-gp98-93wv).

Developer

  • Bumped diff from 4.0.2 to 4.0.4 (#196).
  • Bumped lodash-es from 4.17.22 to 4.17.23 (#198).
  • Bumped lodash from 4.17.21 to 4.17.23 (#199).

0.2.0 – 2026-01-20

Added

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

Changed

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

Fixed

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

Developer

  • Cleanup and standardize scaffold, linting, TypeScript, and CI configuration to better align with WordPress Coding Standards (#172).

0.1.1 - 2025-12-01

Added

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

Changed

  • Updated namespace to ai_experiments (#111).
  • Bumped WP AI Client from dev-trunk to 0.2.0 (#118, #122, #125).

Removed

  • Valid AI credentials check from the Experiment is_enabled check (#120).
  • Example Experiment registration (#121).

Fixed

  • Bug in asset loader causing missing dependencies (#113).

Developer

  • Bumped js-yaml from 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. 🎉

Added

  • 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