reviewer(ET): auto-commit from reviewer run_id=416
This commit is contained in:
72
docs/work-items/ORCH-080/12-review.md
Normal file
72
docs/work-items/ORCH-080/12-review.md
Normal file
@@ -0,0 +1,72 @@
|
||||
---
|
||||
type: review
|
||||
work_item_id: ORCH-080
|
||||
verdict: APPROVED
|
||||
version: 1
|
||||
---
|
||||
|
||||
# Review ORCH-080
|
||||
|
||||
## Summary
|
||||
Задача убирает баннер Telegram link-preview («Plane — Modern project management»),
|
||||
который разворачивался под кликабельной ссылкой `ORCH-NNN` в карточке трекера и
|
||||
во всех notify/alert-сообщениях. Решение точно соответствует TRZ и ADR-001:
|
||||
добавлен ключ `"disable_web_page_preview": True` в JSON-payload обоих
|
||||
низкоуровневых примитивов `send_telegram` (`POST /sendMessage`) и `edit_telegram`
|
||||
(`POST /editMessageText`) — единая точка для всех потребителей, без kill-switch,
|
||||
без изменения контрактов. Изменение минимально (2 строки + комментарии),
|
||||
аддитивно и обратимо.
|
||||
|
||||
Проверены все четыре оси (ТЗ, ADR, качество кода, тесты) + документация. Findings
|
||||
уровней P0/P1/P2 — нет.
|
||||
|
||||
## Findings
|
||||
|
||||
### P0 — Blocker
|
||||
- нет
|
||||
|
||||
### P1 — Must fix
|
||||
- нет
|
||||
|
||||
### P2 — Should fix
|
||||
- нет
|
||||
|
||||
## Соответствие ТЗ и AC
|
||||
- TRZ §2.1/§2.2 — ключ добавлен в оба payload в точности как предписано. ✅
|
||||
- AC-1 — `disable_web_page_preview: True` в `sendMessage` payload (TC-01). ✅
|
||||
- AC-2 — то же в `editMessageText` payload (TC-02). ✅
|
||||
- AC-3 — баннер исчезает (ручная верификация на staging; косвенно покрыто AC-1/AC-2). ✅
|
||||
- AC-4 — `parse_mode: "HTML"` сохранён в обоих payload, ссылка кликабельна (TC-03);
|
||||
`tests/test_notify_issue_links.py` зелёный. ✅
|
||||
- AC-5 — поля `chat_id/text/parse_mode/disable_notification` (send) и
|
||||
`chat_id/message_id/text/parse_mode` (edit) сохранены; контракты возврата
|
||||
(`message_id|None`, `EDIT_*`) не изменились (TC-04/TC-05). ✅
|
||||
- AC-6 — never-raise сохранён (TC-06); полный прогон `pytest tests/ -q` — **1058 passed**. ✅
|
||||
- AC-7 — документация обновлена в том же PR (см. ниже). ✅
|
||||
|
||||
## Соответствие ADR
|
||||
ADR-001 (Accepted): правка на уровне примитива (а не каждого вызова), безусловно
|
||||
без флага, top-level `disable_web_page_preview` вместо `link_preview_options`,
|
||||
`parse_mode: HTML` сохранён, контракты и инвариант «одна карточка на задачу» не
|
||||
тронуты. Реализация соответствует решению 1:1. Глобальные ADR не нарушены
|
||||
(`STAGE_TRANSITIONS`, `QG_CHECKS`, схема БД — без изменений). ✅
|
||||
|
||||
## Качество кода
|
||||
- Изменение минимальное, целевое; комментарии ссылаются на ORCH-080 и поясняют цель.
|
||||
- `try/except` never-raise в обеих функциях не затронут; пути без кредов и контракты
|
||||
возврата сохранены.
|
||||
- Тесты содержательные: инспектируют реальный payload через мок `httpx`
|
||||
(`call_args.kwargs["json"]`), покрывают флаг, регрессию `parse_mode`/полей,
|
||||
контракты возврата и never-raise (TC-01..06). Нет тривиальных/пустых тестов.
|
||||
- Security: ключ булев, новых поверхностей/секретов нет.
|
||||
|
||||
## Документация
|
||||
Изменён `src/` (поведение исходящих Telegram-запросов) → документация обновлена в
|
||||
том же PR, как требует CLAUDE.md §2/§6:
|
||||
- `CHANGELOG.md` — запись в `## [Unreleased]` (тип `fix:`). ✅
|
||||
- `CLAUDE.md` — раздел «Нотификации / Telegram live-tracker» дополнен пунктом
|
||||
«Без link-preview (ORCH-080)». ✅
|
||||
- `docs/architecture/README.md` — компонент Notifications дополнен ремаркой ORCH-080. ✅
|
||||
- ADR `docs/work-items/ORCH-080/06-adr/ADR-001-disable-telegram-link-preview.md` заведён. ✅
|
||||
|
||||
Документация соответствует коду; расхождений нет.
|
||||
Reference in New Issue
Block a user