✨ Features
- Plugin system: New
ExtensionRegistrysingleton withBlogrExtensioninterface. Core blogr package registers itself as a built-in extension. Plugins page in Settings > Plugins shows installed extensions with metadata (version, author, dependencies, homepage). - GDPR foundations: Core events (
ContactFormSubmitted,AnalyticsScriptRendered,UserDataExported,UserAccountDeleted) withDispatchabletrait. Blade stacks for plugin injection. Analytics anonymize IP support for Google Analytics and Matomo. - Mail settings improvements: Brevo SMTP UI with clearer labels and helper text. Test email button with diagnostic error logging (no personal data in logs). Runtime mail config from
.envviaapplyMailConfig().
🐛 Bug Fixes
- Contact form CSRF: Added missing
meta[name=csrf-token]to blog layout. - Contact form button text: Fixed submit button text visibility with Tailwind v4
!importantprefix. - Log sanitization: Removed personal data (emails, credentials) from error logs in
CmsContactController.