Files
transcriber/tasks/items/local-run-without-telegram-token.md
T

36 lines
2.9 KiB
Markdown

# 🧹 Поднимать сервис локально без действующего токена бота
- **Тип:** chore
- **Категория:** Очередь
- **Зачем:** Адаптер Telegram проверяет токен обращением к Telegram и роняет старт, а боевым токеном запускаться запрещено: проверить поведение живым прогоном не может ни одна задача.
Замечено при попытке проверить вход вживую в задаче `oidc-login` 2026-08-12;
подтверждено прогоном: с выдуманным токеном старт кончается отказом создания
отправителя раньше, чем поднимается HTTP-сервер.
Отсюда следствие, которое стоит дороже самого неудобства: **поведенческая
верификация живым запуском недоступна проекту вовсе**. Всякая задача, меняющая
наблюдаемое поведение, проверяется только тестами, а «поднять и посмотреть»
остаётся человеку с боевым конфигом.
Запрет запускаться боевым токеном снимать не надо: второй процесс с тем же
токеном перехватывает обновления у работающего.
## Затрагивает
- создание отправителя Telegram при старте в `main.go`;
- секция `[telegram]` конфига и её образец;
- раздел «Запреты» в `CLAUDE.md` — строка про боевой токен остаётся, но рядом
появляется способ поднять сервис без него;
- `docs/review.md`, подраздел «Недоступно проверке»: строка про недоступность
живого прогона снимается или сужается.
## Критерии приёмки
- Сервис поднимается с пустым токеном бота: HTTP отвечает, воркеры идут, бот не
создан. Оракул — запуск с конфигом без токена и запрос `GET /health`: код 200.
- Отсутствие бота названо в журнале один раз при старте, а не молчанием. Оракул —
тот же запуск: в выводе есть строка о том, что бот не поднят и почему.
- Поведение с настоящим токеном не изменилось. Оракул — тест на создание
отправителя с непустым токеном: прежний путь сохранён.