# 01-BRD — ORCH-080: убрать Telegram link-preview (логотип Plane) в уведомлениях трекера

Work Item ID: ORCH-080
Эпик: ORCH-052 (под-задача ORCH-52g)
Тип: Доработка (UX уведомлений)
Приоритет: LOW (косметика)
Зона: `src/notifications.py`

## 1. Контекст и проблема

Каждая задача в Telegram сопровождается одной live-карточкой трекера (`src/notifications.py`,
ORCH-042/066/067). С ORCH-067 в карточке появился **кликабельный номер задачи** —
`<a href="https://plane.mva154.duckdns.org/.../issues/<id>/">ORCH-NNN</a>`.

Telegram по умолчанию разворачивает **link-preview** (web page preview) для первой ссылки
в сообщении. Из-за ссылки на Plane под каждым сообщением трекера раскрывается крупный
баннер-превью **«Plane — Modern project management»**.

**Жалоба (Слава, 08.06):** баннер уродует ленту чата и дублируется на каждой задаче/каждом
обновлении карточки (особенно заметно в дефолтном режиме `bump`, где карточка пересоздаётся
на каждом переходе).

## 2. Диагностика (код-аудит `src/notifications.py`)

| Функция | Эндпоинт | Текущий JSON-payload | Превью |
|---------|----------|----------------------|--------|
| `send_telegram()` (стр. 52-62) | `POST /sendMessage` | `chat_id`, `text`, `parse_mode: HTML`, `disable_notification` | **разворачивается** (нет `disable_web_page_preview`) |
| `edit_telegram()` (стр. 165-174) | `POST /editMessageText` | `chat_id`, `message_id`, `text`, `parse_mode: HTML` | **разворачивается** (нет `disable_web_page_preview`) |

Причина баннера: оба payload **не содержат** ключ `disable_web_page_preview`. Telegram Bot API
по умолчанию (отсутствие ключа) включает превью.

`delete_telegram()` (`/deleteMessage`) превью не порождает — правки не требует.

## 3. Бизнес-цель

Карточка трекера и уведомления в Telegram **не должны** показывать баннер link-preview Plane,
при этом ссылка на задачу **остаётся кликабельной**.

## 4. Бизнес-требования

- **BR-1.** В payload `sendMessage` (`send_telegram`) присутствует `disable_web_page_preview: True`.
- **BR-2.** В payload `editMessageText` (`edit_telegram`) присутствует `disable_web_page_preview: True`.
- **BR-3.** Баннер-превью Plane больше не появляется ни под карточкой трекера (оба режима
  `bump`/`edit`), ни под отдельными notify-сообщениями, которые идут через `send_telegram`
  (`notify_approve_requested`, `notify_error`, alert'ы стадий) — все они используют тот же
  низкоуровневый примитив.
- **BR-4.** Кликабельная ссылка `<a href>` на задачу в Plane сохраняется (`parse_mode: HTML`
  не меняется).
- **BR-5.** Контракт **never-raise** сохранён: отправка/редактирование никогда не валит
  оркестратор; `pytest` зелёный.

## 5. Не-цели (вне скоупа)

- Не менять текст/формат/верстку карточки.
- Не трогать `parse_mode` (HTML нужен для `<a href>`).
- Не трогать bump/edit-логику (`update_task_tracker`), репойнт `tracker_message_id`,
  delete-семантику.
- Не вводить флаги/конфиг — поведение «без превью» безусловное (превью никому не нужно).
- Не трогать схему БД.

## 6. Заинтересованные лица

- **Слава (Owner)** — инициатор, конечный наблюдатель ленты Telegram.

## 7. Грабли / координация

- Файл `src/notifications.py` затрагивает также ORCH-067 (и потенциально другие задачи эпика).
  Сверить, что правки (две строки) не конфликтуют при merge.
- Один репозиторий с ORCH-74 → по ORCH-026 действует сериализация merge.
  Запускать **после** того как ORCH-74 доедет в `main` (или когда конвейер свободен),
  чтобы не плодить параллельный merge в `orchestrator`.
- Деплой — штатный через **Confirm Deploy** (self-hosting, ORCH-059).
