work_item: ORCH-080
description: >
  Подавление Telegram link-preview (disable_web_page_preview: True) в payload
  send_telegram (sendMessage) и edit_telegram (editMessageText). Сохранить
  parse_mode HTML, disable_notification, never-raise и контракты возврата.

tests:
  - id: TC-01
    type: unit
    description: >
      send_telegram() кладёт "disable_web_page_preview": True в JSON-payload
      httpx.post(.../sendMessage). Проверка через мок httpx и инспекцию
      httpx.post.call_args.kwargs["json"].
    module: tests/test_link_preview_disabled.py
    expected: PASS

  - id: TC-02
    type: unit
    description: >
      edit_telegram() кладёт "disable_web_page_preview": True в JSON-payload
      httpx.post(.../editMessageText). Проверка через мок httpx и инспекцию
      payload.
    module: tests/test_link_preview_disabled.py
    expected: PASS

  - id: TC-03
    type: unit
    description: >
      Регрессия parse_mode: оба payload (sendMessage и editMessageText)
      по-прежнему содержат "parse_mode": "HTML" — ссылка <a href> остаётся
      кликабельной (AC-4).
    module: tests/test_link_preview_disabled.py
    expected: PASS

  - id: TC-04
    type: unit
    description: >
      Регрессия полей send_telegram: payload содержит chat_id, text,
      parse_mode, disable_notification; disable_notification прокидывается
      из аргумента (True/False) без изменений (AC-5).
    module: tests/test_link_preview_disabled.py
    expected: PASS

  - id: TC-05
    type: unit
    description: >
      Контракты возврата не изменились: send_telegram возвращает message_id
      при ok:true, None при отсутствии креденшелов/ошибке; edit_telegram
      возвращает EDIT_OK при ok:true (AC-5, AC-6).
    module: tests/test_link_preview_disabled.py
    expected: PASS

  - id: TC-06
    type: unit
    description: >
      never-raise: при httpx.post бросающем исключение send_telegram->None и
      edit_telegram->EDIT_FAILED, без проброса исключения (AC-6).
    module: tests/test_link_preview_disabled.py
    expected: PASS

  - id: TC-07
    type: integration
    description: >
      Полный прогон существующей сюиты трекера/уведомлений остаётся зелёным
      (нет регрессий bump/edit-логики, классификации исходов, ссылок):
      pytest tests/test_telegram_tracker.py tests/test_tracker_bump.py
      tests/test_notify_issue_links.py tests/test_resilience.py.
    module: tests/test_telegram_tracker.py
    expected: PASS

  - id: TC-08
    type: integration
    description: >
      Вся сюита pytest tests/ -q зелёная (общая регрессия, AC-6).
    module: tests/
    expected: PASS
