---
type: test-report
work_item_id: ORCH-067
result: PASS
---

# Test Report — ORCH-067

Telegram tracker: bump по умолчанию, статус-строка карточки по модели Plane (ORCH-066),
кликабельный номер задачи в карточке и во всех уведомлениях орка.

## Окружение
- Python: 3.12.13
- pytest: 8.3.3
- Ветка: `feature/ORCH-067-telegram-tracker-bump-plane` (worktree)
- Дата: 2026-06-08
- Review-вердикт: APPROVED (`12-review.md`, version 2)

## Smoke test API (prod, :8500)
| Endpoint | Результат |
|----------|-----------|
| `GET /health` | PASS — `{"status":"ok","service":"orchestrator"}` |
| `GET /status` | PASS — отдаёт active_tasks (ORCH-067 на stage=testing) |
| `GET /queue` | PASS — breaker closed, preflight_ok, counts корректны |

Прод-контейнер не перезапускался (self-hosting инвариант соблюдён).

## Результаты по тест-плану (04-test-plan.yaml)

| TC ID | Описание | Модуль | AC | Результат |
|-------|----------|--------|----|-----------|
| TC-01 | Дефолт `tracker_mode == "bump"` без env | test_tracker_bump_default.py | AC-1 | PASS |
| TC-02 | bump: delete(old)→send(silent)→repoint, одна карточка | test_tracker_bump_default.py | AC-2 | PASS |
| TC-03 | bump fail-safe: send=None не обнуляет указатель | test_tracker_bump_default.py | AC-3 | PASS |
| TC-04 | `ORCH_TRACKER_MODE=edit` — прежнее поведение | test_tracker_bump_default.py | AC-4 | PASS |
| TC-05 | Карточка содержит строку Plane-статуса | test_tracker_status_line.py | AC-5 | PASS |
| TC-06 | Маппинг stage → Plane-статус (§2.2, параметризованный) | test_tracker_status_line.py | AC-6 | PASS |
| TC-07 | In Review из brd-clock, без сети; строка «Подтверждение BRD» сохранена | test_tracker_status_line.py | AC-7 | PASS |
| TC-08 | Awaiting Deploy + Needs Input отражены | test_tracker_status_line.py | AC-8 | PASS |
| TC-09 | render_task_tracker не падает на битых данных | test_tracker_status_line.py | AC-9, AC-16 | PASS |
| TC-10 | Кликабельный номер в карточке при полных данных | test_tracker_issue_link.py | AC-10 | PASS |
| TC-11 | Fail-safe ссылки в карточке (параметризованный) | test_tracker_issue_link.py | AC-11 | PASS |
| TC-12 | `plane_issue_link(...)` — ссылка/escape, никогда не бросает | test_plane_issue_link.py | AC-12 | PASS |
| TC-13 | notify_approve_requested: номер кликабелен, одна нотификация | test_notify_issue_links.py | AC-13 | PASS |
| TC-14 | notify_error: кликабелен/деградирует без падения | test_notify_issue_links.py | AC-13, AC-12 | PASS |
| TC-15 | Точки send_telegram (stage_engine/launcher/merge_gate/job_reaper/security_gate/reconciler/main) используют хелпер | test_notify_issue_links.py | AC-13 | PASS |
| TC-16 | HTML-экранирование title/`&`, валидность `<a>` | test_tracker_issue_link.py | AC-14 | PASS |
| TC-17 | Инварианты транспорта: disable_notification, одна карточка | test_tracker_bump_default.py | AC-15 | PASS |
| TC-18 | Нерегресс нотификаций + деградация для enduro-trails | test_notify_done_regression.py | AC-16, AC-17 | PASS |

Все 18 TC из тест-плана — PASS. Целевые модули: **57 passed**.

## Покрытие acceptance criteria
AC-1..AC-18 — все покрыты соответствующими TC и зелёные. AC-17 (полный набор) подтверждён
прогоном всего пакета.

## Вывод pytest (полный регресс)

```
$ python -m pytest tests/ -v --tb=short
...
======================= 907 passed, 1 warning in 22.36s ========================
```

Единственный warning — пре-существующий `PydanticDeprecatedSince20` в `src/config.py:4`
(не относится к ORCH-067, не регресс).

Целевые модули задачи:
```
$ python -m pytest tests/test_tracker_bump_default.py tests/test_tracker_status_line.py \
    tests/test_tracker_issue_link.py tests/test_plane_issue_link.py \
    tests/test_notify_issue_links.py tests/test_notify_done_regression.py -q
57 passed, 1 warning in 1.39s
```

## Итог
**PASS** — 907/907 тестов зелёные, все 18 TC и AC-1..AC-18 выполнены, smoke API OK,
нерегресс для enduro-trails подтверждён. Задача готова к переходу на `deploy-staging`.
