Files
orchestrator/docs/work-items/ORCH-067/08-data-requirements.md

2.2 KiB
Raw Blame History

Требования к данным — ORCH-067

Изменения схемы БД: НЕТ

STAGE_TRANSITIONS, таблицы и колонки tasks/agent_runs не меняются. Это жёсткое ограничение TZ §6 и предпосылка ADR-001 (запрет колонки-флага для веток статуса).

Читаемые колонки tasks (существующие)

Колонка Использование в ORCH-067
id Ключ задачи.
work_item_id Текст номера (ORCH-NNN) + ключ резолва в link_for.
title Заголовок карточки (html.escape).
stage Offline-маппинг Plane-статуса (ADR-001 Р-1, слой 1).
brd_review_started_at, brd_review_ended_at Различение Analysis⏸️ In Review (offline, без сети).
repo Резолв project_id (get_project_by_repo) для ссылки и live-overlay.
plane_issue_id (UUID) issue_id в URL Plane + аргумент fetch_issue_state (live-overlay).
created_at, updated_at Тоталы времени в done-строке (без изменений).

render_task_tracker расширяет существующий SELECT по tasks, добавляя repo и plane_issue_id к уже выбираемым полям. Схему это не трогает — колонки уже есть.

Кэш в памяти (не БД)

Per-issue TTL-кэш live-статуса (ключ plane_issue_id, TTL tracker_live_status_ttl_s=60, ADR-001 Р-3) — in-memory, по образцу _STATES_CACHE в plane_sync.py. Не персистится, переживание рестарта не требуется (best-effort индикация). Очистка при рестарте — допустима.

Источник имён статусов

Имена и логические ключи статусов берутся из существующих структур src/plane_sync.py (_PLANE_NAME_TO_KEY, get_project_states, _DEFAULT_STATES), вводимых ORCH-066. Новых статусов/ключей ORCH-067 не добавляет.