Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .distignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ composer.json
composer.lock
CONTRIBUTING.md
CREDITS.md
eslint.config.mjs
LICENSE.md
package-lock.json
package.json
Expand All @@ -27,4 +28,5 @@ phpunit.xml.dist
README.md
ROADMAP.md
SECURITY.md
tsconfig.json
webpack.config.js
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
package.json export-ignore
package-lock.json export-ignore
/composer.lock export-ignore
/eslint.config.mjs export-ignore
/tsconfig.json export-ignore
/webpack.config.js export-ignore

Expand Down
51 changes: 51 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,56 @@ All notable changes to this project will be documented in this file, per [the Ke

## [Unreleased] - TBD

## [0.8.0] - 2026-04-23
### Added
- New Experiment: Refine from Notes, automatically apply editorial notes to content ([#289](https://github.com/WordPress/ai/pull/289)).
- AI Status and AI Capabilities dashboard widgets, plus framework for registering new dashboard widgets ([#311](https://github.com/WordPress/ai/pull/311)).
- Integrates Gutenberg's Guidelines allowing abilities to respect site-wide editorial standards ([#359](https://github.com/WordPress/ai/pull/359)).
- Check `wp_supports_ai()` before initializing experiments ([#268](https://github.com/WordPress/ai/pull/268)).
- Admin redirect from the old `ai` page to the new `ai-wp-admin` page ([#424](https://github.com/WordPress/ai/pull/424)).
- Set the new `gpt-image-2` model for our preferred model list ([#456](https://github.com/WordPress/ai/pull/456)).

### Changed
- Promote Image Generation from an Experiment to a Feature ([#418](https://github.com/WordPress/ai/pull/418)).
- Title Generation now utilizes a modal for editing and regeneration before applying changes to the Post Title ([#290](https://github.com/WordPress/ai/pull/290)).
- Update feature descriptions to include AI provider model supports ([#377](https://github.com/WordPress/ai/pull/377)).
- Update button loading states to match the standard loading pattern ([#382](https://github.com/WordPress/ai/pull/382), [#389](https://github.com/WordPress/ai/pull/389), [#396](https://github.com/WordPress/ai/pull/396),[#433](https://github.com/WordPress/ai/pull/433), [#449](https://github.com/WordPress/ai/pull/449)).
- Refactor `Main` bootstrap class ([#404](https://github.com/WordPress/ai/pull/404)).
- Allow bulk enabling/disabling Experiments in groups ([#422](https://github.com/WordPress/ai/pull/422)).
- Improve visual hierarchy on the AI settings page so card titles are more prominent than the toggle labels ([#431](https://github.com/WordPress/ai/pull/431)).
- Reduce the context we send when running Review Notes to decrease the amount of tokens used ([#434](https://github.com/WordPress/ai/pull/434)).
- Refactor `strpos` to `str_starts_with` and `str_contains` ([#438](https://github.com/WordPress/ai/pull/438)).
- Render Review Notes only on post types that support `editor.notes` ([#444](https://github.com/WordPress/ai/pull/444)).
- Improve accessibility of the Meta Description modal: inline "Copied!" confirmation on the copy button and accessibleWhenDisabled on disabled controls ([#445](https://github.com/WordPress/ai/pull/445)).
- Refactor `Asset_Loader` class and add error checking when dependencies are missing ([#458](https://github.com/WordPress/ai/pull/458)).

### Removed
- Remove references to DALL·E image models ([#414](https://github.com/WordPress/ai/pull/414)).

### Fixed
- Excerpt and Title generation no longer include conversational preambles, wrapper quotes, markdown, or meta-commentary when using smaller language models ([#440](https://github.com/WordPress/ai/pull/440)).
- Defer failed `Requirements` messages until translation functions are available ([#453](https://github.com/WordPress/ai/pull/453)).

### Developer
- Align testing docs with current test setup ([#393](https://github.com/WordPress/ai/pull/393)).
- Add `dependabot.yml` config file with cooldowns and groupings ([#405](https://github.com/WordPress/ai/pull/405)).
- Bump `actions/checkout` from 5.0.0 to 6.0.2 ([#407](https://github.com/WordPress/ai/pull/407)).
- Bump `shivammathur/setup-php` from 2.35.4 to 2.37.0 ([#407](https://github.com/WordPress/ai/pull/407)).
- Bump `actions/setup-node` from 5.0.0 to 6.3.0 ([#407](https://github.com/WordPress/ai/pull/407)).
- Bump `ramsey/composer-install` from 3.1.1 to 4.0.0 ([#407](https://github.com/WordPress/ai/pull/407)).
- Bump `actions/upload-artifact` from 4.6.2 to 7.0.1 ([#407](https://github.com/WordPress/ai/pull/407), [#442](https://github.com/WordPress/ai/pull/442)).
- Bump `actions/dependency-review-action` from 4.8.2 to 4.9.0 ([#407](https://github.com/WordPress/ai/pull/407)).
- Bump `actions/github-script` from 7.0.1 to 8.0.0 ([#407](https://github.com/WordPress/ai/pull/407)).
- Bump `actions/cache` from 4.2.4 to 5.0.5 ([#407](https://github.com/WordPress/ai/pull/407), [#442](https://github.com/WordPress/ai/pull/442)).
- Bump `actions/github-script` from 8.0.0 to 9.0.0 ([#415](https://github.com/WordPress/ai/pull/415)).
- Update `blueprint.json` to use WordPress beta version ([#423](https://github.com/WordPress/ai/pull/423)).
- Bump `basic-ftp` from 5.2.1 to 5.2.2 ([#426](https://github.com/WordPress/ai/pull/426)).
- Update PR template sections ([#429](https://github.com/WordPress/ai/pull/429)).
- Ensure our JS lint script excludes the `build-scripts` directory ([#432](https://github.com/WordPress/ai/pull/432)).
- Bump `softprops/action-gh-release` from 2.6.1 to 3.0.0 ([#442](https://github.com/WordPress/ai/pull/442)).
- Update all NPM dependencies and migrate configs ([#447](https://github.com/WordPress/ai/pull/447)).
- Add `npm run format`, and apply repo-wide formatting ([#463](https://github.com/WordPress/ai/pull/463)).

## [0.7.0] - 2026-04-09
### Added
- New Experiment: Content Classification to generate taxonomy terms based on post content ([#313](https://github.com/WordPress/ai/pull/313)).
Expand Down Expand Up @@ -228,6 +278,7 @@ First public release of the AI Experiments plugin, introducing a framework for e
- Utilities Ability for common AI tasks and testing

[Unreleased]: https://github.com/WordPress/ai/compare/trunk...develop
[0.8.0]: https://github.com/WordPress/ai/compare/0.7.0...0.8.0
[0.7.0]: https://github.com/WordPress/ai/compare/0.6.0...0.7.0
[0.6.0]: https://github.com/WordPress/ai/compare/0.5.0...0.6.0
[0.5.0]: https://github.com/WordPress/ai/compare/0.4.1...0.5.0
Expand Down
2 changes: 1 addition & 1 deletion CREDITS.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ The following individuals are responsible for curating the list of issues, respo

Thank you to all the people who have already contributed to this repository via bug reports, code, design, ideas, project management, translation, testing, etc.

[Darin Kotter (@dkotter)](https://github.com/dkotter), [Jeffrey Paul (@jeffpaul)](https://github.com/jeffpaul), [Jason Adams (@JasonTheAdams)](https://github.com/JasonTheAdams), [Dovid Levine (@justlevine)](https://github.com/justlevine),[Md Aminul Islam (@theaminuli)](https://github.com/theaminuli), [Felix Arntz (@felixarntz)](https://github.com/felixarntz), [Jonathan Desrosiers (@desrosj)](https://github.com/desrosj), [Mohamed Khaled (@Ref34t)](https://github.com/Ref34t), [Iqbal Hossain (iqbal-web)](https://github.com/iqbal-web), [Lina Wiezkowiak (@linawiezkowiak)](https://github.com/linawiezkowiak), [Rachael Cortellessa (@rachaelcortellessa)](https://github.com/rachaelcortellessa), [James LePage (@Jameswlepage)](https://github.com/Jameswlepage), [Tammie Lister (@karmatosed)](https://github.com/karmatosed), [Aki Hamano (@t-hamano)](https://github.com/t-hamano), [Blake Bertuccelli-Booth (@bbertucc)](https://github.com/bbertucc), [Mujeebu Rahman (@mujuonly)](https://github.com/mujuonly), [Mukesh Panchal (@mukeshpanchal27)](https://github.com/mukeshpanchal27), [Pascal Birchler (@swissspidy)](https://github.com/swissspidy), [Dhruvang Shah (@dhruvang21)](https://github.com/dhruvang21), [Aslam Doctor (@aslamdoctor)](https://github.com/aslamdoctor), [John Parris (@mindctrl)](https://github.com/mindctrl), [James Morrison (@jamesmorrison)](https://github.com/jamesmorrison), [Paul Bearne (@pbearne)](https://github.com/pbearne), [Matt Cromwell (@mathetos)](https://github.com/mathetos), [Huzaifa Al Mesbah (@huzaifaalmesbah)](https://github.com/huzaifaalmesbah), [Mehraz Morshed (@mehrazmorshed)](https://github.com/mehrazmorshed), [JuanMa Garrido (@juanmaguitar)](https://github.com/juanmaguitar), [Adam Zieliński (@adamziel)](https://github.com/adamziel), [Weston Ruter (@westonruter)](https://github.com/westonruter), [Jonathan Bossenger (@jonathanbossenger)](https://github.com/jonathanbossenger), [Juan Aldasoro (@juanfra)](https://github.com/juanfra), [Casey Manos (@caseymanos)](https://github.com/caseymanos), [Stephanie Walters (@PypWalters)](https://github.com/PypWalters), [prabinjha (@prabinjha)](https://github.com/prabinjha), [Kurt Rank (@kurtrank)](https://github.com/kurtrank), [Lauren Woodmansee (@lwoodmansee)](https://github.com/lwoodmansee), [Andrew Palmer (@hellobertha)](https://github.com/hellobertha), [Md Aminul Islam (@theaminulai)](https://github.com/theaminulai), [Joe Dolson (@joedolson)](https://github.com/joedolson), [Andrei Zanouski (@andreizanik)](https://github.com/andreizanik), [Om vataliya (@Omcodes23)](https://github.com/Omcodes23), [Greg ZiÃģłkowski (@gziolo)](https://github.com/gziolo), [Sapayth Hossain (@sapayth)](https://github.com/sapayth), [Ryuji Yasukochi (@Ryujiyasu)](https://github.com/Ryujiyasu), [Nischay (@zeus2611)](https://github.com/zeus2611), [Deepak Gupta (@raftaar1191)](https://github.com/raftaar1191), [George Mamadashvili (@Mamaduka)](https://github.com/Mamaduka), [Abdullah Ramzan (@abdullah1908)](https://github.com/abdullah1908), [Dominik Schilling (@ocean90)](https://github.com/ocean90), [Tyler Bailey (@TylerB24890)](https://github.com/TylerB24890), [Nur Mohammad (@nurmhm)](https://github.com/nurmhm), [Andrea Fercia (@afercia)](https://github.com/afercia), [Fellyph Cintra (@fellyph)](https://github.com/fellyph), [Lauri Saarni (@saarnilauri)](https://github.com/saarnilauri), [Jorge Costa (@jorgefilipecosta)](https://github.com/jorgefilipecosta), [Hilay Trivedi (@HILAYTRIVEDI)](https://github.com/HILAYTRIVEDI), [Phil Sola (@phil-sola)](https://github.com/phil-sola), [Estela Rueda (@estelaris)](https://github.com/estelaris).
[Darin Kotter (@dkotter)](https://github.com/dkotter), [Jeffrey Paul (@jeffpaul)](https://github.com/jeffpaul), [Jason Adams (@JasonTheAdams)](https://github.com/JasonTheAdams), [Dovid Levine (@justlevine)](https://github.com/justlevine),[Md Aminul Islam (@theaminuli)](https://github.com/theaminuli), [Felix Arntz (@felixarntz)](https://github.com/felixarntz), [Jonathan Desrosiers (@desrosj)](https://github.com/desrosj), [Mohamed Khaled (@Ref34t)](https://github.com/Ref34t), [Iqbal Hossain (iqbal-web)](https://github.com/iqbal-web), [Lina Wiezkowiak (@linawiezkowiak)](https://github.com/linawiezkowiak), [Rachael Cortellessa (@rachaelcortellessa)](https://github.com/rachaelcortellessa), [James LePage (@Jameswlepage)](https://github.com/Jameswlepage), [Tammie Lister (@karmatosed)](https://github.com/karmatosed), [Aki Hamano (@t-hamano)](https://github.com/t-hamano), [Blake Bertuccelli-Booth (@bbertucc)](https://github.com/bbertucc), [Mujeebu Rahman (@mujuonly)](https://github.com/mujuonly), [Mukesh Panchal (@mukeshpanchal27)](https://github.com/mukeshpanchal27), [Pascal Birchler (@swissspidy)](https://github.com/swissspidy), [Dhruvang Shah (@dhruvang21)](https://github.com/dhruvang21), [Aslam Doctor (@aslamdoctor)](https://github.com/aslamdoctor), [John Parris (@mindctrl)](https://github.com/mindctrl), [James Morrison (@jamesmorrison)](https://github.com/jamesmorrison), [Paul Bearne (@pbearne)](https://github.com/pbearne), [Matt Cromwell (@mathetos)](https://github.com/mathetos), [Huzaifa Al Mesbah (@huzaifaalmesbah)](https://github.com/huzaifaalmesbah), [Mehraz Morshed (@mehrazmorshed)](https://github.com/mehrazmorshed), [JuanMa Garrido (@juanmaguitar)](https://github.com/juanmaguitar), [Adam Zieliński (@adamziel)](https://github.com/adamziel), [Weston Ruter (@westonruter)](https://github.com/westonruter), [Jonathan Bossenger (@jonathanbossenger)](https://github.com/jonathanbossenger), [Juan Aldasoro (@juanfra)](https://github.com/juanfra), [Casey Manos (@caseymanos)](https://github.com/caseymanos), [Stephanie Walters (@PypWalters)](https://github.com/PypWalters), [prabinjha (@prabinjha)](https://github.com/prabinjha), [Kurt Rank (@kurtrank)](https://github.com/kurtrank), [Lauren Woodmansee (@lwoodmansee)](https://github.com/lwoodmansee), [Andrew Palmer (@hellobertha)](https://github.com/hellobertha), [Md Aminul Islam (@theaminulai)](https://github.com/theaminulai), [Joe Dolson (@joedolson)](https://github.com/joedolson), [Andrei Zanouski (@andreizanik)](https://github.com/andreizanik), [Om vataliya (@Omcodes23)](https://github.com/Omcodes23), [Greg ZiÃģłkowski (@gziolo)](https://github.com/gziolo), [Sapayth Hossain (@sapayth)](https://github.com/sapayth), [Ryuji Yasukochi (@Ryujiyasu)](https://github.com/Ryujiyasu), [Nischay (@zeus2611)](https://github.com/zeus2611), [Deepak Gupta (@raftaar1191)](https://github.com/raftaar1191), [George Mamadashvili (@Mamaduka)](https://github.com/Mamaduka), [Abdullah Ramzan (@abdullah1908)](https://github.com/abdullah1908), [Dominik Schilling (@ocean90)](https://github.com/ocean90), [Tyler Bailey (@TylerB24890)](https://github.com/TylerB24890), [Nur Mohammad (@nurmhm)](https://github.com/nurmhm), [Andrea Fercia (@afercia)](https://github.com/afercia), [Fellyph Cintra (@fellyph)](https://github.com/fellyph), [Lauri Saarni (@saarnilauri)](https://github.com/saarnilauri), [Jorge Costa (@jorgefilipecosta)](https://github.com/jorgefilipecosta), [Hilay Trivedi (@HILAYTRIVEDI)](https://github.com/HILAYTRIVEDI), [Phil Sola (@phil-sola)](https://github.com/phil-sola), [Estela Rueda (@estelaris)](https://github.com/estelaris), [Ankit Panchal (@wpankit)](https://github.com/wpankit), [Luca Ricci (@theskinnyghost)](https://github.com/theskinnyghost), [Dharmesh Patel (@iamdharmesh)](https://github.com/iamdharmesh), [Rajat Patel (@Rajat1192)](https://github.com/Rajat1192), [Vishwa Aghera (@vishwaAghera-WPdev)](https://github.com/vishwaAghera-WPdev), [Takshil Kunadia (@Takshil-Kunadia)](https://github.com/Takshil-Kunadia), [Aditya Singh (@Adi-ty)](https://github.com/Adi-ty), [Kaavya Iyer (@CacheMeOwside)](https://github.com/CacheMeOwside), [SÃķren WÞnsch (@Soean)](https://github.com/Soean), [Priyanka Gusani (@PriyankaGusani)](https://github.com/PriyankaGusani), [Kamran Abdul Aziz (@ekamran)](https://github.com/ekamran), [Kunjan Gohel (@gohelkunjan)](https://github.com/gohelkunjan).
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,14 @@ This [Canonical Plugin](https://make.wordpress.org/core/2022/09/11/canonical-plu
* **[Alt Text Generation](docs/experiments/alt-text-generation.md)** - Generates descriptive alt text for images using AI vision models.
* **[Content Classification](docs/experiments/content-classification.md)** – Suggests relevant tags and categories to organize content.
* **[Content Summarization](docs/experiments/summarization.md)** - Summarizes long-form content into digestible overviews.
* **Dashboard Widgets** - AI Status and AI Capabilities widgets, plus framework for registering new ones.
* **[Excerpt Generation](docs/experiments/excerpt-generation.md)** - Generates excerpt suggestions from content.
* **Experiment Framework** - Opt-in system that lets you enable only the AI features you want to use.
* **Guidelines** - Allows abilities to respect site-wide editorial standards.
* **[Image Generation and Editing](docs/features/image-generation.md)** - Create and edit images from post content in the editor, also via the Media Library.
* **[Meta Description Generation](docs/experiments/meta-description.md)** - Generates meta description suggestions and integrates those with various SEO plugins.
* **Multi-Provider Support** - Works with popular AI providers like OpenAI, Google, and Anthropic.
* **[Refine Notes](docs/experiments/refine-notes.md)** - Automatically apply editorial notes to content.
* **[Review Notes](docs/experiments/review-notes.md)** - Reviews post content block-by-block and adds Notes with suggestions for Accessibility, Readability, Grammar, and SEO.
* **Title Generation** - Generates title suggestions from content.

Expand Down
4 changes: 2 additions & 2 deletions ai.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Plugin Name: AI
* Plugin URI: https://github.com/WordPress/ai
* Description: AI features, experiments and capabilities for WordPress.
* Version: 0.7.0
* Version: 0.8.0
* Requires at least: 7.0
* Requires PHP: 7.4
* Author: WordPress.org Contributors
Expand Down Expand Up @@ -43,7 +43,7 @@ function constants(): void {
* Plugin version.
*/
if ( ! defined( 'WPAI_VERSION' ) ) {
define( 'WPAI_VERSION', '0.7.0' );
define( 'WPAI_VERSION', '0.8.0' );
}

/**
Expand Down
2 changes: 1 addition & 1 deletion docs/RELEASE_INSTRUCTIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This issue is for tracking changes for the X.Y.Z release. Target release date:
## [Release steps](https://github.com/WordPress/ai/blob/develop/docs/RELEASE_INSTRUCTIONS.md)

- [ ] Branch: Starting from `develop`, cut a release branch named `release/X.Y.Z` for your changes.
- [ ] Version bump: Bump the version number in `ai.php`, `package-lock.json`, and `readme.txt` if it does not already reflect the version being released. In `ai.php`, ensure you're updating the `WPAI_VERSION` version constant.
- [ ] Version bump: Bump the version number in `ai.php` and `readme.txt` if it does not already reflect the version being released. In `ai.php`, ensure you're updating the `WPAI_VERSION` version constant.
- [ ] Update `@since`: Find all new `@since x.x.x` lines and update those with the new version number in place of `x.x.x`.
- [ ] Changelog: Add/update the changelog in `CHANGELOG.md` and in `readme.txt`.
- [ ] Props: update `CREDITS.md` file with any new contributors, confirm maintainers are accurate.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class Content_Classification extends Abstract_Ability {
/**
* {@inheritDoc}
*
* @since x.x.x
* @since 0.8.0
*/
protected function guideline_categories(): array {
return array( 'site', 'copy' );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class Excerpt_Generation extends Abstract_Ability {
/**
* {@inheritDoc}
*
* @since x.x.x
* @since 0.8.0
*/
protected function guideline_categories(): array {
return array( 'site', 'copy' );
Expand Down
2 changes: 1 addition & 1 deletion includes/Abilities/Image/Alt_Text_Generation.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class Alt_Text_Generation extends Abstract_Ability {
/**
* {@inheritDoc}
*
* @since x.x.x
* @since 0.8.0
*/
protected function guideline_categories(): array {
return array( 'site', 'images' );
Expand Down
2 changes: 1 addition & 1 deletion includes/Abilities/Image/Generate_Image.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class Generate_Image extends Abstract_Ability {
/**
* {@inheritDoc}
*
* @since x.x.x
* @since 0.8.0
*/
protected function guideline_categories(): array {
return array( 'site', 'images' );
Expand Down
2 changes: 1 addition & 1 deletion includes/Abilities/Image/Generate_Image_Prompt.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class Generate_Image_Prompt extends Abstract_Ability {
/**
* {@inheritDoc}
*
* @since x.x.x
* @since 0.8.0
*/
protected function guideline_categories(): array {
return array( 'site', 'images' );
Expand Down
2 changes: 1 addition & 1 deletion includes/Abilities/Meta_Description/Meta_Description.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class Meta_Description extends Abstract_Ability {
/**
* {@inheritDoc}
*
* @since x.x.x
* @since 0.8.0
*/
protected function guideline_categories(): array {
return array( 'site', 'copy' );
Expand Down
Loading
Loading