Skip to content

Latest commit

 

History

History
414 lines (345 loc) · 37 KB

File metadata and controls

414 lines (345 loc) · 37 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.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