Включён HTML parse mode у всех исходящих сообщений бота (send + edit-путь
refreshCard), download id выводится моноширинным <code> — в клиентах Telegram
по нему работает tap-to-copy (скопировать id для /download/{id} или диагностики).
Префикс # / download_id= остаётся вне <code>, чтобы копировался чистый id.
Parse mode делает разметку значимой для всех текстов, поэтому добавлен
escape-хелпер и экранированы все внешние/недоверенные фрагменты: display name,
распознанное название, источник/контекст, целевой путь, причины, provider,
error_code/error_msg (инвариант «выход LLM недоверенный»). esc применяется
последним шагом, после усечения, чтобы обрез не разрубил HTML-сущность.
Capability notifications: два ADDED-требования (формат id + экранирование).
Беклог: задача закрыта, зонтичный telegram-revyu-uvedomleniy обновлён.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.0 KiB
2.0 KiB
Ревью уведомлений в Telegram (аудит текстов и формата)
Приоритет: низкий
Зонтичная задача: пройтись по всем исходящим уведомлениям и запросам подтверждения
бота, выправить формулировки, состав данных и оформление. Тексты формируются в
internal/tgbot/render.go, отправка — internal/tgbot/bot.go; parse mode не задан
(plain text), моноширинных/жирных акцентов нет.
На что смотреть при аудите:
- Полнота карточек: показываем ли нужное — название, тип (фильм/сериал), год,
запись матча в метабазе, download id, причину
failed. - Единый язык: в текстах бота вперемешку «задача»/«раздача»/«загрузка» —
свести к доменному
Download(см. ubiquitous-language-slovar). - Оформление: моноширинный download id — уже сделано (HTML parse mode +
escape всех текстов, capability
notifications); осталось при желании добавить акценты поверх включённого parse mode. - Не дублировать уже заведённое: матч метабазы в боте telegram-match-metabazy, мульти-бот адресация уведомлений uvedomleniya-multi-bot, выбор из нескольких находок telegram-vybor-nahodok.
Итог аудита — конкретные под-задачи (эта их порождает). Проход дешёвый, при желании приоритет можно поднять.
Связано: internal/tgbot, docs/specs/review-ux.md.