- Improved emoji shortcode handling performance for strings without shortcode delimiters.
- Improved element query performance by caching element source table column listings in memory.
- Improved nested entry type resolution by avoiding unnecessary owner element queries.
- Added Laravel event dispatching to Craft’s
Yiisoft\Translator\Translatorinstance, enablingYiisoft\Translator\Event\MissingTranslationEventlisteners. (#18952) - The
loginPathconfig setting is nowfalseby default. - Renamed the
PluginsLoadedevent toPluginsRegistered. (#18973) - Updated Twig to 3.27. (#18980)
- Fixed some errors that could occur when running Craft through Laravel Octane (#18921)
- Fixed an error that occurred when rendering the database update screen outside Control Panel template mode.
- Fixed an error that occurred when Redis was configured as the session driver.
- Fixed a bug where legacy Control Panel URL rules couldn’t route directly to templates. (#18972)
- Fixed an error that could occur when request context was dehydrated after a matched element route was resolved.
- Fixed a bug where
CraftCms\Cms\Support\Typecastcould skip setters that used a same-name private backing property. - Fixed a bug where
CraftCms\Cms\Support\Typecastcould attempt to assign read-only, private-set, protected-set, or setterless virtual properties. - Fixed a bug where publishable Craft assets were registered during web requests.
- Fixed a bug where eager-loading didn’t treat address, content block, and entry queries as nested element queries.
- Fixed a bug where lazy eager-loading nested element fields could reuse owner criteria and return the wrong elements.
- Fixed an error that occurred when Updates were cached and deserialized.
- Fixed an error that prevented link fields from saving.
- Fixed a bug where Money fields could throw an error during element validation when the field value was falsy.
- Fixed a bug where
CraftCms\Cms\Validation\Contracts\Validatable::prepareForValidation()wasn’t called consistently, and plainValidatableclasses without a configured ruleset couldn’t be validated. (#18944) - Fixed a bug where invalid element query filters could return all results. (#18937)
- Fixed an error that occurred when uploading assets to fields with dynamic default upload locations. (#18949)
- Fixed a bug where Craft could look for the license key in
config/license.keyinstead ofconfig/craft/license.key. - Fixed a styling issue that occurred when editable table cells had a
codeclass. (#18900)