2.2 KiB
Требования к данным — 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 не добавляет.