feat(bot): точка входа, конфиг, главное меню, healthcheck #29

Merged
Eleboba merged 1 commits from feat/4-entrypoint-menu into dev 2026-10-14 16:56:08 +03:00
Owner

Что меняется

Бот запускается и показывает главное меню из четырёх разделов (заглушки) + «Участники» для админа; навигация «Назад»/«Отмена» редактирует сообщение на месте. Конфиг типизирован, тексты в config/texts.yaml, healthcheck контейнера, JSON-логи. Доступ — только ADMIN_IDS до приглашений (#25).

Closes #4

Как проверить

make lint && make test        # 20 тестов
# вживую: TELEGRAM_BOT_TOKEN и ADMIN_IDS в .env
make up && make logs          # «tgit 0.1.0 starting…», «Start polling»

В Telegram: /start с админского аккаунта → меню; с другого → «Доступ только по приглашению», дальше тишина.

Заметки

  • FSM в БД перенесён в #5 (там появляется БД).
  • Живой прогон в Telegram — после появления токена бота.

Чек-лист

  • ветка от origin/dev
  • lint + тесты зелёные
  • секретов в диффе нет
  • лог в issue дописан

🤖 Generated with Claude Code

## Что меняется Бот запускается и показывает главное меню из четырёх разделов (заглушки) + «Участники» для админа; навигация «Назад»/«Отмена» редактирует сообщение на месте. Конфиг типизирован, тексты в `config/texts.yaml`, healthcheck контейнера, JSON-логи. Доступ — только `ADMIN_IDS` до приглашений (#25). Closes #4 ## Как проверить ```bash make lint && make test # 20 тестов # вживую: TELEGRAM_BOT_TOKEN и ADMIN_IDS в .env make up && make logs # «tgit 0.1.0 starting…», «Start polling» ``` В Telegram: `/start` с админского аккаунта → меню; с другого → «Доступ только по приглашению», дальше тишина. ## Заметки - FSM в БД перенесён в #5 (там появляется БД). - Живой прогон в Telegram — после появления токена бота. ## Чек-лист - [x] ветка от origin/dev - [x] lint + тесты зелёные - [x] секретов в диффе нет - [x] лог в issue дописан 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Eleboba added 1 commit 2026-10-13 23:55:24 +03:00
- config: pydantic-settings по подсистемам, ADMIN_IDS через запятую
- texts.yaml + валидация при старте (лишний/пропущенный ключ — ошибка сразу)
- меню: reply-клавиатура разделов (Участники — только админам), инлайн «Назад»/«Отмена»
  с редактированием сообщения на месте, /start, /menu, /help
- AccessMiddleware (outer) на сообщениях и кнопках: до #25 пускает только ADMIN_IDS,
  постороннему — одна фраза в сутки, устаревшие кнопки молча гасятся
- heartbeat-файл + HEALTHCHECK в Dockerfile; JSON-логи
- FSM пока в памяти (фабрика), хранилище в БД — в #5
- тесты на фейковой сессии aiogram через настоящий Dispatcher

Refs #4

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Eleboba merged commit 15f354d06b into dev 2026-10-14 16:56:08 +03:00
Sign in to join this conversation.