Каркас FastAPI живёт в admin/ и собирается отдельным образом: главная страница со списком будущих разделов и /healthz для healthcheck, пока без БД и логина. Сервис добавлен в оба compose (порт только на loopback до появления домена), CI теперь собирает и публикует два образа — бота и админку. Настройки админки наследуют общие, но не требуют BOT_TOKEN: сервис запускается, даже пока токен не заполнен.
- common/analytics — AnalyticsClient с буфером, flush по размеру и таймеру, graceful-flush при остановке
- при недоступности ClickHouse события уходят в stdout, бот не падает
- каталог EventType и docs/events.md проверяются тестом на синхронность
- настройки CLICKHOUSE_* и ANALYTICS_* с дефолтами
- версия 0.3.0