Changelog — Media Booster
All notable changes to Media Booster for end users.
1.3.8¶
Released 2026-07-09
Bug Fixes
- Fixed out-of-memory crash during SEO optimization when a media file is linked to many products — the plugin no longer loads every product assignment into memory, so large catalogs process without stalling the queue worker
- Fixed a compatibility error with newer Shopware versions that could prevent the storefront image URL filter from loading
1.3.7¶
Released 2026-06-09
Bug Fixes
- Fixed image processing running out of memory and stalling the queue (and all scheduled tasks) during large AVIF conversions — per-process Imagick memory is now bounded
- Fixed dashboard statistics showing wrong or reset numbers — progress now reflects the actual processing log, so percentages stay correct across reruns, partial runs and worker restarts
- Fixed broken (404) storefront images after a media file was replaced — the converted WebP/AVIF version is now verified on disk per request instead of trusting a stale 1-hour cache
- Fixed broken product gallery images whose thumbnails could not be resolved — invalid and duplicate srcset entries are no longer emitted, so the image correctly falls back to the original
1.3.6¶
Released 2026-03-20
Bug Fixes
- Fixed non-transparent PNGs (e.g. technical drawings) being corrupted during WebP/AVIF conversion — alpha channel was incorrectly activated on RGB images, making output nearly invisible
1.3.5¶
Released 2026-03-06
Bug Fixes
- Fixed admin dashboard progress not updating in real-time during processing — switched to direct SQL reads for consistency with background worker writes and added cache-busting to status polling
- Fixed "Last Run" timestamp showing stale or missing values after starting a new processing run
1.3.4¶
Released 2026-03-06
Bug Fixes
- Fixed sparse images (technical drawings, diagrams) being destroyed by lossy AVIF/WebP compression — now uses lossless mode which is both smaller and pixel-perfect
- Removed unused
media_version_idcolumn from log table (media entity has no versioning)
1.3.3¶
Released 2026-03-06
Bug Fixes
- Fixed "Convert All Again" not regenerating AVIF/WebP files — conversion was skipped when the target file already existed on disk, so redo operations had no effect
1.3.2¶
Released 2026-03-06
Bug Fixes
- Fixed queue messages being processed synchronously in the HTTP request instead of in the background — admin UI no longer blocks until all batches complete
1.3.1¶
Released 2026-03-06
Bug Fixes
- Fixed reset task endpoint not dispatching batches after resetting, leaving processing stuck
- Fixed footer buttons overflowing and reset being blocked after a completed run
- Renamed buttons for clarity and added confirmations for destructive actions
1.3.0¶
Released 2026-03-06
Improvements
- Replaced fragile chain-dispatch queue architecture with pre-dispatch — all media IDs are now queried upfront, split into batches, and dispatched at once so each batch is independent and the queue can no longer stall mid-run
- Processing progress is now tracked at batch level instead of per-item, reducing database writes during processing
- Running state auto-clears when all items are handled, and stuck-state timeout reduced from 30 to 10 minutes for faster recovery
Bug Fixes
- Fixed potential queue stall where a single failed batch could stop all subsequent batches from processing
1.2.1¶
Released 2026-03-06
Bug Fixes
- Fixed admin dashboard crash ("createNotificationError is not a function") caused by missing notification mixin
- Improved progress card footer button layout — actions are now grouped logically with proper spacing
1.2.0¶
Released 2026-03-05
New Features
- Added configurable frontend extension priority setting — choose whether AVIF, WebP, or original format is served to visitors
- Processing errors are now persisted to the database and survive across queue worker restarts, making them reliably visible in the admin dashboard
- Renamed Twig filter from
webla_as_webptowebla_as_convertedto reflect AVIF/WebP support
Bug Fixes
- Fixed extension priority setting not working due to missing SystemConfigService injection
- Fixed error timestamps not displaying in admin dashboard (key mismatch between storage and template)
- Fixed various pipeline issues: infinite loops, race conditions, query performance, data safety, UI polish, deduplication, UTF-8 safety, and dead code cleanup
Improvements
- Reduced database queries during batch processing by ~80% — progress counts are now accumulated in memory and flushed once per batch instead of per item
1.1.1¶
Released 2026-03-05
New Features
- Sparse images (diagrams, technical drawings, line art) are now automatically detected and converted at higher quality (minimum 95) to preserve thin lines and text
- Added per-task "Redo" buttons in admin dashboard — reset and reprocess just Resize, Convert, or SEO individually without clearing all data
Bug Fixes
- Fixed AVIF/WebP conversion destroying thin lines on technical drawings and diagrams due to aggressive lossy compression at moderate quality settings
1.1.0¶
Released 2026-03-05
New Features
- Error notifications in admin dashboard now show as user-facing alerts instead of silent console errors
Bug Fixes
- Fixed out-of-memory crash (2GB limit) on large media libraries by clearing Doctrine's entity manager between batches
- Fixed entire processing run aborting when a single batch fails (e.g., due to special characters in filenames) — failed batches are now skipped and processing continues
- Fixed total media count query triggering Flysystem path validation on media with special characters
Improvements
- Shopware Context is now properly passed through the entire service call chain instead of creating default contexts
- Processing automatically stops after 3 consecutive batch failures to prevent infinite loops
1.0.8¶
Released 2026-03-05
Bug Fixes
- Fixed processing crash when media filenames contain special Unicode characters (soft hyphens, non-breaking spaces) that Flysystem rejects during entity loading — affected items are now skipped and marked as failed
1.0.7¶
Released 2026-03-05
Bug Fixes
- Fixed batch processing getting permanently stuck when a single image fails (corrupted file, unsupported format) — failed items are now logged and skipped instead of causing infinite retry loops
- Fixed misleading progress display showing "32 / 3468 (41.5%)" — now shows handled/total with breakdown of processed, skipped, and failed items
1.0.6¶
Released 2026-03-05
Bug Fixes
- Fixed SQL syntax error on MariaDB when fetching unprocessed media IDs (LIMIT parameter was quoted as string)
1.0.5¶
Released 2026-03-05
Bug Fixes
- Fixed 500 error on status API caused by missing DBAL Connection dependency in ProgressService
1.0.4¶
Released 2026-03-05
Bug Fixes
- Fixed memory exhaustion on large media libraries by replacing PHP-loaded ID lists with SQL subqueries
- Fixed memory accumulation in long-running worker by replacing entity search+write with DBAL UPSERT
- Fixed memory pressure from batch processing by explicitly releasing entities and forcing GC between batches
- Fixed Imagick pixel cache memory leak by calling clear() before destroy() on instances
- Fixed infinite processing loop when media files are missing from disk (now logged as skipped)
- Fixed infinite partial batches when lock failures were not counted toward batch size
- Fixed slow status API polling by using SQL aggregation instead of loading all log entries
- Fixed stuck processing state by auto-clearing isRunning state after 30 minutes
- Fixed counter corruption from concurrent run requests (now rejected with 409)
- Fixed incorrect AVIF convert total count due to wrong extension list
- Fixed premature polling stop due to race condition in runTask()
- Fixed repeated processing of already-converted files (now logged to exclude from future runs)
- Fixed repeated processing of within-bounds images during resize (now logged to exclude from future runs)
- Recent processing errors are now collected and surfaced in the status API response
1.0.3¶
Released 2026-01-23
New Features
- Automatic AVIF/WebP delivery: Logos and theme images now automatically use converted versions without requiring template changes
- AVIF support in Twig filter with priority order: AVIF > WebP > Original
- Warning in server status when GD is used for AVIF conversion (recommends Imagick)
Bug Fixes
- Fixed progress counters resetting on every batch instead of only at run start
- Fixed total counts changing mid-run when new media is uploaded
- Fixed PHP timeout during AVIF conversion with GD library on large images (>4 megapixels now skipped)
Improvements
- Dashboard labels now clearly distinguish "All-Time Statistics" from "Current Run Progress"
- Twig filter now checks for AVIF first, then WebP, for optimal compression
1.0.2¶
Released 2026-01-23
Bug Fixes
- Fixed "Palette image not supported by webp" error when converting PNG images with indexed colors (logos, icons, simple graphics)
- Fixed GIF to WebP/AVIF conversion (GIF images are always palette-based)
- Fixed progress percentage showing >100% when running conversion multiple times
- Fixed progress not updating when all images are already converted (skipped)
- Improved alpha channel handling for transparent PNG images
New Features
- Display failed image count in admin dashboard progress section
- Error message when resize is started without max dimensions configured
Improvements
- Progress counters now reset when starting a new processing run
- Enhanced error messages for conversion failures now include the actual warning
1.0.1¶
Released 2026-01-23
Documentation
- Added README with installation and usage instructions
- Added user documentation (EN/DE)
1.0.0¶
Released 2026-01-23
Initial Release
Image Optimization
- Automatic resizing of oversized original images to configurable maximum dimensions
- Flexible resize modes: "Fit" (within both bounds) or "Largest" (limit largest side only)
- Supports JPG, JPEG, PNG, BMP, and GIF formats
Modern Format Conversion
- Convert images to WebP for up to 30% smaller file sizes
- Convert images to AVIF for up to 50% smaller file sizes
- Original files preserved for full Shopware compatibility
- Automatic thumbnail conversion included
- Configurable quality settings for images and thumbnails separately
SEO Optimization
- Automatic alt text generation for product and content images
- Automatic title attribute optimization
- SEO-friendly filename generation with multiple templates
- Support for product name, shop name, product number, and manufacturer number
- Multi-language support
Administration Dashboard
- Real-time progress tracking with percentage and processed images
- Batch processing with configurable batch size
- Start/stop processing controls
- Detailed statistics and error logging
- Server capability detection (Imagick/GD, WebP/AVIF support)
Technical Features
- Shopware 6.5, 6.6, and 6.7 compatibility
- Scheduled task support for automatic background processing
- Message queue integration for async processing
- Twig filter for WebP image delivery in storefront
- Automatic cleanup of WebP/AVIF files when media is deleted
Compatibility
| Plugin Version | Shopware Version | PHP Version |
|---|---|---|
| 1.0.x | 6.5.0 - 6.7.x | 8.1+ |