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_confidenceandwpai_content_classification_candidate_pool_size, to allow more control over Content Classification (#633). - Prompt template extension points, making it easy for others to filter prompts and prompt builders (#770).
- Brought the embedding code over from the PHP AI Client and load that conditionally so those using the AI plugin can start to take advantage of embedding generation (#892, #946).
- Public
WordPress\AI\log_ai_request()API so MCP servers and ability consumers can record requests in the AI Request Log (#914).
Changed
- Updated all meta keys to use the
wpai_prefix instead of justai_. Note this changes the prefix on theai_generated,ai_generated_summaryandai_notemeta so if you are directly using those, update to using thewpai_names (#867). - Updated preferred models to more recent ones for the three default providers (#913).
- Bump WordPress tested-up-to version 7.1 (#934).
- Improve the relevance of category and tag suggestions produced by the
Content Classification experiment (#633). - Editorial Updates now links to the visual revisions screen when reviewing refined content, falling back to the classic revisions screen when visual revisions are unavailable (#861).
- Reordered setting experiments list; grouped linked experiments and sorted editor experiments alphabetically (#871).
- Improved keyboard focus handling when generating, accepting, or dismissing classification suggestions (#873).
- The Abilities Explorer provider filter dropdown now includes custom providers, and the overview statistics count abilities by origin so custom-provider abilities remain in their Core/Plugins/Theme bucket (#884).
- Set focus to the generated title textarea when generating a title (#901).
- The
core/read-usersability now returns collections ordered by display name, A to Z (#948).
Deprecated
- The
AI_Serviceclass and theget_ai_service()helper introduced in 0.2.1 will be removed in the next major release. Neither is used anywhere in the plugin; experiments and abilities callwp_ai_client_prompt()directly (#905). - Filter
wpai_meta_description_result_temperatureis no longer being used and will be removed in the next release (#913).
Removed
- No longer set custom temperature values on any of our requests (#913).
Fixed
- The AI Request Log REST endpoint now registers its
operationfilter parameter, so it appears in the REST schema and a non-string value returns a 400 instead of causing a fatal error (#758). - Inline reply textarea not receiving focus after generating a suggested reply (#877).
- Meta Description suggestions applied on pages and custom post types were lost on save when Yoast SEO was active (#886).
- Improved accessibility and keyboard usability for the request logs provider/model details (#889).
- Improved keyboard and focus handling for the Suggest Reply tone dropdown (#907).
- Synchronized generating state across the inline and modal excerpt generation buttons (#908).
- Ensure caller detection in the encryption experiment properly matches the calling plugin, not the host plugin (#909).
- Synchronized loading state between the sidebar and block toolbar regenerate summary buttons (#912).
- Preserve inline HTML when resizing content (#915).
- Bulk actions no longer re-run when sorting or paginating the list after the action completes (#928).
- Apply editorial updates to blocks that store editable text in the
valueattribute (#930).
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_timeoutandwpai_alt_text_image_max_download_bytes, that allow more fine-grained control when a custom image URL is passed to the Alt Text Generation Ability (GHSA-v2wx-9j88-4rqq). - Removed unnecessary
anycasts to improve TypeScript type safety (#878). - Update plugin screenshots (#882).
- Documented the Key Encryption threat model: what encrypting API keys at rest does and does not protect against, and why the caller-supplied
plugincontext is a namespace-collision guard rather than an isolation boundary between plugins (#909). - The
secrets_accessedandsecrets_{$operation}actions now receive a backtrace-deriveddetected_pluginalongside the caller-assertedpluginvalue, so audit consumers can attribute operations and flag a mismatch (#909). - Ensure our IPv4-in-IPv6 address check works for PHP <8.3 (#952).
- Bump
actions/checkoutfrom 7.0.0 to 7.0.1 (#894). - Bump
actions/setup-nodefrom 6.4.0 to 7.0.0 (#894). - Bump
automattic/vipwpcsfrom 3.0.1 to 3.1.0 (#919). - Bump
concurrentlyfrom 10.0.3 to 10.0.4 (#902). - Bump
fast-urifrom 3.1.3 to 3.1.5 (#904, #927). - Bump
fast-xml-parserfrom 5.10.0 to 5.10.1 (#903). - Bump
ip-addressfrom 10.2.0 to 10.5.0 (#925). - Bump
phpstan/phpstanfrom 2.2.5 to 2.2.8 (#910, #936). - Bump
phpstan/phpstan-deprecation-rulesfrom 2.0.4 to 2.0.5 (#910). - Bump
phpstan/phpstan-phpunitfrom 2.0.17 to 2.0.18 (#879). - Bump
@playwright/testfrom 1.61.1 to 1.62.1 (#920). - Bump
postcssfrom 8.5.19 to 8.5.26 (#926). - Bump
shell-quotefrom 1.8.4 to 1.9.0 (#902). - Bump
softprops/action-gh-releasefrom 3.0.1 to 3.0.2 (#894). - Bump
@wordpress/admin-uifrom 2.4.0 to 2.7.0 (#880, #896, #921). - Bump
@wordpress/buildfrom 0.18.0 to 0.20.0 (#895, #920). - Bump
@wordpress/e2e-test-utils-playwrightfrom 1.50.0 to 1.52.0 (#895, #920). - Bump
@wordpress/prettier-configfrom 4.50.0 to 4.52.0 (#895, #920). - Bump
@wordpress/scriptsfrom 32.6.0 to 33.0.0 (#939). - Bump
@wordpress/uifrom 0.15.1 to 0.19.0 (#880, #896, #921). - Bump
wp-coding-standards/wpcsfrom 3.3.0 to 3.4.1 (#893, #899). - Bump
wp-phpunit/wp-phpunitfrom 7.0.0 to 7.0.2 (#879, #893).
New Contributors
- @azizulhasan made their first contribution in #884
- @obenland made their first contribution in #899
- @milindmore22 made their first contribution in #897
- @murshed made their first contribution in #889
Full Changelog: 1.2.0...1.3.0.
View all items closed in the milestone.