23 lines
2.7 KiB
Markdown
23 lines
2.7 KiB
Markdown
# 10-Tech Risks — ORCH-080
|
||
|
||
Work Item ID: ORCH-080
|
||
Зона: `src/notifications.py` (две строки в `send_telegram`/`edit_telegram`)
|
||
|
||
Косметическая правка UX (LOW). Топология, схема БД, стадии, QG — не меняются.
|
||
Риск регрессии оценён как **нулевой**; ниже — остаточные пункты для внимания.
|
||
|
||
| # | Риск | Вероятность | Влияние | Митигация |
|
||
|---|------|-------------|---------|-----------|
|
||
| R-1 | Опечатка ключа/значения (`disable_web_page_preview`) — баннер не гаснет | Низкая | Низкое (косметика) | unit-тест AC-1/AC-2 инспектирует `httpx.post.call_args.kwargs["json"]`; ручная верификация на staging (AC-3) |
|
||
| R-2 | Случайное удаление `parse_mode: "HTML"` → ссылка `<a href>` ломается | Очень низкая | Среднее (теряется кликабельность) | AC-4: unit-тест на наличие `parse_mode: "HTML"` в обоих payload; `test_notify_issue_links.py` остаётся зелёным |
|
||
| R-3 | Merge-конфликт с ORCH-067/ORCH-074 в `src/notifications.py` | Низкая | Низкое | По ORCH-026 сериализация merge одного репо; запуск после доезда ORCH-74 в `main` (BRD §7); pre-merge rebase (ORCH-043) |
|
||
| R-4 | Регрессия контракта возврата примитивов (`message_id|None` / `EDIT_*`) | Очень низкая | Среднее | Правка строго аддитивна (новый ключ в payload), возвраты не трогаются; AC-5 + существующие тесты трекера |
|
||
| R-5 | Telegram депрекейтит top-level `disable_web_page_preview` в пользу `link_preview_options` | Очень низкая | Низкое (forward-compat) | Top-level флаг остаётся валиден и обратносовместим; миграция на `link_preview_options.is_disabled` — отдельная задача при необходимости |
|
||
|
||
## Инварианты, которые НЕЛЬЗЯ нарушить
|
||
- `never-raise` обоих примитивов (`try/except` сохранён).
|
||
- `parse_mode: "HTML"` в обоих payload (иначе `<a href>` ломается).
|
||
- `disable_notification` в `send_telegram` (карточка тихая).
|
||
- Инвариант «одна карточка на задачу» (bump/edit) — не затрагивается.
|
||
- Контракты возврата: `send_telegram → message_id|None`, `edit_telegram → EDIT_*`.
|