Files
orchestrator/docs/work-items/ORCH-068/10-tech-risks.md

3.5 KiB
Raw Permalink Blame History

Технические риски — ORCH-068

ID Риск Вероятность Влияние Митигация
R-1 Plane /states/ не отдаёт поле group (старая версия API / урезанный ответ) → терминал-исключение по группе не срабатывает Низкая Высокое (рецидив livelock) Fallback на логические ключи терминалов {done, cancelled} при отсутствии group; never-raise → консервативная тишина при сбое резолва
R-2 Over-exclusion: легитимная задача в started/review-группе ошибочно классифицирована как терминал → пропущена легитимная разблокировка (регресс INV-6) Низкая Среднее Исключаем ТОЛЬКО группы completed/cancelled; approved/rejected относятся к started/unstarted → не задеты; регресс-тесты TC-06/TC-07
R-3 Гонка before/after: между stage_before и stage_after живой webhook двигает стадию → ложный _note_unblock Очень низкая Низкое active-job guard + max_concurrency=1 уже сериализуют; дедуп TR-3 подавляет повтор; ложный unblock безвреден (0 jobs/токенов)
R-4 TTL 300s провоцирует частые /states/-перезапросы при многих проектах Низкая Низкое 1 запрос/проект/5 мин — пренебрежимо; ORCH_PLANE_STATES_TTL_S=0 отключает TTL
R-5 TTL-перезапрос в момент недоступности Plane → временный fallback на _DEFAULT_STATES (enduro) для не-enduro проекта Низкая Среднее Поведение идентично текущему cold-cache fallback; самозалечивается следующим успешным запросом; не хуже статус-кво
R-6 Дедуп-словарь растёт неограниченно (по issue_id) Очень низкая Низкое Ключи — только реально разблокированные issue (редки); сбрасывается при рестарте; при необходимости — ограничить размер/LRU
R-7 Изменение в get_project_states (кэш-запись) ломает прочих потребителей формы возврата Низкая Высокое Внешняя сигнатура и форма {logical_key: uuid} сохранены; группа — отдельный accessor; покрыто TC-12 (совместимость по умолчанию)
R-8 Self-hosting: правка в работающем прод-инструменте Высокое Обязательный staging-гейт (8501); запрет рестарта прод-контейнера в рамках задачи; INV-7

Замечания

  • Все правки локальны (reconciler.py, plane_sync.py, config.py); схема БД, реестры STAGE_TRANSITIONS/QG_CHECKS, контракты handle_*, F-1/F-3 — не затронуты (AC-10).
  • Тесты офлайн (мок Plane API / Telegram / _dispatch) — сетевых вызовов в CI нет.