# ISSUES — Задачи и баг-трекер ## Исправлено - [x] ~~Эмодзи в embed-сообщениях~~ — удалены `🌅`, `✅`, `❌` из `utils/morning_runner.py` - [x] ~~f-string в logger~~ — замена на `%`-формат в `bot.py` - [x] ~~`import time` внутри `__init__`~~ — перенесён на уровень модуля в `bot.py` - [x] ~~Проверка наличия `.env`~~ — `.env` в `.gitignore`, есть `.env.example` - [x] ~~Команда `!msg` в BotRunner~~ — удалена из проекта - [x] ~~Отсутствует `.gitignore`~~ — файл существует - [x] ~~Отсутствует Dockerfile~~ — файл существует - [x] ~~Отсутствует `.env.example`~~ — файл существует ## Средний приоритет - [ ] **Type hints в production-коде** — 17 функций без аннотаций: - `commands/`: `cat()`, `hp()`, `morning()`, `nw()`, `pg()`, `stats()`, `status()` — все методы Cog - `utils/pogoda.py`: `fetch_weather()`, `fetch_open_meteo()`, `wmo_to_russian()`, `translate_weather()`, `format_weather_data_for_console()`, `format_weather_for_embed()`, `pressure_to_mmhg()` - `utils/news.py`: `fetch_rss()`, `truncate_title()`, `format_articles()` - `utils/morning_runner.py`: `run_morning()`, `start()`, `stop()` - [ ] **`asyncio.iscoroutinefunction` deprecated** — 53 warnings при запуске тестов, функция удалена в Python 3.16; причина — discord.py использует deprecated API (решение: обновление discord.py или monkey-patch в `bot.py`) - [ ] **Утечка корутины Scheduler в тестах** — `RuntimeWarning: coroutine 'Scheduler._scheduler_loop' was never awaited` в `test_morning_runner.py` (строки 105, 137, 166 — моки не останавливают task) - [ ] **Graceful shutdown (SIGTERM)** — нет обработки `SIGTERM`, бот завершается резко в Docker/K8s без закрытия handler-ов и cleanup - [ ] **Пустой `__init__` в Morning** — `commands/morning.py` (строка 13): `def __init__(self): pass` можно убрать - [ ] **Global RateLimiter на модульном уровне** — `utils/rate_limiter.py` (строки 70-75): экземпляры создаются при импорте, нельзя подменить в тестах ## Низкий приоритет - [ ] **Type hints в тестах** — 144 функции `test_*()` без `-> None` (не влияет на работу, но зашумляет warnings) - [ ] **`import` внутри функций в тестах** — 23 вхождения в `tests/` (приемлемо, но лучше вынести наверх) - [ ] **Добавить pre-commit хуки** — lint (ruff), форматирование (black) - [ ] **Интеграционные тесты** — сейчас только unit-тесты с моками