discordBot/ISSUES.md

39 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ISSUES — Задачи и баг-трекер
## Средний приоритет
- [x] **Добавить rate-limiting** для API-вызовов (TheCatAPI, wttr.in, Habr RSS)
- [ ] **Настроить логирование** — уровни, формат, вывод в файл/консоль
- [ ] **Добавить тесты для `console_commands/`** — есть только `test_help_console.py`, нужны `test_pogoda_console.py`, `test_news_console.py`, `test_morning_console.py`
- [ ] **Проверка наличия `.env`** — добавить явную проверку с информативным сообщением
## Консольные команды
### Высокий приоритет
- [ ] **`status`** — онлайн-статус бота, пинг к Discord gateway, uptime
- [ ] **`stats`** — кол-во серверов, каналов, пользователей
### Средний приоритет
- [ ] **`reload`** — горячая перезагрузка cogs без остановки бота
- [ ] **`logs`** — последние строки лога (tail -20)
- [ ] **`trigger morning`** — ручной запуск morning-дайджеста в канал
### Низкий приоритет
- [ ] **`memory`** — текущее потребление памяти процесса
- [ ] **`health`** — проверка доступности внешних API (wttr.in, TheCatAPI, Habr)
- [ ] **`debug <on|off>`** — переключить verbose-режим бота
## Низкий приоритет
- [ ] **Добавить pre-commit хуки** — lint (flake8/ruff), форматирование (black)
- [ ] **Добавить type hints** повсеместно — не все функции имеют аннотации (отсутствуют в `utils/pogoda.py`, `utils/news.py`, присутствуют в `utils/cat.py`, `utils/morning_runner.py`)
- [ ] **Интеграционные тесты** — сейчас только unit-тесты с моками
## Замечания
- [ ] `README.md` ссылается на `AGENTS.md` как основной документ проекта, но AGENTS.md — инструкции для AI-ассистента
- [ ] В тестовых файлах используется `asyncio.run()` внутри синхронных тестов — может конфликтовать с event loop (подтверждено: 50+ вхождений в `test_fetch_cat.py`, `test_fetch_rss.py`, `test_fetch_weather.py`)