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