---
title: "Changelog"
manual: "Laravel-style notification system for TYPO3"
version: "1.4"
source: "Changelog/Index.rst"
modified: "2026-09-14T21:25:06+00:00"
---

> [!TIP]
> Use the table of contents in the left panel to navigate.

# Changelog

## 1.3.0

-   **\[FEATURE\]** Custom channels implementing `ChannelInterface` can now
    **be registered** via a Symfony DI tag
    (`notifications.channel`).
-   **\[FEATURE\]** Optional `getName(): string` method on channel classes.
    When present, its return value is used as the channel key in `via()`.
    When absent, the fully-qualified class name is used as the key.
-   **\[FEATURE\]** `NotificationManager` now collects channels through
    `#[AutowireIterator('notifications.channel')]` and stores live service
    instances — channels benefit from full DI, including scoped services.
-   **\[BREAKING\]** `NotificationManager::channel()` now resolves from the
    injected service map instead of calling `GeneralUtility::makeInstance()`.
    Custom channels previously registered only as public services must add the
    `notifications.channel` tag (or implement `ChannelInterface` so the
    `_instanceof` rule picks them up automatically).
-   **\[CHANGE\]** Added TYPO3 **14** compatibility (`^13.4 || ^14`).
-   **\[CHANGE\]** `AbstractModuleController` converted to constructor
    injection. Removed deprecated setter-injection methods
    (`injectModuleTemplateFactory`, `injectPageRenderer`,
    `injectIconFactory`, `injectBackendUriBuilder`).
-   **\[FIX\]** `?array $channels = null` parameter type corrected across
    `NotificationDispatcherInterface`, `NotificationManager`,
    `NotificationSender`, and the `Notifiable` trait.
-   **\[FIX\]** TCA: removed deprecated `interface` key (dropped in TYPO3 13),
    `cruser_id` ctrl field (removed in TYPO3 13), and `eval => 'trim'` /
    `eval => 'int'` validators (removed in TYPO3 13).
-   **\[FIX\]** `notifiable_id` TCA field changed from `type=input` to
    `type=number`.
-   **\[FIX\]** SQL schema: removed `int(11)` display width, added missing
    `link` column in `tx_lexnotifications_domain_model_message`.

## 1.1.0 — 2024-01-01

-   **\[FEATURE\]** Added Symfony Messenger queue integration via
    `ShouldQueue` marker interface.
-   **\[FEATURE\]** Added `NotificationLevel` constants following RFC 5424
    (Info, Notice, Warning, Error, Critical, Alert, Emergency).
-   **\[FEATURE\]** Added `resend` action to the backend module.
-   **\[FEATURE\]** Pagination in the backend message list (50 items per page).
-   **\[FEATURE\]** Added level filter to the backend message list.
-   **\[FEATURE\]** French (`fr`) localization for all language files.
-   **\[FEATURE\]** Added `getDiffCreatedAtForHumans()` on
    `DatabaseNotification` using Carbon.
-   **\[CHANGE\]** Bumped TYPO3 requirement to **13.4+**.
-   **\[CHANGE\]** Bumped PHP requirement to **8.2+**.

## 1.0.0 — Initial Release

-   Backend module for composing and sending messages to frontend users.
-   Email channel using TYPO3's mail system and Fluid templates.
-   Database channel for persistent in-app notifications.
-   `Notifiable` trait for Extbase domain models.
-   `HasRouteNotificationForMail` trait for email routing.
-   `DatabaseNotificationRepository` with `findByNotifiable`,
    `markAllAsReadForNotifiable` and `removeAllForNotifiable` methods.
-   Abstract `Notification` base class for custom notification types.
-   `NotificationDispatcherInterface` for dependency injection.
-   `BackendUserSentMessageToFrontendUser` built-in notification class.
-   English localization for all language files.
