v1.4.0
[1.4.0] - 2026-02-06
Changed
-
EmailFormatter:
applyLayout()now searchescustom_pathsfirst, then falls back to the default templates path, consistent with partial and template resolution. -
EmailFormatter:
includePartial()now searchescustom_pathsfirst, then extension defaults. -
EmailFormatter:
registerDefaultTemplates()now loads built-in templates first, then overrides/extends fromcustom_paths. -
Version Management: Version is now read from
composer.jsonat runtime viaEmailNotificationServiceProvider::composerVersion().getVersion(),registerMeta(), andNotivaProvider::getExtensionInfo()all usecomposerVersion()instead of hardcoded strings.- Config
extension_versionis injected dynamically inregister()fromcomposer.json. - Future releases only require updating
composer.jsonandCHANGELOG.md.
Notes
- No breaking changes. Custom paths configured via
services.mail.templates.custom_pathsnow consistently override built-in templates, partials, and layouts.