e655af6298
ProjectService::update по завершении шлёт in-app объяснение правила (текст из ProjectRuleMessages): смена источника по защищённому проекту → про хвост старого источника; иначе slepok-правка → когда вступит в силу. NotificationService::notifyProjectRule шлёт всем активным юзерам тенанта через колокольчик без pref-гейта (правила должны доходить всегда). Уведомление о хвосте — только если проект реально под защитой (есть поставщик). 3/3. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>