4.9 KiB
02-TRZ — ORCH-080: убрать Telegram link-preview в уведомлениях трекера
Work Item ID: ORCH-080
Зона изменений: src/notifications.py (две строки)
1. Задействованные модули src/
src/notifications.py— единственный изменяемый модуль:send_telegram(text, disable_notification=False)— обёрткаPOST .../sendMessage.edit_telegram(message_id, text)— обёрткаPOST .../editMessageText.
Косвенно затронуты (поведение улучшается без изменения их кода — они вызывают изменённые
примитивы): update_task_tracker (bump+edit), notify_approve_requested, notify_error,
а также вызовы send_telegram из launcher/stage_engine (alert'ы деплоя/падений).
2. Изменения кода
2.1. send_telegram() — добавить ключ в JSON-payload httpx.post
В словаре json={...} вызова sendMessage (текущие стр. 55-60) добавить строку:
"disable_web_page_preview": True,
Итоговый payload:
json={
"chat_id": s.telegram_chat_id,
"text": text,
"parse_mode": "HTML",
"disable_notification": disable_notification,
"disable_web_page_preview": True,
},
2.2. edit_telegram() — добавить ключ в JSON-payload httpx.post
В словаре json={...} вызова editMessageText (текущие стр. 168-173) добавить строку:
"disable_web_page_preview": True,
Итоговый payload:
json={
"chat_id": s.telegram_chat_id,
"message_id": message_id,
"text": text,
"parse_mode": "HTML",
"disable_web_page_preview": True,
},
Примечание: Telegram Bot API исторически принимает top-level
disable_web_page_previewдляsendMessage/editMessageText(актуальная схема также поддерживаетlink_preview_options.is_disabled, но top-level флаг остаётся валиден и совместим). Используем top-level флаг — минимальная, обратносовместимая правка, как указано в задаче.
3. Изменения API
Нет изменений внутреннего HTTP API оркестратора. Меняется только тело исходящих запросов к Telegram Bot API (добавлен один булев ключ в payload двух методов).
4. Изменения схемы БД
Нет.
5. Требования к новым QG checks
Нет. Новые Quality Gate проверки не вводятся.
6. Конфиг / флаги
Нет. Поведение «без превью» — безусловное (kill-switch не требуется: превью трекера
не нужно никому, риск регрессии нулевой; правка обратимая одной строкой).
parse_mode, disable_notification, bump/edit-логика — без изменений.
7. Артефакты, обновляемые по pipeline
CHANGELOG.md— запись в## [Unreleased](типfix:— косметика UX уведомлений).- Документация: правка
src/notifications.pyзатрагивает поведение, описанное вCLAUDE.md(раздел «Нотификации / Telegram live-tracker») иdocs/architecture/README.md(компонент Notifications). Достаточно короткой ремарки, что карточка/уведомления шлются без web-page-preview (по желанию архитектора — определить объём в ADR; ADR не обязателен для столь малой косметики, решение за архитектором).
8. Контракты-инварианты (не нарушать)
- never-raise: обе функции по-прежнему ловят все исключения (
try/except: pass/return) и не валят оркестратор. - Возвращаемые значения не меняются:
send_telegram→message_id|None,edit_telegram→EDIT_*. parse_mode: "HTML"сохранён в обоих payload (иначе<a href>сломается).disable_notificationвsend_telegramсохранён (карточка тихая).- Инвариант «одна карточка на задачу» (bump/edit) не затрагивается.
9. Commit / ветка
- Ветка:
feature/ORCH-080-orch-52g-telegram-link-preview(существует). - Commit:
fix: disable Telegram link-preview in tracker notifications (ORCH-080).