telegram: сервис поднимается без бота и работает одним входом

- Клиент бота собирается один раз и достаётся отправителю и транспорту;
  разрез прошёл по «ответил ли Telegram»: ответ «такого бота нет» роняет
  старт, недоступность даёт подъём без Telegram (ADR-2026-08-13). Ожидание
  при сборке ограничено сроком — иначе молчащий Telegram вешал подъём.
- Недоставленный ответ не роняет шаг: пишется с job_id и считается метрикой,
  уровень по причине — WARN для неподнятого входа, ERROR для неназванного
  адресата. Заведены transcriber_intake_up и transcriber_undelivered_reply_count.
- Закрыта утечка токена в журнал: отказ разбора адреса рождается раньше
  обращения к клиенту, то есть мимо чистки на его границе.
This commit is contained in:
av
2026-08-13 19:10:08 +03:00
parent 863ba3b42e
commit b733a84d6a
33 changed files with 1579 additions and 91 deletions
+19 -2
View File
@@ -61,8 +61,25 @@ secure_cookie = true
# Telegram Bot Configuration
[telegram]
# Токен Telegram бота (получить у @BotFather в Telegram)
bot_token = "your_telegram_bot_token_here"
# Токен Telegram бота (получить у @BotFather в Telegram).
#
# Пустое значение — объявленный режим: сервис поднимается без Telegram и
# работает одним входом, по HTTP. Бот при этом не заводится, записи из Telegram
# не принимаются, а ответы на задачи, принятые оттуда прежде, не уходят —
# недоставка видна записью журнала, расшифровка достаётся из панели и по HTTP.
# Старт роняет только один случай — Telegram ответил, что бота по такому токену
# нет: ждать тут нечего, это опечатка в настройке. Недоступность Telegram (сеть,
# DNS, авария Bot API) подъёму не мешает: сервис встаёт без бота и говорит об
# этом записью журнала, потому что основной вход у него другой.
#
# Локальный прогон идёт именно так — боевым токеном запускаться запрещено:
# второй процесс с тем же токеном перехватывает обновления у работающего.
# Пустого токена для подъёма мало: секции [auth] и [yandex] проверяются на
# старте и роняют процесс на пустых ключах. Наружу при старте не ходит ни одна
# из них, поэтому для локального прогона годятся выдуманные непустые значения —
# адреса [auth] должны лишь разбираться как ссылки. Расшифровка при выдуманных
# ключах не работает: её подменяют в коде.
bot_token = ""
# Таймаут обновлений Telegram бота (в секундах)
update_timeout = 10