← К списку версий
v0.49.0
31.08.2026
MINOR
Ежемесячная рассылка: единый поток, идемпотентность и письмо с ценностью
Устранено дублирование месячной рассылки: команда mail:send-monthly переведена на единый идемпотентный поток через подготовленные письма (PreparedEmail) с защитой от повторной отправки в текущем месяце. Ежемесячное письмо полностью переработано: добавлено вступление с месяцем, блок общего прогресса, списки выполненных задач и задач в работе, заметки проекта, блок о ценности и пояснение, почему клиент получил письмо.
Что сделано
- Единый поток рассылки — mail:send-monthly больше не отправляет письма напрямую в обход очереди; теперь месячная рассылка идёт через подготовленные письма PreparedEmail, как и остальные автоотправки.
- Идемпотентность — месячное письмо для клиента и проекта создаётся и отправляется ровно один раз за месяц; повторный запуск команды не создаёт дубль и не отправляет повторно.
- Защита от дублей — проверка: если письмо по проекту за текущий месяц уже отправлено или стоит в очереди, оно не отправляется повторно ни одним из путей рассылки.
- Ценность письма — месячный шаблон monthly-digest переписан: приветствие, месяц в теме письма, блок прогресса, списки «что сделано» и «над чем работаем», заметки, блок о ценности и дружелюбное закрытие.
- Общий макет письма — в письмо добавлены дата, заголовок-тема, строка статистики (прогресс, задачи, имя) и пояснение для получателя.
- Версия платформы — поднята до v0.49.0 (.env, config/app.php).
Результат
- Клиент больше не получает два одинаковых месячных письма.
- Месячное письмо стало содержательным: вступление, ценность, списки задач и заметки.
- Письмо выглядит оформленным и понятным получателю.