Released: 2026-10-30
Upstream: Magento Open Source 2.4.9
Please see the 4.0 announcement and release notes at https://mage-os.org/releases/2026-10-30-mage-os-4-0-0-release/
What's Changed in mageos-magento2
- Allow extending MySQL client config in the integration test framework by @rhoerr in #315
- Speed up setup:di:compile by removing repeated di.xml parsing by @rhoerr in #338
- Fix #303: native WebP and AVIF support for image upload and processing by @jeanmarcos-dev in #317
- Decouple Magento_Customer from Magento_Wishlist: move new-account-email plugin registration by @pingiun in #286
- Do not cache a block rendering that failed template validation by @TuVanDev in #346
- Syncing latest Mage-OS 3.x to release/4.x by @rhoerr in #374
- Fix OptionRepositoryTest extension attribute join matching unrelated IDs by @max-dernovyi in #363
- Fix #352: stock item filter loads only the first product by @max-dernovyi in #354
- Fix order and comment dates in sales GraphQL for every store locale by @Blumm in #369
- Update moment-timezone to 0.6.5 (tzdata 2026e): admin date/time fields save Canadian store times 1 hour off from 1 November by @CyberNativeAI in #372
- Store non-global compiled DI areas as their diff from global by @jeanmarcos-dev in #319
- Route media requests with uppercase extensions to get.php on Apache (cherry-pick magento/magento2#41655) by @melindash in #377
- Decouple the admin order-create items grid from Magento_Wishlist by @pingiun in #287
- Bundle inchoo/magento-bricklayer by @rhoerr in #373
- Fix #371: Keep original asset content in File::getContent() by @max-dernovyi in #375
- Fix #324: Keep quote item and custom_price on unrelated cart save by @rhoerr in #381
- Add project .gitignore template (#343) by @rhoerr in #382
- Fix #370: Remove disabled in-memory response cache from Symfony cache frontend by @rhoerr in #380
- Fix #330: Reset layout reader context so re-entrant builds don't corrupt structure by @rhoerr in #383
- Fix #376: Treat false dob as empty in ValidateDobOnSave by @rhoerr in #378
- Fix regenerate lock file being created in the project root by @rhoerr in #387
- Fix #353: Lazy-ghost third-party classes only when their constructor is side-effect-free by @rhoerr in #379
- Ship recommended PHP settings and reference php.ini files, drop dead Suhosin directives by @rhoerr in #388
- Bound short-lived AMQP consumer prefetch (3.5+) by @mattmacrocket in #360
- [4.x] Add website ID factor to CustomerGraphQl resolver cache key by @rhoerr in #389
- [4.x] Restore deferred product batching in Catalog/Bundle GraphQL resolvers by @rhoerr in #390
- Release/4.x by @marcelmtz in #385
- Isolate filesystem cache tag index per frontend; make cache:flush remove untagged entries (#392) by @rhoerr in #393
New Contributors
- @max-dernovyi made their first contribution in #363
- @Blumm made their first contribution in #369
- @CyberNativeAI made their first contribution in #372
- @mattmacrocket made their first contribution in #360
Full Changelog: 3.6.0...4.0.0