Files
orchestrator/docs/work-items/ORCH-109/13-test-report.md
claude-bot 8628e609d9
All checks were successful
CI / test (push) Successful in 4m27s
CI / test (pull_request) Successful in 4m8s
tester(ET): auto-commit from tester run_id=669
2026-06-14 14:26:11 +03:00

6.2 KiB
Raw Blame History

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-109 testing tester pass 2026-06-14 claude-opus-4-8 test-report ORCH-109

Test Report — ORCH-109 — timeout budgets + launch-time model telemetry для developer/reviewer

Машинный вердикт читается ТОЛЬКО из frontmatter. Канонический ключ — result:.

Окружение

  • Python: 3.12.13
  • pytest: 8.3.3 (plugins: cov-5.0.0, anyio-4.13.0, asyncio-0.23.8)
  • Дата: 2026-06-14
  • Worktree: feature/ORCH-109-orch-timeout-budgets-launch-ti (/repos/_wt/orchestrator/feature_ORCH-109-orch-timeout-budgets-launch-ti/)

Smoke API (read-only, прод не трогался)

Endpoint Результат
GET /health PASS — {"status":"ok","service":"orchestrator"}
GET /status PASS — задача 98 (ORCH-109) в стадии testing, агент не запущен
GET /queue PASS — блок serial_gate присутствует (ORCH-088); блок auto_labels присутствует (ORCH-089)

Результаты

Полный регресс

pytest tests/ -q1899 passed, 1 warning in 516.70s (0:08:36) (exit 0). Единственное предупреждение — PydanticDeprecatedSince20 (class-based config, pre-existing, не связано с ORCH-109). Прод-контейнер не затрагивался.

Профильная сюита

pytest tests/test_orch109_timeout_model.py -v25 passed (exit 0, 13.50s). Покрывает TC-01…TC-12 (+ доп. варианты: configurable-keys, overrides-json-wins, параметризация non-positive [0,-5,abc], clean-exit advances, unstamped-killed drops suffix).

Сопоставление с тест-планом (04-test-plan.yaml)

TC ID Описание Тест-функция(и) Результат
TC-01 _resolve_timeout('developer'/'reviewer') возвращает поднятый бюджет test_tc01_developer_reviewer_raised, test_tc01_dedicated_keys_are_configurable, test_tc01_overrides_json_wins_over_dedicated PASS
TC-02 Прочие роли (analyst/architect/tester/deployer) → глобальный 1800 test_tc02_other_roles_use_global_default PASS
TC-03 Малформный конфиг → откат на дефолт + WARNING, без исключения test_tc03_malformed_overrides_json_never_raises, test_tc03_non_positive_dedicated_falls_back[0/-5/abc] PASS
TC-04 Launch стампит agent_runs.model (непустую) рядом с effort test_tc04_spawn_stamps_model_and_effort PASS
TC-05 Стамп изолирован: сбой записи не пробрасывает исключение (never-raise) test_tc05_stamp_failure_is_isolated PASS
TC-06 record_usage(None)/model=None НЕ затирают launch-стамп (COALESCE) test_tc06_record_usage_none_preserves_model, test_tc06_record_usage_model_none_preserves_model PASS
TC-07 record_usage с непустой model уточняет/проставляет значение test_tc07_record_usage_nonempty_model_enriches_blank, test_tc07_record_usage_refines_existing_model PASS
TC-08 Sanity reaper-инварианта: reaper_max_running_s > max(timeout)+grace test_tc08_shipped_defaults_satisfy_invariant, test_tc08_resolved_max_is_developer PASS
TC-09 _stage_line для exit_code=-9 рендерит · <model> · <effort> (model не null) test_tc09_killed_run_renders_model_effort, test_tc09_unstamped_killed_run_drops_model_suffix PASS
TC-10 get_running_agents отдаёт непустую model для running-job (in-flight) test_tc10_running_job_exposes_model PASS
TC-11 Анти-salvage: killed developer/reviewer (exit_code=-9) не продвигает стадию test_tc11_killed_developer_run_does_not_advance, test_tc11_killed_reviewer_run_does_not_advance, test_tc11_clean_exit_advances PASS
TC-12 Анти-регресс: STAGE_TRANSITIONS/QG_CHECKS/схема agent_runs не изменены test_tc12_stage_transitions_unchanged, test_tc12_agent_runs_model_effort_columns_preexist, test_tc12_qg_checks_registry_present PASS

Все 12 TC выполнены и сопоставлены.

Сопоставление с критериями приёмки (03-acceptance-criteria.md)

AC Критерий Покрытие Результат
AC-1 Модель стампится в agent_runs.model на launch TC-04 PASS
AC-2 Постфактум-enrich не затирает launch-стамп при оборванном JSON TC-06, TC-07 PASS
AC-3 Тайм-аут developer/reviewer поднят и конфигурируем без влияния на прочие TC-01, TC-02 PASS
AC-4 Малформный timeout-конфиг → безопасный откат (never-break) TC-03 PASS
AC-5 Reaper-инвариант сохранён TC-08 PASS
AC-6 Строка стадии трекера показывает model+effort при timeout/kill TC-09 PASS
AC-7 In-flight видимость модели в /metrics//queue TC-10 PASS
AC-8 Timeout-killed прогон не продвигает стадию (анти-salvage) TC-11 PASS
AC-9 Неприкосновенность контрактов и схемы TC-12 PASS
AC-10 Документация и полный регресс зелёный full regress (1899 passed) + review APPROVED PASS

Все 10 AC покрыты и зелёные.

Итог

PASS — полный регресс зелёный (1899 passed, exit 0), профильная сюита ORCH-109 зелёная (25 passed), smoke API OK (serial_gate/auto_labels присутствуют в /queue), каждый TC из тест-плана выполнен и сопоставлен с критериями приёмки. Задача переходит на deploy-staging.