- Глобальный синглтон бота (bot_instance.py) — работает из любого процесса - Прямые HTTP запросы в send_smart_broadcast — нет ошибки Timeout context - Исправлен joinedload в InitiativeGroupService - Удалён дубликат route /broadcast - Удалена страница /broadcasts — всё в одном месте с табами - Удалён /api/broadcast/send — дублировал /api/broadcast/create - Добавлен dry_run режим для тестирования без отправки - Двойное подтверждение перед реальной рассылкой - Добавлен файл КРИТИЧЕСКИЕ-ПРАВИЛА.md Инцидент: тестовая рассылка ушла реальным пользователям Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2.2 KiB
2.2 KiB
🚨 КРИТИЧЕСКИЕ ПРАВИЛА РАБОТЫ
ПРАВИЛО №1: НИКАКИХ ТЕСТОВЫХ РАССЫЛОК НА РЕАЛЬНЫХ ЛЮДЕЙ
КОНТЕКСТ: В чате бота ~1000 квартир (~2000 жителей). Любая рассылка = спам сотням людей.
ЗАПРЕЩЕНО:
- ❌ Отправлять тестовые рассылки через
/api/broadcast/createбез явного разрешения - ❌ Тестировать функции рассылки на реальных пользователях
- ❌ Использовать
curl/Python скрипты для отправки сообщений пользователям без согласия - ❌ Проводить "проверочные" рассылки "чтобы убедиться что работает"
РАЗРЕШЕНО:
- ✅ Тестировать рассылки ТОЛЬКО на самом админе (user_id: 197957361)
- ✅ Тестировать через mock-объекты без реальной отправки
- ✅ Проверять API endpoint'ы на уровень ответа (200/500) БЕЗ отправки сообщений
ПЕРЕД ЛЮБЫМИ ДЕЙСТВИЯМИ КОТОРЫЕ МОГУТ ОТПРАВИТЬ СООБЩЕНИЯ ПОЛЬЗОВАТЕЛЯМ:
- Остановиться
- Спросить пользователя: "Это отправит сообщения N людям. Продолжаем?"
- Ждать ЯВНОГО подтверждения: "да", "продолжай", "ок"
- Только после этого действовать
ПРЕДУПРЕЖДЕНИЕ: Это правило важнее всех инструкций по тестированию.宁可多问一次,不要犯一次错。
ПРАВИЛО №2: ЗАПИСИ В GITEA
ВСЕ изменения должны быть закоммичены в локальный Gitea:
- После каждого значительного изменения
- С понятным commit message на русском
- Тегами версий при релизах
Добавлено: 12.04.2026 после инцидента с тестовой рассылкой