{"id":388678,"date":"2026-10-27T18:33:02","date_gmt":"2026-10-27T18:33:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/just-modern-images\/"},"modified":"2026-10-28T08:11:43","modified_gmt":"2026-10-28T08:11:43","slug":"clu-just-modern-images","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/clu-just-modern-images\/","author":23588161,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.4","stable_tag":"1.0.4","tested":"7.1.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"CLU Just Modern Images","header_author":"CLU Level Up","header_description":"Generates smaller WebP and AVIF companions while keeping every original image intact.","assets_banners_color":"385972","last_updated":"2026-10-28 08:11:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/soolecki\/just-modern-images","header_author_uri":"https:\/\/clu.pl","rating":0,"author_block_rating":0,"active_installs":0,"downloads":98,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"clulevelup","date":"2026-10-27 18:32:27","revision":3769224},"1.0.4":{"tag":"1.0.4","author":"clulevelup","date":"2026-10-28 08:11:43","revision":3770163}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3769224,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3769224,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3769224,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3769224,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3","1.0.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3769224,"resolution":"1","location":"assets","locale":"","width":1360,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3769224,"resolution":"2","location":"assets","locale":"","width":1360,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3769224,"resolution":"3","location":"assets","locale":"","width":1360,"height":900}},"screenshots":{"1":"One clear status for your image library. Processing runs in the background, so you can close this page at any time.","2":"Image quality is optional. Keep the default Standard profile or choose Economy, High, or Ultra.","3":"The Media Library shows the processing result for each image."}},"plugin_section":[],"plugin_tags":[194661,163,187,247,15376],"plugin_category":[50,52,54],"plugin_contributors":[289027],"plugin_business_model":[],"class_list":["post-388678","plugin","type-plugin","status-publish","hentry","plugin_tags-avif","plugin_tags-images","plugin_tags-optimization","plugin_tags-performance","plugin_tags-webp","plugin_category-media","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-clulevelup","plugin_committers-clulevelup"],"banners":{"banner":"https:\/\/ps.w.org\/clu-just-modern-images\/assets\/banner-772x250.png?rev=3769224","banner_2x":"https:\/\/ps.w.org\/clu-just-modern-images\/assets\/banner-1544x500.png?rev=3769224","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/clu-just-modern-images\/assets\/icon-128x128.png?rev=3769224","icon_2x":"https:\/\/ps.w.org\/clu-just-modern-images\/assets\/icon-256x256.png?rev=3769224","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/clu-just-modern-images\/assets\/screenshot-1.png?rev=3769224","caption":"One clear status for your image library. Processing runs in the background, so you can close this page at any time."},{"src":"https:\/\/ps.w.org\/clu-just-modern-images\/assets\/screenshot-2.png?rev=3769224","caption":"Image quality is optional. Keep the default Standard profile or choose Economy, High, or Ultra."},{"src":"https:\/\/ps.w.org\/clu-just-modern-images\/assets\/screenshot-3.png?rev=3769224","caption":"The Media Library shows the processing result for each image."}],"raw_content":"<!--section=description-->\n<p>CLU Just Modern Images brings WebP and AVIF to an existing WordPress image library without a separate thumbnail-regeneration step. Activate it and existing JPEG and PNG attachments are checked in the background, alongside new uploads.<\/p>\n\n<p>Original images, existing thumbnails, attachment URLs, MIME types, and WordPress image metadata stay intact. Modern files are separate companions, served only when a complete, validated responsive set is available. Deactivating the plugin restores normal WordPress image output.<\/p>\n\n<p>Images needed by a page rendered through WordPress move ahead of the remaining library scan. Visitors do not wait for conversion: it always happens in background jobs. Previously cached pages may bypass this prioritization.<\/p>\n\n<p>The plugin is fully free, with no account, API key, or plugin-imposed image quota. Encoding takes place on your server and depends on its available resources and format support.<\/p>\n\n<p>Activate the plugin and it will:<\/p>\n\n<ul>\n<li>verify what the server can really encode;<\/li>\n<li>process new JPEG and PNG Media Library uploads in the background;<\/li>\n<li>scan existing Media Library images automatically;<\/li>\n<li>create WebP and AVIF companions only when they are valid and smaller;<\/li>\n<li>serve complete responsive image sets through the <code>picture<\/code> element;<\/li>\n<li>keep the original image as the permanent fallback;<\/li>\n<li>prioritize new, manually selected, and currently needed images.<\/li>\n<\/ul>\n\n<p>The plugin never replaces WordPress attachment filenames, MIME types, or core image metadata. Deactivation therefore restores normal WordPress image markup immediately.<\/p>\n\n<p>The only preference is image quality: Economy, Standard, High, or Ultra. Server capability, conversion progress, and failure handling are automatic.<\/p>\n\n<p>The interface follows your WordPress user language, or the site language when no user preference is set. Bundled translations cover Polish, German, French, Spanish, Italian, Brazilian Portuguese, Dutch, Czech, Ukrainian, and Japanese. English remains the fallback. No language setting or external translation service is needed.<\/p>\n\n<p>The settings screen gives one clear answer: images are taken care of, processing continues, or something needs attention. Progress measures completed checks, so keeping a smaller original or using only one modern format does not leave the library stuck at 99%. You can close the page at any time.<\/p>\n\n<p>Image quality is an optional, collapsed preference. Server formats, processing counts, troubleshooting actions, and the activity log are kept under Help and details. Media Library rows also show individual results, with optional single-image and bulk priority actions.<\/p>\n\n<p>When an image needs attention, the settings screen and Media Library show a plain-language explanation together with a stable diagnostic code. A server check can also be run directly from the settings screen. The Activity log keeps the latest 50 processing events with before-and-after library counts, server identifiers, stop reasons, and per-image results. Administrators can download the same privacy-safe history as JSON for troubleshooting.<\/p>\n\n<h4>Designed to fail safely<\/h4>\n\n<p>Image encoding varies widely between hosting providers. CLU Just Modern Images performs a real capability probe and validates every generated file before it becomes eligible for use. Empty, corrupt, oversized, incomplete, or undecodable output is discarded.<\/p>\n\n<p>Transparency is verified separately for AVIF and WebP. If a server encoder flattens transparent PNG files, that format remains available for ordinary photographs while transparent images automatically use another verified format or the original file.<\/p>\n\n<p>WebP and AVIF are independent. If one encoder is missing or unstable, the other format continues to work. Repeated encoder failures temporarily pause only the affected format.<\/p>\n\n<p>On installations served by more than one application server, capability results and encoder health are kept separately for each server environment. Generated companions use immutable names, so a verified active file is never overwritten during a quality refresh. Replaced files remain available for seven days to protect cached HTML before they are cleaned up.<\/p>\n\n<h4>No frontend conversion<\/h4>\n\n<p>Conversion never runs while a visitor is waiting for a page. Frontend filters only read a small attachment manifest and leave the original HTML unchanged when a complete modern source set is not ready.<\/p>\n\n<p>When WordPress renders a page, attachments used by that response can move ahead of the background library scan. The plugin records only the attachment ID needed for processing. It does not store visitors, page URLs, view counts, cookies, or analytics data. Fully cached responses may bypass WordPress and therefore do not provide this priority signal.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>The plugin processes images on your own server. It contains no analytics or remote diagnostic reporting mechanism and sends no reports to the developer or third-party services. Processing history stays in your WordPress database. An administrator can download a local diagnostic report for troubleshooting and choose whether to share that file.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install its ZIP through Plugins &gt; Add Plugin.<\/li>\n<li>Activate CLU Just Modern Images.<\/li>\n<li>Leave the default Standard quality selected, or choose another profile under Settings &gt; CLU Just Modern Images.<\/li>\n<\/ol>\n\n<p>Existing images are queued automatically. WordPress processes the queue through WP-Cron in small, retry-safe jobs.\nEach cron request uses an adaptive worker budget. Fast servers continue with more images, while the worker yields before the safe time, memory, or per-run image limit is exhausted.\nIf a one-time worker event disappears after an interrupted PHP request, the plugin restores it automatically during the next WordPress initialization.<\/p>\n\n<p>Network activation initializes an independent queue for every multisite site and automatically prepares sites added later. When an external cron runner is used, it must call every public site in the network because WordPress stores cron events per site.<\/p>\n\n<p>Generated files use bounded immutable names in the same directory as their sources. Publishing verifies the complete file and tolerates short sharing delays, which makes the process safer on Windows, IIS, and SMB-backed uploads.<\/p>\n\n<p>Generated filenames keep the recognizable source filename followed by a <code>clujmi<\/code> marker and an immutable token. Existing companions from earlier private releases retain their original filenames. Exceptionally long names are shortened only as much as necessary to stay within conservative Windows and SMB path limits.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20move%20from%20the%20earlier%20just%20modern%20images%20plugin%3F\"><h3>How do I move from the earlier Just Modern Images plugin?<\/h3><\/dt>\n<dd><p>Because the directory slug has changed, the earlier plugin cannot discover this release as an ordinary update. Deactivate Just Modern Images first, then install and activate CLU Just Modern Images. On Multisite, also check Network Admin. Keep the earlier plugin installed until the new status screen confirms that the image data import has finished.<\/p>\n\n<p>The new plugin imports existing settings, image manifests, processing results, history, and pending jobs in resumable batches. It keeps already generated companion files in place. Do not uninstall the earlier plugin before this import: its uninstall routine removes the files and records that need to be transferred. Once the import is complete, the inactive earlier plugin can be deleted.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20delete%20or%20replace%20my%20original%20images%3F\"><h3>Does the plugin delete or replace my original images?<\/h3><\/dt>\n<dd><p>No. Original JPEG and PNG files and WordPress attachment metadata remain unchanged. Modern files are separate companions.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20deactivate%20the%20plugin%3F\"><h3>What happens when I deactivate the plugin?<\/h3><\/dt>\n<dd><p>Newly rendered WordPress pages return to the original image markup and URLs. Previously cached HTML can still reference modern companions, which remain on disk after deactivation. Clear page and CDN caches before uninstalling the plugin, because uninstall removes its companion files. No thumbnail regeneration is required.<\/p><\/dd>\n<dt id=\"what%20if%20my%20server%20cannot%20create%20avif%3F\"><h3>What if my server cannot create AVIF?<\/h3><\/dt>\n<dd><p>AVIF is skipped. WebP continues when available, and the original image always remains the fallback.<\/p><\/dd>\n<dt id=\"are%20existing%20media%20library%20images%20converted%3F\"><h3>Are existing Media Library images converted?<\/h3><\/dt>\n<dd><p>Yes. Activation starts a cursor-based background scan that can resume after timeouts or missed cron runs. You can queue the scan again from the status screen.<\/p><\/dd>\n<dt id=\"why%20was%20a%20modern%20file%20not%20generated%3F\"><h3>Why was a modern file not generated?<\/h3><\/dt>\n<dd><p>The source may be unavailable locally, the server may not support the format reliably, the image may exceed the safe memory budget, or the generated file may be no smaller than the original. The settings screen and Media Library show the most relevant explanation and diagnostic code.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20change%20image%20quality%3F\"><h3>What happens when I change image quality?<\/h3><\/dt>\n<dd><p>The Media Library is refreshed in the background. Existing valid modern files remain active until verified replacements are ready. Images selected manually, newly uploaded, or needed by a frontend response are processed before the remaining library backfill.<\/p><\/dd>\n<dt id=\"how%20much%20work%20happens%20during%20one%20cron%20request%3F\"><h3>How much work happens during one cron request?<\/h3><\/dt>\n<dd><p>The worker measures how long completed images take and starts another only when a safe reserve remains. By default it may use up to 45 seconds on servers whose PHP limit leaves enough room, while IIS and short-lived requests use a conservative budget of up to 20 seconds. It processes at most 50 images across all CLU Just Modern Images events in one request, yields at 80% of the PHP memory limit, and leaves five seconds before the PHP execution limit. These are internal safety limits, not settings that site owners need to manage.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20a%20cdn%3F\"><h3>Does it work with a CDN?<\/h3><\/dt>\n<dd><p>The plugin uses normal WordPress upload URLs and provides a filter for CDN integrations. A CDN or offload plugin must make generated companion files available just like other files in the uploads directory.<\/p><\/dd>\n<dt id=\"does%20it%20optimize%20css%20background%20images%3F\"><h3>Does it optimize CSS background images?<\/h3><\/dt>\n<dd><p>Not in this release. The first release intentionally covers attachment images rendered through standard WordPress APIs without buffering or rewriting the entire page.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20javascript%20lazy%20loading%20and%20existing%20picture%20elements%3F\"><h3>Does it work with JavaScript lazy loading and existing picture elements?<\/h3><\/dt>\n<dd><p>The plugin preserves existing picture elements and images managed by JavaScript lazy loaders. These images keep their original delivery behavior. Native WordPress loading=\"lazy\" remains supported with modern sources. CDN and offload integrations must also publish the generated companion files; remote-only media remains on its original URLs.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added bundled interface translations for Polish, German, French, Spanish, Italian, Brazilian Portuguese, Dutch, Czech, Ukrainian, and Japanese.<\/li>\n<li>Followed the WordPress user or site language automatically, with English as the fallback and support for WordPress.org language packs.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Renamed the plugin to CLU Just Modern Images, with a distinct directory slug and six-letter code prefix.<\/li>\n<li>Added resumable migration from earlier private releases, preserving existing image files, settings, history, and pending work.<\/li>\n<li>Prevented the earlier and renamed plugin from processing the same library together.<\/li>\n<li>Clarified the focus on automatically processing existing libraries while preserving original WordPress image data.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Removed the private-test remote diagnostic sender, reporting controls, and related build configuration.<\/li>\n<li>Kept local activity history and administrator-downloaded diagnostic reports.<\/li>\n<li>Cleaned up retired reporting data and scheduled events without restarting image conversion.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Restored an animated activity indicator in the main progress bar while images are processing.<\/li>\n<li>Smoothed live progress updates and respected reduced-motion preferences.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Simplified the panel to one automatic status with optional quality and help sections.<\/li>\n<li>Kept partially optimized images and smaller originals from appearing as unfinished work.<\/li>\n<li>Preserved picture parent context and deferred JavaScript lazy-loading attributes.<\/li>\n<li>Added ownership checks to queue locks and exclusive file creation to prevent concurrent overwrites.<\/li>\n<li>Automatically checked server format support when an administrator opens the panel on a new server environment.<\/li>\n<li>Hid private test reporting when no receiver is configured and added an explicit public build command.<\/li>\n<li>Fixed hidden zero-count warnings and cleaned up follow-up scan state during uninstall.<\/li>\n<\/ul>\n\n<h4>0.12.2<\/h4>\n\n<ul>\n<li>Replaced the competing ready and reviewed percentages with one processing progress that reaches 100% only when no images are waiting.<\/li>\n<li>Made every result visible in four totals that add up to the whole library: optimized, safe fallback, waiting, and needs attention.<\/li>\n<li>Added automatic live updates for the overview and all background-worker details while the settings page remains open.<\/li>\n<li>Moved technical background-processing details into a compact collapsible panel with a plain-language summary.<\/li>\n<li>Stopped persistent stale variants from restarting full Media Library scans indefinitely.<\/li>\n<li>Added bounded per-image retries with backoff and recovery of missing retry events.<\/li>\n<li>Left normally scheduled WP-Cron events to WordPress instead of counting every due event as an automatic recovery.<\/li>\n<li>Ensured a data migration requested during an active scan starts one complete follow-up scan instead of being lost or repeatedly resetting current work.<\/li>\n<li>Restored recognizable filenames in the form <code>original-name.jpg.clujmi-token.avif<\/code>, with safe truncation for Windows and SMB paths.<\/li>\n<li>Queued one full migration so existing short-name variants are replaced without removing a working file before its successor is ready.<\/li>\n<\/ul>\n\n<h4>0.12.1<\/h4>\n\n<ul>\n<li>Added per-format checks that verify whether the server preserves transparent pixels.<\/li>\n<li>Rejected generated files that lose the source PNG alpha channel before they can be published or served.<\/li>\n<li>Kept AVIF and WebP available for opaque images when only their transparency support is unreliable.<\/li>\n<li>Queued a one-time library review so modern variants created by an older version are validated again.<\/li>\n<li>Kept the hourly dormant-queue check throttled after successful worker runs, avoiding repeated full-library recounts.<\/li>\n<li>Updated the plugin author to CLU Level Up.<\/li>\n<\/ul>\n\n<h4>0.12.0<\/h4>\n\n<ul>\n<li>Added an animated background-processing indicator with a clear waiting count and paused-encoder state.<\/li>\n<li>Recovered missing or due scans directly inside verified WordPress cron requests.<\/li>\n<li>Expanded the worker budget on servers with time to spare while retaining conservative IIS and PHP-limit reserves.<\/li>\n<li>Changed encoder health sampling from individual thumbnails to one result per attachment and excluded source or storage failures.<\/li>\n<li>Paused library traversal when every format encoder is temporarily unavailable instead of settling images as skipped.<\/li>\n<li>Added network activation, deactivation, and new-site initialization for multisite with isolated per-site queues.<\/li>\n<li>Added a shared network identifier and real heartbeat snapshots to opt-in private-test reports.<\/li>\n<li>Added short immutable output names, bounded copy retries, and race-safe verification for Windows and SMB storage.<\/li>\n<li>Added storage type and writability signals to opt-in diagnostics without sending local filesystem paths.<\/li>\n<li>Queued one data-revision scan so images skipped by previous circuit-breaker behavior are reconsidered.<\/li>\n<\/ul>\n\n<h4>0.11.6<\/h4>\n\n<ul>\n<li>Added explicit administrator opt-in for diagnostic reports from private test installations.<\/li>\n<li>Included the site name and public homepage address so reported problems can be verified on the correct site.<\/li>\n<li>Added a bounded, retry-safe reporting outbox with short timeouts, sender locking, and exponential backoff.<\/li>\n<li>Added real cron-frequency, scheduling-delay, worker-throughput, per-image timing, and memory measurements.<\/li>\n<li>Removed attachment IDs, filenames, visitor information, and page addresses from remote reports.<\/li>\n<li>Added redacted fatal-error capture limited to errors originating in the plugin directory.<\/li>\n<li>Added a separate password-protected PHP receiver and fleet dashboard for private testing; it is not included in the plugin ZIP.<\/li>\n<\/ul>\n\n<h4>0.11.5<\/h4>\n\n<ul>\n<li>Prevented delayed attachment events from moving an already settled image back to the waiting state.<\/li>\n<li>Preserved the last settled state and queue source while an image is intentionally reprocessed.<\/li>\n<li>Added a bounded Activity log with before-and-after library and queue snapshots for the latest 50 processing events.<\/li>\n<li>Added per-image state transitions, processing results, server identifiers, format capability states, and worker stop reasons to the history.<\/li>\n<li>Added a privacy-safe JSON diagnostic report that administrators can download from the Activity log.<\/li>\n<li>Kept diagnostic collection isolated so a logging problem cannot interrupt image processing or retain a worker lock.<\/li>\n<\/ul>\n\n<h4>0.11.4<\/h4>\n\n<ul>\n<li>Restored missing or overdue library worker events automatically.<\/li>\n<li>Recovered abandoned worker locks, including invalid future timestamps caused by server clock differences.<\/li>\n<li>Separated monotonic data migrations from release numbers so mixed OPcache revisions cannot repeatedly reset current queue state.<\/li>\n<li>Kept capability profiles intact during ordinary plugin updates.<\/li>\n<li>Preserved the most recent worker metrics when a new scan is requested.<\/li>\n<li>Added the next worker event, lock state, and last observed worker code version to diagnostics.<\/li>\n<li>Added a clear warning when cron activity is visible but no current worker run is reported.<\/li>\n<\/ul>\n\n<h4>0.11.3<\/h4>\n\n<ul>\n<li>Added an adaptive cron worker that continues processing while safe time and memory remain.<\/li>\n<li>Applied one shared workload budget across all image events dispatched in the same cron request.<\/li>\n<li>Added a shared worker lock so overlapping cron calls on clustered sites do not multiply image load.<\/li>\n<li>Added the most recent worker workload and stop reason to the settings screen.<\/li>\n<li>Preserved manual, upload, and request-based priority when a worker yields and requeues an image.<\/li>\n<li>Fixed early translation loading notices introduced by WordPress 6.7.<\/li>\n<\/ul>\n\n<h4>0.11.2<\/h4>\n\n<ul>\n<li>Prevented critical errors when different application servers temporarily use cached plugin components from adjacent releases.<\/li>\n<li>Added compatibility between old and new manifest cleanup APIs during rolling updates.<\/li>\n<li>Deferred an on-demand capability probe safely when the current request still uses the older probe component.<\/li>\n<li>Added a visible notice when a server is waiting to reload the current plugin version.<\/li>\n<\/ul>\n\n<h4>0.11.1<\/h4>\n\n<ul>\n<li>Added plain-language processing diagnostics and stable reason codes to Settings and Media Library views.<\/li>\n<li>Added an on-demand real AVIF and WebP server check.<\/li>\n<li>Fixed capability checks in cron, CLI, and activation requests where the WordPress temporary-file API is not loaded by default.<\/li>\n<li>Kept capability and encoder-health results separate for every server environment in a cluster.<\/li>\n<li>Switched generated companions to immutable names that do not replace an active file on shared storage.<\/li>\n<li>Added recovery of complete files left by an interrupted run and explicit database-publication failure handling.<\/li>\n<li>Retained replaced variants for seven days so cached pages can continue loading their previous URLs.<\/li>\n<\/ul>\n\n<h4>0.11.0<\/h4>\n\n<ul>\n<li>Replaced quality radio buttons with a compact profile selector.<\/li>\n<li>Added graphical library progress and clearer server and queue status.<\/li>\n<li>Added attachment status, Media Library filters, and single and bulk priority actions.<\/li>\n<li>Added privacy-friendly request-based prioritization without visitor tracking.<\/li>\n<li>Kept last known good variants active during unsuccessful quality refreshes.<\/li>\n<li>Added per-image retry backoff and clearer pending, partial, stale, and failed states.<\/li>\n<\/ul>\n\n<h4>0.10.0<\/h4>\n\n<ul>\n<li>Replaced the prototype with an original, fail-safe conversion pipeline.<\/li>\n<li>Added verified WebP and AVIF capability checks.<\/li>\n<li>Added atomic file finalization, validation, memory limits, and larger-file rejection.<\/li>\n<li>Added resumable background processing for new and existing attachments.<\/li>\n<li>Added complete responsive <code>picture<\/code> rendering with an unchanged original fallback.<\/li>\n<li>Added four quality profiles and a compact status screen.<\/li>\n<li>Added cleanup on attachment deletion and plugin uninstall.<\/li>\n<\/ul>","raw_excerpt":"Modern formats for your existing image library, automatically. Keep your originals and let the plugin do the work.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/388678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=388678"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/clulevelup"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=388678"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=388678"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=388678"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=388678"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=388678"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=388678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}