All notable changes to this project will be documented in this file, per the Keep a Changelog standard.
Unreleased - TBD
3.2.0 - 2024-12-18
Prior to updating, please read: this release of ClassifAI rearchitects how the settings pages are built, from a standard PHP approach to using React components. If you've created custom Features or Providers or added your own custom settings, you'll need to update your code to work in this new structure. See our documentation for examples.
Also note that this release bumps the WordPress minimum from 6.1 to 6.5.
- New Feature, Smart 404, which provides the ability to render recommended content on a 404 page, based on the URL path someone is trying to access (props @dkotter, @berkod, @iamdharmesh via #801).
- New Feature, Term Cleanup, which provides the ability to compare all terms from specific taxonomies and provide recommendations for similar terms that can be merged together (props @dkotter, @berkod, @iamdharmesh via #815).
- New feature and service provider onboarding process implemented in React (props @iamdharmesh, @Sidsector9, Kate Rickard, @dkotter, @jeffpaul via #771, #824).
- OpenAI ChatGPT as a Provider for the Descriptive Text Generator Feature (props @dkotter, @jeffpaul, @iamdharmesh via #828).
- Chrome AI as a new text generation Provider, allowing completely on-device AI usage. Note this is still an experimental feature in Chrome (props @dkotter, @jeffpaul, @iamdharmesh, @faisal-alvi via #819).
- New filter,
classifai_openai_moderation_model
, allowing you to change the moderation model (props @dkotter, @iamdharmesh via #811).
- Update the enable helper text for most of the Features to be more descriptive (props @dkotter, @jeffpaul via #807).
- Use the new OpenAI Moderation model,
omni-moderation-latest
, in our moderation Feature (props @dkotter, @iamdharmesh via #811). - Migrate from the Azure AI Vision v3.2 API to the v4.0 API for the Descriptive Text Generator, Image Tags Generator and Image Text Extraction Features (props @dkotter, @jeffpaul, @iamdharmesh via #829).
- Bump WordPress "tested up to" version to 6.7 (props @s3rgiosan, @jeffpaul via #823).
- Bump WordPress minimum from 6.1 to 6.5 (props @s3rgiosan, @jeffpaul via #823).
- Ensure that the Classification Feature suggests or sets terms for enabled taxonomies only (props @iamdharmesh, @dkotter via #805).
- Ensure all strings have translator comments (props @dkotter, @jeffpaul via #806).
- Ensure post type and taxonomy options are filterable via existing filters in the new React settings (props @iamdharmesh, @Sidsector9, @dkotter via #831).
- Addressed all issues raised by running PHPStan (props @dkotter, @iamdharmesh via #808).
- Bump
axios
from 1.6.7 to 1.7.4 (props @dependabot[bot], @dkotter via #792). - Bump
webpack
from 5.90.3 to 5.94.0 (props @dependabot[bot], @faisal-alvi via #796). - Bump
body-parser
from 1.20.2 to 1.20.3,express
from 4.19.2 to 4.21.0,ws
from 7.5.10 to 8.18.0,send
from 0.18.0 to 0.19.0 andserve-static
from 1.15.0 to 1.16.2 (props @dependabot[bot], @dkotter via #809). - Bump
@wordpress/scripts
from 27.9.0 to 30.6.0 (props @dependabot[bot], @dkotter via #830). - Bump
express
from 4.21.0 to 4.21.2,@wordpress/e2e-test-utils-playwright
from 0.26.0 to 1.14.0 and removescookie
(props @dependabot[bot], @dkotter via #832).
- Deprecate the old settings panel in favor of the new React-based approach (props @iamdharmesh, @Sidsector9, @dkotter, @jeffpaul via #771).
- Re-organize the
assets
directory (props @Sidsector9, @iamdharmesh via #804). - Added support for WordPress Playground for easy testing of the plugin (props @dkotter, @jeffpaul via #814).
- Added PHPStan into our workflow with the ability to run that locally and in a GitHub Action (props @dkotter, @iamdharmesh via #808).
- Add the WordPress Plugin Check GitHub Action (props @dkotter, @jeffpaul via #806).
- Update GitHub Action Workflows to be more efficient and ensure all Actions are up-to-date (props @dkotter, @jeffpaul, @iamdharmesh via #810).
- Add plugin banner image to the README; remove table of contents (props @jeffpaul, @dkotter via #798).
3.1.1 - 2024-08-06
- Switch from using the
gpt-3.5-turbo
model to the newgpt-4o-mini
model for any OpenAI text generation requests. Increase our context window from 16,385 tokens to 128,000 tokens (props @dkotter, @iamdharmesh via #785).
- Update a image URLs that no longer exist, fixing an issue with authentication in the Azure AI Vision Provider (props @faisal-alvi, @jamespstyles, @dkotter via #787).
- Ensure we show a proper error notice if the Azure AI Vision Provider fails to authenticate (props @faisal-alvi, @jamespstyles, @dkotter via #787).
3.1.0 - 2024-07-15
- Amazon Polly as a Provider for the Text-to-Speech Feature (props @iamdharmesh, @jeffpaul, @dkotter via #734).
- OpenAI as a Provider for the Text-to-Speech Feature (props @Sidsector9, @iamdharmesh, @dkotter via #747).
- Azure OpenAI Embeddings as a Provider for the Classification Feature (props @iamdharmesh, @dkotter via #764).
- "Generate image" button to media upload components (props @Sidsector9, @jeffpaul, @dkotter via #749).
- Feature to refresh Content Resizing results without closing the results modal (props @Sidsector9, @jeffpaul, @faisal-alvi, @dkotter via #774).
- Filter hook
classifai_ms_computer_vision_scan_image_timeout
to increase image processing timeout (props @Sidsector9, @QAharshalkadu, @dkotter via #754). - New filter
classifai_feature_classification_pre_save_results
that allows you to filter the classification results before they're saved, either modifying those results or running custom save routines (props @dkotter, @iamdharmesh via #762). - New filters allowing the ability to change some of the OpenAI Embedding variables, like model or dimensions (props @dkotter, @iamdharmesh via #758).
- New filter
classifai_normalize_content_before_strip_all_tags
that allows you to filter the content before stripping all tags (props @CacheMeOwside, @dkotter via #775). - New filter
classifai_openai_embeddings_max_terms
to change the number of terms to process per job during Embeddings classification (props @Sidsector9, @dkotter via #779). - Higher timeout for Azure OpenAI Embedding requests (props @dkotter, @iamdharmesh via #776).
- "Testing" section in the
CONTRIBUTING.md
file (props @kmgalanakis, @jeffpaul via #763).
- Update from the
text-embedding-ada-002
to thetext-embedding-3-small
model for the OpenAI Embeddings Provider. Note this requires regenerating all existing embeddings for comparisons to work properly. Also worth mentioning you'll want to check your threshold settings to ensure that works well with these changes, as we're seeing lower threshold scores with this new model (props @dkotter, @iamdharmesh via #758). - When generating embeddings, ensure we chunk our content down and reduce our vector dimensions to 512 (props @dkotter, @iamdharmesh via #758).
- Increase the amount of terms we consider when running comparisons using the OpenAI Embeddings Provider from 500 to 5000 (props @dkotter, @iamdharmesh via #758).
- Allow the Embeddings Provider to be used by Features other than Classification (props @iamdharmesh, @dkotter via #766).
- Hide the Provider's configuration help text when the Provider is already configured (props @kmgalanakis, @Sidsector9, @dkotter via #770).
Select
label is changed toReplace
within Content Resizing suggestions modal (props @Sidsector9, @jeffpaul, @faisal-alvi, @dkotter via #774).- Content Resizing modal title is updated from static to dynamic depending on the type of resizing (props @Sidsector9, @jeffpaul, @faisal-alvi, @dkotter via #774).
- Add the ability to send chunked content in a single request to the Embedding API (props @dkotter, @iamdharmesh via #776).
- Embeddings classification now uses background processing to improve performance. This is done by including the Action Scheduler package (props @Sidsector9, @dkotter via #779).
- Bump WordPress "tested up to" version to 6.6 (props @qasumitbagthariya, @dkotter, @jeffpaul via #751).
- Replaced
lee-dohm/no-response
withactions/stale
to help with closing no-response/stale issues (props @jeffpaul, @dkotter via #751). - Update the
@10up/cypress-wp-utils
package to 0.3.0 (props @dkotter, @jeffpaul via #760).
- Timeout issue with processing
.png
images of large file sizes (props @Sidsector9, @QAharshalkadu, @dkotter via #754). - Ensure the classification admin preview functionality loads for non built-in Providers (props @dkotter, @iamdharmesh via #762).
- Fix some undefined PHP variable warnings when running automatic classification (props @dkotter, @iamdharmesh via #758).
- Ensure the
Excerpt length
setting for the Excerpt Generation Feature can be changed (props @dkotter, @Sidsector9 via #767). - Strip off superscript and subscript tags in content for text to speech generation (props @CacheMeOwside, @Sidsector9, @dkotter via #775).
- Ensure we chunk content correctly, keeping each chunk roughly the same size (props @dkotter, @iamdharmesh via #776).
- Bump
follow-redirects
from 1.15.5 to 1.15.6 andjsdoc
from 3.6.11 to 4.0.2 (props @dependabot[bot], @faisal-alvi, @dkotter via #750). - Bump
webpack-dev-middleware
from 5.3.3 to 5.3.4 andtaffydb
from 2.6.2 to 2.7.3 (props @dependabot[bot], @faisal-alvi via #752). - Bump
express
from 4.18.2 to 4.19.2 (props @dependabot[bot], @faisal-alvi via #753). - Bump
braces
from 3.0.2 to 3.0.3 andws
from 7.5.9 to 7.5.10 (props @dependabot[bot], @dkotter via #780).
3.0.1 - 2024-03-07
- Ensure we only pass in array data to our
merge_settings
method (props @dkotter, @ajaxthemestudios, @peterwilsoncc via #733). - Handle scenario where non-array data is passed into our descriptive text generator feature (props @dkotter, @ajaxthemestudios, @peterwilsoncc via #733).
- Address a fatal error that occurs if
composer install
hasn't been run (props @dkotter, @peterwilsoncc via #740). - Ensure we properly account for
null
values when merging our saved settings with our default settings (props @dkotter, @peterwilsoncc via #741).
3.0.0 - 2024-02-29
Note that this is a major release of ClassifAI that restructures most of the codebase and will have some breaking changes. If you're extending ClassifAI in any way, please ensure you fully test those integrations prior to running this update on production. For more details on what is changing, see the migration guide.
- New Moderation Feature that utilizes the OpenAI Moderation API to moderate comments (props @kirtangajjar, @dkotter, @Sidsector9 via #531).
- Added the option to use Google's Gemini API as a Provider for the Title Generation, Excerpt Generation and Content Resizing Features (props @iamdharmesh, @dkotter via #700).
- Added the option to use Azure OpenAI as a Provider for the Title Generation, Excerpt Generation and Content Resizing Features (props @dkotter, @jeffpaul, @iamdharmesh via #716).
- Role and user-based access control for all Features (props @iamdharmesh, @Sidsector9 via #635).
- Ability to preview which terms will be added before they get added when using the Embeddings provider (props @dkotter, @iamdharmesh via #709).
- Show error message if generating excerpts or titles fails in the Classic Editor (props @dkotter, @faisal-alvi via #688).
- Tool to automatically migrate settings from the old settings structure to the new feature-first settings structure (props @Sidsector9, @iamdharmesh, @qasumitbagthariya, @dkotter via #711).
- Migration guide for the feature-first refactoring (props @iamdharmesh, @dkotter via #726).
- Repo Automator GitHub Action to automate repo operations (props @iamdharmesh, @dkotter via #681).
- Major refactoring of the plugin to a feature-first architecture (props @Sidsector9, @dkotter via #611).
- Update the Azure AI Vision Image Analyze API from v3.0 to v3.2 and the Azure AI Vision Smart Cropping API from v3.1 to v3.2. Note that we recommend lowering the threshold values for the Descriptive Text Generator Feature to 55% for best results (props @kmgalanakis, @dkotter, @sksaju, @iamdharmesh via #559).
- Update from using DALL·E 2 to using DALL·E 3 in our Image Generation Feature (props @dkotter, @jeffpaul, @iamdharmesh via #717).
- Refactor ClassifAI onboarding to work with the new feature-first refactoring (props @iamdharmesh, @Sidsector9 via #642).
- Ensure the Classification functionality works the same for all Providers (props @dkotter, @iamdharmesh via #709).
- Introduce a filter to add new arguments to the Image Generation REST route, instead of registering that route twice (props @iamdharmesh, @dkotter via #727).
- If on a multisite install, when handling user access based on role, if a Super Admin does not have a specific role on a site, treat that user as an administrator (props @dkotter, @jeffpaul, @gsarig, @iamdharmesh via #689).
- Remove the "Enable role-based access" and "Enable user-based access" settings options and instead set those to be enabled by default (props @iamdharmesh, @dkotter, @jeffpaul via #692).
- Update minimum node version to 20 (props @Sidsector9, @dkotter via #722).
- Updated E2E tests to work with the new feature-first refactoring (props @Sidsector9, @dkotter via #653).
- Ensure the classification popup works after feature-first refactoring (props @faisal-alvi, @dkotter, @Sidsector9 via #634).
- Ensure we only run image updates once (props @dkotter, @Sidsector9, @sksaju via #677).
- Ensure the Classification preview works as expected after feature-first refactoring (props @dkotter, @QAharshalkadu, @Sidsector9 via #679).
- Ensure all
WP_CLI
commands work after the feature-first refactoring (props @Sidsector9, @dkotter via #682). - Ensure the jQuery UI Dialog CSS is loaded properly (props @dkotter, @faisal-alvi via #687).
- Ensure the classification button has proper bottom spacing (props @dkotter, @QAharshalkadu, @faisal-alvi via #694).
- Load the dashicon font when the Text to Speech block is used to ensure icons display (props @dkotter, @QAharshalkadu, @iamdharmesh via #695).
- Ensure the Text to Speech block is rendered for non-logged in users (props @dkotter, @QAharshalkadu, @iamdharmesh via #695).
- Ensure the IBM Watson NLU credentials toggle link works properly in the ClassifAI onboarding (props @iamdharmesh, @dkotter via #697).
- Ensure the connection status shows properly in the ClassifAI onboarding (props @Sidsector9, @QAharshalkadu, @dkotter via #702).
- Ensure the "Extract text from PDF" row action works properly in the media list table view (props @iamdharmesh, @qasumitbagthariya, @dkotter via #706).
- Fix fatal error if both the Classification Feature and Moderation Features are active (props @dkotter, @QAharshalkadu, @iamdharmesh via #709).
- Ensure the stand-alone Generate Image page works if the Media Library is loaded in list mode (props @dkotter, @qasumitbagthariya, @Sidsector9 via #712).
- Subscriber from the list of allowed roles (props @dkotter, @ankitguptaindia, @Sidsector9 via #690).
AccessControl
class as it is no longer in use after the feature-first refactoring (props @iamdharmesh, @dkotter via #680).- Type declaration from the
attachment_is_pdf
parameter (props @iamdharmesh, @peterwilsoncc, @dkotter via #719). - Eliminate all dead code that is no longer needed after the feature-first refactoring (props @Sidsector9, @dkotter via #678).
- Show deprecation notice for the Azure AI Personalizer provider, as this will be removed in a coming release (props @dkotter, @jeffpaul, @iamdharmesh via #698).
- Protect against potential prompt injection when using OpenAI's ChatGPT (props @iamdharmesh, @dkotter via #683).
- Bump
ip
from 1.1.8 to 1.1.9 (props @dependabot[bot], @iamdharmesh via #721).
2.5.1 - 2024-01-11
- Switch from using the Completions API to the Models API to verify credentials (props @dkotter, @jeffpaul, @iamdharmesh via #654).
- Update
10up/phpcs-composer
to version 3.0.0 (props @dkotter, @faisal-alvi via #641).
- Ensure that the "Classify" row/bulk action is visible only to users who have access to it (props @iamdharmesh, @ankitguptaindia, @dkotter via #647).
- Check for the
default
array key before we access it (props @dkotter, @Sidsector9 via #650). - Address all new PHPCS issues (props @dkotter, @faisal-alvi via #641).
- Bump
tj-actions/changed-files
from 37 to 41 (props @dependabot[bot], @peterwilsoncc via #649). - Bump
follow-redirects
from 1.15.3 to 1.15.4 (props @dependabot[bot], @dkotter via #657).
2.5.0 - 2023-12-13
Note that this release bumps the WordPress minimum from 5.8 to 6.1.
- Ability to control access to each feature based on user role or by individual users, allowing users to opt out of features they don't want (props @iamdharmesh, @berkod, @dkotter via #606).
- New manual classification mode that allows you to easily select which AI suggested terms you want to add (props @faisal-alvi, @berkod, @dkotter via #609).
- Enable/disable toggle option for the "Classify content", "Text to Speech" and "Recommended content" features (props @iamdharmesh, @berkod, @dkotter via #614).
- New setting option for the IBM Watson classification feature to allow you to classify content within existing terms only (props @iamdharmesh, @jeffpaul, @faisal-alvi, @berkod, @dkotter via #620).
- Threshold settings added for taxonomies in the OpenAI Embeddings classification feature (props @faisal-alvi, @timatron, @berkod, @dkotter via #621).
- Ability to preview the suggested terms for the OpenAI Embeddings classification feature (props @faisal-alvi, @jeffpaul, @berkod, @dkotter via #622).
- Post autosave when a generated title is used or when a paragraph of text is resized to allow for Revisions-based rollbacks (props @iamdharmesh, @berkod, @dkotter via #626).
- Bump WordPress minimum from 5.8 to 6.1 (props @faisal-alvi, @berkod, @dkotter via #609).
- Increase our max content length for any interactions with ChatGPT (props @dkotter, @ravinderk via #617).
- Ensure that when using the manual classification mode, all terms will be considered, not just the first 100 (props @faisal-alvi, @dkotter via #638).
- Ensure that the ClassifAI panel only appears when the related feature is enabled (props @iamdharmesh, @dkotter via #628).
- More accurate token counts when trimming content (props @dkotter, @faisal-alvi via #616).
- Ensure that updating the "Recommended Content Block" settings works correctly (props @iamdharmesh, @faisal-alvi, @dkotter via #625).
- Bump
axios
from 0.25.0 to 1.6.2 and@wordpress/scripts
from 26.6.0 to 26.18.0 (props @dependabot[bot], @dkotter via #629).
2.4.0 - 2023-11-09
- Support for modifying prompts from the admin settings page (props @iamdharmesh, @jeffpaul, @ravinderk, @dkotter via #594).
- Support for setting multiple prompts for each feature that supports prompts (props @ravinderk, @iamdharmesh, @berkod, @dkotter via #602).
- New filters added to allow developer control over all requests made to OpenAI (props @faisal-alvi, @jeffpaul, @berkod, @dkotter via #604).
- Documentation updates in regards to data retention (props @jeffpaul, @dkotter via #582).
- Example snippet to make taxonomies private to the developer docs (props @theskinnyghost, @dkotter via #583).
- GitHub Action summary for Cypress E2E checks (props @faisal-alvi, @iamdharmesh, @jeffpaul, @dkotter via #578).
- Ensure the default prompts in ClassifAI show as the first prompt in our settings and cannot be removed or edited (props @dkotter, @jeffpaul, @ravinderk via #610).
- Fix multiple typos across the codebase (props @parikshit-adhikari, @shresthasurav, @jeffpaul via #603, #605).
- Use
get_asset_info
across the enqueuing of all our dependencies (props @ravinderk, @jeffpaul, @berkod, @dkotter via #608). - Bump WordPress "tested up to" version to 6.4 (props @dkotter via #613).
- Ensure all hooks show in our documentation (props @faisal-alvi, @jeffpaul, @berkod, @dkotter via #604).
- Bump
@cypress/request
from 2.88.12 to 3.0.0 andcypress
from 12.14.0 to 13.1.0 (props @dependabot[bot], @dkotter via #576). - Bump
postcss
from 8.4.24 to 8.4.31 (props @dependabot[bot], @dkotter via #584). - Bump
@babel/traverse
from 7.22.4 to 7.23.2 (props @dependabot[bot], @dkotter via #601).
2.3.0 - 2023-09-05
Note that this release bumps the WordPress minimum from 5.7 to 5.8.
- Ability to resize (expand or condense) text content using OpenAI's ChatGPT API (props @Sidsector9, @dkotter, @jeffpaul, @jakemgold via #532).
- Ability to generate excerpts when using the Classic Editor (props @jamesmorrison, @ravinderk, @dkotter via #491).
- Ability to generate images directly in the Media Library, instead of at a post level, by going to
Media > Generate Images
(props @phpbits, @dkotter via #524). - Ability to generate images within the Inserter Media tab. As of WordPress 6.3, this requires the latest version of the Gutenberg plugin to work. Also note that image generation requests are sent as soon as you are done typing so you may end up making multiple requests as you type out your prompt (resulting in charges for each request), depending on the typing speed (props @dkotter, @jeffpaul, @peterwilsoncc via #535).
- New display option to control the display of the Text-to-Speech audio controls on the front-end (props @joshuaabenazer, @dkotter via #549).
- Initial integration with the new Command Palette API (props @dkotter, @iamdharmesh, @ravinderk via #536).
- New
POST
endpoints for title and excerpt generation (props @phpbits, @dkotter via #525). - New filter,
classifai_chatgpt_allowed_roles
, to allow ChatGPT image role settings to be overridden (props @bjorn2404, @phpbits, @dkotter via #459). - New filter,
classifai_openai_dalle_allowed_image_roles
, to allow DALL·E image role settings to be overridden (props @bjorn2404, @phpbits, @dkotter via #459). - New filter,
classifai_openai_chatgpt_{$feature}
, to allow granular access control for ChatGPT title and excerpt generation (props @bjorn2404, @phpbits, @dkotter via #459). - New filter,
classifai_openai_dalle_enable_image_gen
, to allow granular access control for DALL·E image generation (props @bjorn2404, @phpbits, @dkotter via #459).
- Bump WordPress minimum from 5.7 to 5.8 (props @Sidsector9 via #532).
- Bump WordPress "tested up to" version to 6.3 (props @dkotter, @ravinderk via #556).
- Utilize the new
POST
endpoints for title and excerpt generation, ensuring most recent content is always used (props @phpbits, @dkotter via #525). - Update the IBM Watson NLU API to the
2022-08-10
version (props @dkotter, @ravinderk via #543). - Update the prompt we send to OpenAI that is used to generate excerpts to try and ensure the excerpts generated pair well with the title of the content (props @dkotter, @Sidsector9 via #544).
- Update our title generation prompt to use a
system
message (props @dkotter, @Sidsector9 via #545). - Better error handling for environments that don't match our minimum PHP version (props @rahulsprajapati, @dkotter via #546).
- Modify the audio generation process for the TTS feature. Audio generation is enabled by default but will be disabled automatically once audio has been generated (props @joshuaabenazer, @dkotter via #549).
- Upgrade the Plugin Update Checker library to from 4.13 to 5.1 (props @dkotter, @ravinderk via #555).
- Update the references of the renamed Computer Vision API to Azure AI Vision (props @kmgalanakis, @dkotter via #560).
- Update the Release GitHub Action workflow files to fix an issue where release archives were not being attached (props @iamdharmesh, @dkotter via #565).
- Ensure we define a class property before using it to avoid PHP deprecation notices (props @dkotter, @ankitguptaindia, @Sidsector9 via #548).
- Prevent Text-to-Speech audio markup leakage into places using excerpts (like archives) (props @joshuaabenazer, @dkotter via #558).
- Make sure our E2E tests work properly on WordPress 6.3 (props @dkotter, @iamdharmesh via #562).
- Add a longer delay around image generation in the Media Inserter (props @Sidsector9, @dkotter via #569).
- Bump
word-wrap
from 1.2.3 to 1.2.4 (props @dependabot[bot] via #542). - Bump
tough-cookie
from 2.5.0 to 4.1.3 and@cypress/request
from 2.88.11 to 2.88.12 (props @dependabot[bot] via #563).
2.2.3 - 2023-07-13
- Support post classification via OpenAI Embeddings in the Classic Editor (props @phpbits, @dkotter via #515).
- Support Text-to-Speech functionality in the Classic Editor (props @dkotter, @iamdharmesh via #518).
- Custom
WP-CLI
command,transcribe_audio
, to generate audio transcriptions in bulk (props @dkotter, @Sidsector9 via #514). - Custom
WP-CLI
command,generate_excerpt
, to generate excerpts in bulk (props @dkotter, @iamdharmesh via #516). - Custom
WP-CLI
command,embeddings
, to classify posts via OpenAI Embeddings in bulk (props @phpbits, @dkotter via #521). - Ability to generate excerpts in bulk using the
Bulk actions
dropdown (props @dkotter, @Sidsector9 via #523). - Ability to generate excerpts on an individual item from the All Posts screen (props @dkotter, @Sidsector9 via #523).
- New filter,
classifai_pre_render_post_audio_controls
, that provides ability to override Text-to-Speech audio player controls markup (props @joshuaabenazer, @dkotter via #528). - Provide sample copy that can be added to a site's Privacy Policy, letting site visitors know AI tools are in use (props @dkotter, @jeffpaul via #529).
- Add singular labels when a single image is selected for generation (props @jamesmorrison, @dkotter via #482).
- Ensure we don't throw any JS errors in our image generation file (props @dkotter, @ravinderk via #522).
- Update Text-to-Speech helper text (props @dkotter, @jeffpaul via #519).
2.2.2 - 2023-06-28
- Support for generating post titles in the Classic Editor using OpenAI's ChatGPT API (props @Sidsector9, @dkotter via #506).
- New utility method to retrieve all post statuses (props @Sidsector9, @dkotter via #507).
- Optimized calls to the Microsoft Azure Text to Speech API (props @joshuaabenazer, @ravinderk, @dkotter via #487).
- When the Text to Speech option is toggled off, hide the Text to Speech audio button on the single post level (props @joshuaabenazer, @ravinderk, @dkotter via #494).
- Update instructions on setting the proper endpoint URL for Azure Text to Speech (props @dkotter, @ocean90 via #512).
- Ensure any edits made to generated titles persist when that title is inserted (props @dkotter, @Sidsector9 via #509).
- Ensure we show all post statuses in our settings instead of just the core post ones (props @Sidsector9, @dkotter via #507).
2.2.1 - 2023-06-08
- Ability to generate images in the Classic Editor (props @dkotter, @ravinderk via #471).
- Ability to trigger Text-to-Speech generation in bulk (props @dkotter, @ravinderk via #477).
- Ability to trigger Text-to-Speech generation on an individual item from the post lists screen (props @dkotter, @ravinderk via #477).
- Custom
WP-CLI
command,text_to_speech
, that can be used to generate Text-to-Speech data in bulk (props @dkotter, @ravinderk via #478).
- Tweak the prompt that is used to generate excerpts (props @dkotter, @ravinderk via #468).
- Update the Dependency Review GitHub Action (props @jeffpaul, @dkotter via #464).
- Resolve formatting issues in javascript files (props @ravinderk, @dkotter via #461).
- Correctly add terms to posts generated by Watson content classifiers (props @ravinderk, @iamdharmesh, @dkotter via #462).
- Ensure we properly output data on the Site Health screen without causing errors (props @dkotter, @ravinderk via #466).
- Ensure the prompt we send to DALL·E never exceeds 1000 characters (props @dkotter, @ravinderk via #467).
- Ensure quotes aren't added around generated excerpts (props @dkotter, @ravinderk via #468).
- Remove extra slash from asset URLs (props @dkotter, @ravinderk via #469).
- Add proper docblocks to all custom hooks to ensure those show properly in our documentation site (props @dkotter, @jeffpaul via #470).
- Bumped various dependencies (props @jeffpaul, @dkotter, @ravinderk via #476).
- Bump
atob
from 1.1.3 to 2.1.2 andsvg-react-loader
from 0.4.0 to 0.4.6 (props @dependabot[bot] via #481).
2.2.0 - 2023-05-22
- Convert text content into audio and output a "read-to-me" feature on the front-end to play this audio using Microsoft Azure's Text to Speech API (props @Sidsector9, @iamdharmesh, @ravinderk, @jeffpaul, @dkotter, @pixeldevsio via #403).
- Classify content into existing taxonomy structure using OpenAI's Embeddings API (props @dkotter, @iamdharmesh, @Sidsector9, @jeffpaul via #437).
- Create transcripts of audio files using OpenAI's Whisper API (props @dkotter, @iamdharmesh via #451).
- Generate SEO-friendly titles using OpenAI's ChatGPT API (props @dkotter, @iamdharmesh, @jeffpaul via #452).
- Standardize on how we determine if a Provider is configured (props @dkotter, @iamdharmesh, @benlk via #455).
- Avoid extra API requests to the IBM Watson NLU endpoint (props @dkotter, @iamdharmesh, @benlk via #455).
- Ensure the
{$this->menu_slug}_providers
filter works as expected when used to remove Providers (props @dkotter, @iamdharmesh via #456).
2.1.0 - 2023-05-02
Note that this release moves the ClassifAI settings to be nested under Tools instead of it's own menu.
- New user experience when onboarding, making it easier to get ClassifAI setup and configured (props @iamdharmesh, @dkotter, @jeffpaul, @ryanwelcher, @mehidi258 via #411).
- Add proper attribution to generated images (props @derweili, @dkotter via #438).
- Add the image generation prompt as
alt
text to imported generated images (props @jeffpaul, @dkotter via #441).
- Address a PHP notice that is thrown when editing a non-image attachment (props @av3nger, @dkotter, @peterwilsoncc via #425).
- Ensure generated images are assigned properly to their post (props @derweili, @dkotter via #438).
- Remove use of deprecated
FILTER_SANITIZE_STRING
constant (props @Sidsector9, @dkotter via #442). - Ensure proper CSS is always loaded based on the enabled features (props @jeffpaul, @dkotter via #441).
- Removed a duplicate filter (props @benlk, @dkotter via #444).
- Buttons to generate descriptive text and image tags are no longer displayed when those settings are disabled in Microsoft Azure Image Processing settings (props @benlk, @dkotter via #445).
- Use new
get_asset_info
utility for all of our enqueues (props @Spoygg, @dkotter via #421). - Change how we import dependencies in our JS files (props @Spoygg, @dkotter via #421).
- Tweaks to the image generation UI (props @mehidi258, @jeffpaul, @dkotter via #441).
- When attempting to use Azure to parse a too-large document, the error log message will include the document size and the maximum document size (props @benlk, @dkotter via #443).
2.0.0 - 2023-04-04
- Automatic generation of excerpts using OpenAI's ChatGPT API (props @dkotter, @zamanq, @jeffpaul, @iamdharmesh, @ravinderk via #405, #408).
- Generate images using OpenAI's DALL·E API (props @dkotter, @iamdharmesh, @jeffpaul, @joemcgill via #419).
- Ability to set
alt
text as the image caption and image description (props @Sidsector9, @peterwilsoncc, @jeffpaul via #374). - Support for WordPress auto-updates for sites with a valid ClassifAI registration key (props @TylerB24890, @dkotter via #400).
- Composer installation instructions added to the
README
(props @johnwatkins0, @dkotter via #395).
- Implement check to prevent requesting a PDF scan on a document which has a scan already in progress (props @TylerB24890, @peterwilsoncc via #401).
- Ensure our E2E and eslint tests pass (props @dkotter, @jeffpaul via #406, #407).
- Removed some unnecessary code in the preview feature (props @dkotter, @Sidsector9 via #402).
- Remove unnecessary caching in our lint action (props @szepeviktor, @dkotter via #409).
- Update usage of
get_plugin_settings
to new function signature (props @Spoygg, @dkotter via #418). - Cypress integration migrated to 11+ (props @jayedul, @cadic via #385).
- Bump WordPress "tested up to" version to 6.2 (props @ggutenberg, @ravinderk via #420).
- Ensure custom REST endpoints have proper user permission checks (props @dkotter, @peterwilsoncc via GHSA-fxxq-j2vx-j99r).
- Bump
http-cache-semantics
from 4.1.0 to 4.1.1 (props @dependabot[bot] via #393). - Bump
webpack
from 5.75.0 to 5.76.0 (props @dependabot[bot] via #410).
1.8.1 - 2023-01-05
Note that this release bumps the WordPress minimum from 5.6 to 5.7 and the PHP minimum from 7.2 to 7.4.
- New "Build release zip" workflow (props @iamdharmesh, @peterwilsoncc via #390).
- Bump WordPress minimum from 5.6 to 5.7 (props @zamanq, @Sidsector9 via #376).
- Bump PHP minimum from 7.2 to 7.4 (props @zamanq, @Sidsector9 via #376).
- Bump WordPress "tested up to" version to 6.1 (props @iamdharmesh, @cadic via #381).
- Bump
decode-uri-component
from 0.2.0 to 0.2.2 (props @dependabot[bot] via #383). - Bump
simple-git
from 3.10.0 to 3.15.1 (props @dependabot[bot] via #384).
1.8.0 - 2022-09-30
Note that this release bumps the PHP minimum from 7.0 to 7.2.
- Added: "Recommended Content" Block powered by Azure Personalizer (props @iamdharmesh, @jeffpaul, @dkotter, @Sidsector9 via #343).
- "Classify Post" button in the Block Editor sidebar to process existing content (props @iamdharmesh, @thrijith, @dkotter, @dinhtungdu, @jeffpaul, @peterwilsoncc via #366).
- Language Processing previewer now only loads properly within the Language Processing section (props @Sidsector9, @iamdhamesh, @cadic via #361).
- Generate, Regenerate, and Scan buttons now work for newly uploaded media (props @iamdharmesh, @jeffpaul, @dkotter, @cadic via #364).
- Admin JavaScript enqueue issues (props @iamdharmesh, @cadic via #372).
- Upgrade the Plugin Update Checker library,
yahnis-elsts/plugin-update-checker
, from 4.6 to 4.13 (props @dkotter, @Sidsector9 via #365).
- Bump
got
from 10.7.0 to 11.8.5 (props @dependabot[bot], @iamdharmesh via #371). - Bump
@wordpress/env
from 4.9.0 to 5.3.0 (props @dependabot[bot], @iamdharmesh via #371).
1.7.3 - 2022-07-28
Note that this release bumps the WordPress minimum from 5.0 to 5.6.
- Scan and Smart Crop bulk actions have been added for media files, allowing you to bulk process existing content (props @ShahAaron, @dinhtungdu, @peterwilsoncc via #253).
- Toggle to allow enabling/disabling language processing when content is updated (props @iamdharmesh, @jeffpaul, @dkotter via #329).
- Preview for Language Processing settings changes (props @Sidsector9, @iamdharmesh, @jeffpaul via #351).
- Bump our minimum supported version of WordPress to 5.6 (props @iamdharmesh, @jeffpaul, @dkotter via #329).
- Ensure we support relative image paths (props @Sidsector9, @iamdharmesh, @dinhtungdu via #350).
- Bump
terser
from 5.14.1 to 5.14.2 (props @dependabot via #332).
1.7.2 - 2022-06-27
classifai_should_register_save_post_handler
filter; allows modifying the registration conditions for theSavePostHandler
class (props @s3rgiosan, @dkotter via #341).- More robust PHP testing, including PHP 8 compatibility (props @dkotter, @peterwilsoncc via #328).
- End-to-end testing with Cypress (props @iamdharmesh, @faisal-alvi via #334).
- Bump WordPress version "tested up to" 6.0 (props @peterwilsoncc, @jeffpaul via #346).
- Updates in
Build Release
GitHub action (props @iamdharmesh, @dinhtungdu via #347).
- Removed the
pot
file andvendor
directory from being version controlled (props @dinhtungdu, @iamdharmesh via #212).
- Hook docs deployment (props @iamdharmesh, @Sidsector9 via #345).
1.7.1 - 2022-04-25
classifai_post_statuses
filter; allows post statuses for content classification to be changed as required but would apply to all post types (props @jamesmorrison, @dkotter via #310).classifai_post_statuses_for_post_type_or_id
filter; allows post statuses for content classification to be changed as required based on post type / post ID (props @jamesmorrison, @dkotter via #310).- Implement
can_register()
method forClassifai/Providers/Watson/NLU.php
(props @thrijith via #313). - Notice for deprecated IBM Watson
watsonplatform.net
NLU API endpoint (props @rahulsprajapati, @jeffpaul via #320). - CodeQL Analaysis code scanning and Dependency security scanning actions (props @jeffpaul via #314, #336).
- Bump WordPress "tested up to" version 5.9 (props @s3rgiosan, @jeffpaul via #327).
- Normalize copy around Image Processing functions (props @s3rgiosan, @iamdharmesh, @jeffpaul, Delfina Hoxha, @myBCN, @ajmaurya99 via #325).
- Port WP-CLI commands documentation into the ClassifAI Developer Documentation site (props @ActuallyConnor, @jeffpaul, @faisal-alvi via ).
- Unused
check_license_key
method fromClassifai/Providers/Watson/NLU.php
(props @thrijith via #313). - Remove unused
ClassifaiCommand->gc()
method,ServicesManager->can_register()
method, and AWS ProviderComprehend
class (props @rahulsprajapati, @jamesmorrison, @dinhtungdu, @jeffpaul, @dkotter via #317).
- Individual "Classify" action per post type (props @mustafauysal, @cadic via #311).
- Missing PHPUnit Polyfills library by adding
yoast/phpunit-polyfills:^1.0.0
dev package (props @rahulsprajapati via #319).
- Bump
minimist
from 1.2.5 to 1.2.6 (props @dependabot via #332).
1.7.0 - 2021-08-26
- Automated Optical Character Recognition (OCR) scanning of multi-page PDF files adding text content to media description field (props @dinhtungdu, @dkotter, @phpbits via #282).
- ComputerVision::reset_settings() method (props @ActuallyConnor, @dinhtungdu via #264).
Update URI
header to ensure only legitimate ClassifAI updates are applied to this install (props @jeffpaul via #290).- Issue management automation via GitHub Actions (props @jeffpaul via #294).
- Update WP CLI command docs (props @jeffpaul via #259).
- Update WPCS configuration from 1.3.1 to 1.3.2 (props @dinhtungdu via #291).
- Updated plugin icon, added banner (props @blancahong via #293).
- Bump WordPress version "tested up to" 5.8 (props @phpbits, @barneyjeffries via #302).
- WordPress 5.6
array_intersect_key
error (props @phpbits, @dkotter, @dinhtungdu via #263). - WordPress 5.7 OCR block compatibility issue (props @dinhtungdu, @helen via #275).
- Update hooks priority for
wp_generate_attachment_metadata
to work with cloud storage providers (props @thrijith via #271). - Move
classifai_generate_image_alt_tags_source_url
filter to helper function (props @thrijith via #271). - Use
get_modified_image_source_url
where rescanning is done local file (props @thrijith via #271). - Updates to pass VIPCS check (props @dinhtungdu, @dkotter, @jeffpaul via #287).
- JavaScript error in Block Editor when ClassifAI has not been set up correctly (props @junaidbhura, @dinhtungdu via #286).
- Ensure Image Processing buttons in the media modal work when editing posts (props @dinhtungdu, @helen via #295).
- Hides the Scan Text checkbox field on the media edit page when OCR is disabled (props @Sidsector9, @myBCN, @jeffpaul via #299).
- Issues with error messages not being displayed for 'Detect Text' feature (props @Sidsector9 via #300).
- Bump
ini
from 1.3.5 to 1.3.7 (props @dependabot via #262). - Bump
elliptic
from 6.5.3 to 6.5.4 (props @dependabot via #269). - Bump
y18n
from 4.0.0 to 4.0.1 (props @dependabot via #273). - Bump
ssri
from 6.0.1 to 6.0.2 (props @dependabot via #274). - Bump
lodash
from 4.17.20 to 4.17.21 (props @dependabot via #276). - Bump
hosted-git-info
from 2.8.8 to 2.8.9 (props @dependabot via #277). - Bump
browserslist
from 4.14.5 to 4.16.6 (props @dependabot via #283). - Bump
path-parse
from 1.0.6 to 1.0.7 (props @dependabot via #301).
1.6.0 - 2020-11-02
- Automated Optical Character Recognition (OCR) scanning of screenshots and other imagery with
aria-describedby
semantic markup (props @dkotter, @dinhtungdu, @helen, @jeffpaul via #228) - Ability to smart crop existing images in WP Admin (props @ShahAaron, @dinhtungdu, @rickalee via #252)
- WP-CLI
crop
command to smart crop images (props @dinhtungdu, @dkotter, @johnwatkins0 via #236, #254) - Better error handling for manual scanning of alt text or image tags (props @dkotter, @dinhtungdu via #231)
classifai_generate_image_alt_tags_source_url
filter to allow overriding of the image URL withingenerate_image_alt_tags()
(props @petenelson, @dinhtungdu via #217)
- Updated from v1.0 to v3.0 of Azure Computer Vision Analyze API (props @dkotter, @dinhtungdu, @jeffpaul via #244, #255)
- Don't default to the
post
post type, if no other post types are selected for Language Processing (props @dkotter via #247) - Don't process items if no Language Processing features are enabled (props @dkotter via #249)
- Image Processing metabox copy (props @ActuallyConnor, @ryanwelcher, @jeffpaul via #214)
- Update admin menu icon color (props @helen via #258)
- Bump WordPress version "tested up to" 5.5.1 (props @dkotter, @jeffpaul via #237)
- Documentation, linting, and testing updates (props @ryanwelcher, @jeffpaul, @helen, @dinhtungdu via #204, #215, #226, #239, #251)
Media
as option to select in Language Processing as Attachments are never processed (props @dkotter, @ShahAaron, @dinhtungdu, @jeffpaul via #245)
- Smart cropping results not as expected (props @dinhtungdu, @oscarssanchez, @ShahAaron, @jeffpaul via @229)
- Sending largest image size possible when initiating a scan from the single edit screen (props @dkotter via #235)
- CDN image storage compatibility issue (props @ShahAaron, @jeffpaul via #250)
- Manual image scanning functions if automatic scanning is disabled (props @dkotter via #233)
- Issue where scan/rescan buttons did not appear in image modal upon first load (props @dkotter via #256)
- Prevent PHP notice if IBM Watson credentials are empty (props @barryceelen, @dinhtungdu, @adamsilverstein via #206)
- Azure Computer Vision credentials saving and notification (props @barryceelen, @dinhtungdu via #207)
permission_callback
error on WordPress 5.5 (props @phpbits, @dkotter, @jeffpaul via #219)
- Bump
acorn
from 6.3.0 to 6.4.1 (props @dependabot via #203) - Bump
lodash
from 4.17.15 to 4.17.19 (props @dependabot via #216) - Bump
elliptic
from 6.5.1 to 6.5.3 (props @dependabot via #218) - Bump
yargs-parser
from 13.1.1 to 13.1.2 (props @dependabot via #223)
1.5.1 - 2020-03-06
- Unit test coverage (props @ryanwelcher via #198)
readme.txt
file to ensure plugin details surface in WP Admin (props @jeffpaul via #196)
- Remove references to obsolete
process_image
method in favor of new functions (props @johnwatkins0, @helen via #195) - Hook documentation generator (@helen via #191)
1.5.0 - 2020-3-04
- Smart image cropping via Microsoft Azure Computer Vision (props @johnwatkins0, @Ritesh-patel, @daveross @rickalee, @dinhtungdu via #149)
- Process Existing Images with Microsoft Azure Computer Vision (props @ryanwelcher, @dinhtungdu, @jeffpaul via #135)
- Bulk processing for posts, pages, and images (props @dinhtungdu, @ryanwelcher, @jeffpaul via #178)
- WP-CLI command to bulk process images (props @dinhtungdu, @eflorea, @ryanwelcher, @jeffpaul via #177)
- ClassifAI settings and result of latest service provider requests to Site Health Info screen (props @dinhtungdu, @jeffpaul via #180)
- ClassifAI icon to WP Admin menu (props @dinhtungdu, @JackieKjome, @jeffpaul via #173)
- WP Acceptance end-to-end acceptance tests (props @dinhtungdu, @adamsilverstein, @ryanwelcher, @jeffpaul via #179)
- Bump WordPress version "tested up to" 5.3 (props @ryanwelcher via #160)
- IBM Watson credentials settings UX (props @dinhtungdu, @ryanwelcher, @helen via #175)
- PHP version error message when attempting to install ClassifAI with PHP lower than v7.0 (props @dinhtungdu, @jeffpaul via #174)
- Documentation updates (props @jeffpaul, @kant, @dinhtungdu via #151, #153, #170, #181, #184)
- Double slashes in IBM Watson JavaScript URL (props @dinhtungdu via #168)
- Issue where pages are not scanned by Language Processing (props @dinhtungdu, @ryanwelcher via #164)
- Properly saves protected meta in Gutenberg (props @dinhtungdu via #172)
- Duplicate notification and wrong settings link after activation (props @dinhtungdu, @eflorea via #169)
- PHP Coding Standards updates (props @mmcachran via #156)
- Integration test update (props @johnwatkins0 via #162)
1.4.0 - 2019-09-26
- Image tagging via Azure Computer Vision (props @ryanwelcher, @helen, @jeffpaul via #125)
- Search images by alt text and tags (props @helen, @ryanwelcher via #134)
- Hooks to catch alt text and image tags being returned from Azure (props @ryanwelcher, @helen, @jeffpaul via #125)
- Plugin debug information within WordPress's Site Health Info screen (props @johnwatkins0, @ryanwelcher, @helen, @jeffpaul via #108)
- Show a notice if you're running a development version of the plugin (props @helen, @adamsilverstein, @jeffpaul via #144)
- Enable comma delimited list of Post IDs in WP CLI command for Watson NLU bulk language processing (props @adamsilverstein, @helen via #55)
- Provide backup behavior when full-sized image is greater than the maximum size accepted by Azure Computer Vision (props @johnwatkins0, @adamsilverstein, @helen, @jeffpaul via #110)
- Don't show the admin menu alert when NLU is unconfigured (props @helen, @eflorea via #142)
1.3.2 - 2019-07-24
- Only run Watson NLU when it's fully configured (props @helen, @eflorea via #103)
- NLU Settings backwards compatibility and WP-CLI command registration (props @JayWood, @aaronjorbin, @jeffpaul, @helen via #96)
- Avoid JS errors and inaccurate data representation of
_classifai_error
meta (props @johnwatkins0 via #106) - Resolve sudden Travis test failures (props @jeffpaul, @johnwatkins0 via #107)
1.3.1 - 2019-06-13
1.3.0 - 2019-06-06
- Support for automatic image alt text with Microsoft Azure's Computer Vision API (props @ryanwelcher, @helen via #46)
- Azure seutp and configuration details to docs (props @jeffpaul via #71)
- Composer
type
andlicense
attributes (props @christianc1, @helen via #57) - WordPress version support badge (props @adamsilverstein, @jeffpaul via #67)
- Settings page split into separate Language and Image Processing settings pages (props @ryanwelcher, @helen via #46)
- Bump
js-yaml
from 3.12.1 to 3.13.1 (props @dependabot via #74)
1.2.1 - 2019-04-25
- Free registration for in-admin updates
- Run init at a later priority to be sure that most other callbacks run first
- Clean up docs references
1.2.0 - 2019-03-21
- Initial public release with a new name! 🎉
- Gutenberg support
- Admin support for Concepts classification
- Clearer settings page
- Alert if plugin is not set up with credentials yet
- Tests and linting and documentation, oh my
1.1.0 - 2018-10-30
- Taxonomy mapping support
- Admin notice on API errors
1.0.0 - 2018-07-24
- Initial closed source release