3.65.0 (2026-07-19)
New Features
- add crash-safe restricted grace access for expired and limited subscriptions (67d45b6)
- admin: rich-вид сообщений админ-чата — уведомления, логи, статистика, старт (3dbdc8e)
- cabinet: отправка прямого сообщения юзеру из карточки в кабинете (c4130c1)
- email: deliver winback + lifecycle notifications to email-only users (491f61f)
- email: email templates for all Remnawave WEBHOOK_* notifications (a14389f)
- email: recurrent autopay success/failure to email-only users (ba9555c)
- l10n: локализовать флоу покупки/продления/смены тарифа (0951c70)
- nalogo: имя и почта копируются по тапу + HTML-экранирование (078493a)
- nalogo: отправка чека пользователю + дублирование в админ-топик (3229b5a)
- nalogo: подробный блок получателя в админ-уведомлении о чеке (0490ffb)
- nalogo: порядок полей в блоке получателя (ID, имя, username, почта) (2ef6963)
- payments: интеграция платёжной системы cisPay (392722f)
- payments: флаг YOOKASSA_SKIP_IP_CHECK с fail-closed проверкой платежа через API (2ac5299)
- promo-offers: доставка промопредложений на email для юзеров без Telegram (8913546)
- promocodes: комбинированные промокоды — баланс и дни подписки одним кодом (d8f4b54)
- WEBHOOK_SUB_EXPIRING + переводы zh/ua для webhook-писем + тесты (38771d3)
- zh/ua для winback-писем, честный PAYMENT_RECEIVED для автосписания, тесты (a37fad2)
Bug Fixes
- admin: не разрывать <pre>-блоки при конвертации уведомлений в rich (bf00eda)
- admin: переносы строк в rich-уведомлениях + админ-уведомление о триале из диплинка (53eda3e)
- admin: платёжные провайдеры в разделе «Платежные системы» (a53f9ad)
- campaign: MissingGreenlet при начислении бонуса кампании на регистрации (6ec45f6)
- email: use notify_autopay_success wrapper so email shows the new expiry date (973cc90)
- l10n: добавить недостающие ключи t() во все локали и защитить тестом (3a0e54b)
- menu: не строить tg-time для дат вне 32-битного unix-диапазона Telegram (e3dfcf7)
- menu: не строить tg-time для дат вне 32-битного unix-диапазона Telegram (c0b932e)
- nalogo: print_url строил ссылку на чек без /v1 (a472d11)
- nalogo: ссылка на чек — добавлен /v1 (баг библиотечного print_url) (a547f5c)
- remnawave: пересоздавать удалённого из панели юзера при живой подписке (9f31282)
- subscription: конверсия живого триала при покупке тарифа в мульти-режиме (76aa67c)
- webhooks: bound payment-callback concurrency to prevent DB pool exhaustion (f72effc)
- восстановление затёртых dev-фич и фиксы grace-подсистемы (PR #3075) (35206d7)