7.9 KiB
7.9 KiB
result, work_item, stage, author_agent, status, created_at, model_used, type, work_item_id
| result | work_item | stage | author_agent | status | created_at | model_used | type | work_item_id |
|---|---|---|---|---|---|---|---|---|
| PASS | ORCH-091 | testing | tester | pass | 2026-06-09 | claude-opus-4-8 | test-report | ORCH-091 |
Test Report — ORCH-091
BUG: заголовок-строка live-карточки трекера застревает на «To Analyse» на
stage=deploy-staging (нет ключа в _STAGE_STATUS_LABEL) + ложные ✅-строки после
отката + занижение метрик строки стадии (последний прогон вместо суммы попыток).
Окружение
- Python: 3.12.13
- pytest: 8.3.3
- Worktree:
/repos/_wt/orchestrator/feature_ORCH-091-bug-to-analyse-stage-deploy-st - Ветка:
feature/ORCH-091-bug-to-analyse-stage-deploy-st - Дата: 2026-06-09
Предусловия
- Вердикт reviewer (
12-review.md): APPROVED (P0=0, P1=0) ✅ - Тесты прогнаны из worktree ветки задачи (не из общего
/repos/orchestrator) ✅
Smoke API (read-only)
| Эндпоинт | Результат |
|---|---|
GET /health |
{"status":"ok","service":"orchestrator"} — OK |
GET /status |
200, активные задачи отдаются (ORCH-091 = testing) — OK |
GET /queue |
200; блок serial_gate присутствует (ORCH-088) ✅; блок auto_labels присутствует (ORCH-089) ✅ |
serial_gate.per_repo.orchestrator.active_task = ORCH-091/testing, регресс смока отсутствует.
Покрытие тест-плана (04-test-plan.yaml) ↔ критерии приёмки (03-acceptance-criteria.md)
| TC ID | Описание | AC | Тест(ы) | Результат |
|---|---|---|---|---|
| TC-01 | Полнота карты: каждый ключ STAGE_TRANSITIONS (программная итерация) → непустой лейбл ≠ «To Analyse» (кроме created) |
AC-1 | test_tracker_status_line::test_orch091_tc01_every_stage_has_meaningful_label[*] (9 параметров) + test_orch091_tc01_created_stays_to_analyse |
PASS |
| TC-02 | stage='deploy-staging' → осмысленный staging-лейбл ≠ «To Analyse» и ≠ лейбла deploy |
AC-2 | test_tracker_status_line::test_orch091_tc02_deploy_staging_label |
PASS |
| TC-03 | Неизвестная стадия (__bogus__) → нейтральный фолбэк (не «To Analyse»); never-raise на битом/None входе |
AC-3 | test_orch091_tc03_unknown_stage_neutral_not_to_analyse + test_orch091_tc03_cancelled_offline_label + test_tc09c_plane_status_label_never_raises |
PASS |
| TC-04 | Регресс ветвей plane_status_label: analysis+brd-clock→In Review; deploy→Awaiting Deploy; done→Done; created→To Analyse |
AC-6 | test_tracker_status_line::test_tc06_stage_to_plane_status[*] (8) + test_tc07_in_review_from_brd_clock + test_tc08_awaiting_deploy_offline |
PASS |
| TC-05 | Откат deploy-staging→development: Разработка активна (🔄), Тестирование/Внедрение НЕ ✅; Анализ/Архитектура остаются ✅ |
AC-4 | test_tracker_rollback_metrics::test_tc05_rollback_suppresses_later_stage_checkmarks + test_tc05_forward_progress_keeps_earlier_checkmarks + test_tc05_deploy_staging_keeps_deployer_row |
PASS |
| TC-06 | Суммирование метрик: developer с 3 agent_runs (фикстура ORCH-069) → строка «Разработка» = Σ стоимости ≈ $3.98, Σ токенов, Σ времени |
AC-5 | test_tracker_rollback_metrics::test_tc06_stage_line_sums_all_developer_runs |
PASS |
| TC-07 | Сходимость тоталов карточки (💰/🔢/⏱ Агенты) с SUM(agent_runs) по task_id при ретраях |
AC-5 | test_tc07_totals_converge_with_sum_agent_runs + test_tc07_sum_of_stage_lines_equals_totals_on_done |
PASS |
| TC-08 | render_task_tracker never-raise: NULL timestamps / отсутствующий stage → строка-фолбэк без исключения |
AC-7 / NFR-1 | test_tc08_render_survives_null_timestamps_and_runs + test_tc08_render_survives_bogus_stage |
PASS |
| TC-09 | Регресс строк карточки: формат строк стадий, эффорт-суффикс (ORCH-087), «Подтверждение BRD», блок тоталов — без изменений | AC-6 | test_telegram_tracker.py + test_tracker_effort_time.py (эффорт по ролям, capped review-time, done-time labels) — все зелёные |
PASS |
Каждый TC из 04-test-plan.yaml выполнен и сопоставлен с критериями 03-acceptance-criteria.md.
Вывод pytest
$ cd /repos/_wt/orchestrator/feature_ORCH-091-bug-to-analyse-stage-deploy-st
$ pytest tests/ -v --tb=short
tests/test_tracker_rollback_metrics.py::test_tc05_rollback_suppresses_later_stage_checkmarks PASSED
tests/test_tracker_rollback_metrics.py::test_tc05_forward_progress_keeps_earlier_checkmarks PASSED
tests/test_tracker_rollback_metrics.py::test_tc05_deploy_staging_keeps_deployer_row PASSED
tests/test_tracker_rollback_metrics.py::test_tc06_stage_line_sums_all_developer_runs PASSED
tests/test_tracker_rollback_metrics.py::test_tc07_totals_converge_with_sum_agent_runs PASSED
tests/test_tracker_rollback_metrics.py::test_tc07_sum_of_stage_lines_equals_totals_on_done PASSED
tests/test_tracker_rollback_metrics.py::test_tc08_render_survives_null_timestamps_and_runs PASSED
tests/test_tracker_rollback_metrics.py::test_tc08_render_survives_bogus_stage PASSED
tests/test_tracker_status_line.py::test_orch091_tc01_every_stage_has_meaningful_label[analysis] PASSED
tests/test_tracker_status_line.py::test_orch091_tc01_every_stage_has_meaningful_label[architecture] PASSED
tests/test_tracker_status_line.py::test_orch091_tc01_every_stage_has_meaningful_label[development] PASSED
tests/test_tracker_status_line.py::test_orch091_tc01_every_stage_has_meaningful_label[review] PASSED
tests/test_tracker_status_line.py::test_orch091_tc01_every_stage_has_meaningful_label[testing] PASSED
tests/test_tracker_status_line.py::test_orch091_tc01_every_stage_has_meaningful_label[deploy-staging] PASSED
tests/test_tracker_status_line.py::test_orch091_tc01_every_stage_has_meaningful_label[deploy] PASSED
tests/test_tracker_status_line.py::test_orch091_tc01_every_stage_has_meaningful_label[done] PASSED
tests/test_tracker_status_line.py::test_orch091_tc01_every_stage_has_meaningful_label[cancelled] PASSED
tests/test_tracker_status_line.py::test_orch091_tc01_created_stays_to_analyse PASSED
tests/test_tracker_status_line.py::test_orch091_tc02_deploy_staging_label PASSED
tests/test_tracker_status_line.py::test_orch091_tc03_unknown_stage_neutral_not_to_analyse PASSED
tests/test_tracker_status_line.py::test_orch091_tc03_cancelled_offline_label PASSED
... (полный набор регресса трекера/usage/webhooks/verdict-status зелёный)
======================= 1370 passed, 1 warning in 39.33s =======================
(1 warning — PydanticDeprecatedSince20 в src/config.py:8, преэкзистный, не связан с ORCH-091.)
Итог
PASS
- Все 1370 тестов зелёные; новые тесты ORCH-091 (TC-01…TC-08) присутствуют и проходят.
- Каждый TC из тест-плана выполнен и сопоставлен с AC-1…AC-7.
- Smoke read-only OK; блоки
serial_gateиauto_labelsприсутствуют вGET /queue(без регресса). - Изменение indication-only / never-раise; регресс существующих меток карточки (AC-6) подтверждён.
Вердикт: result: PASS → задача переходит на deploy-staging.