4.4 KiB
ADDED Requirements
Requirement: Лента изменений в MCP
Инструмент changes SHALL отдавать ленту изменений (GET /changes) с параметрами hours (число > 0), since,
until, kinds, key. hours и since вместе — ответ «либо hours, либо since». Без hours и since — с начала
текущих суток по местному времени машины MCP-сервера; с hours — since = сейчас − hours. В сессии, привязанной к
проекту P, без key — project = P; с key — без проекта. Без привязки и без key — ответ «сессия не привязана к
проекту: запустите MCP с --project <метка> (список — projects)», в хаб не ходить; с key — работает.
Вид ответа: первая строка — период по местному времени («изменения с 22.10 00:00 по 22.10 14:05»); затем события,
сгруппированные по задаче; задачи — по времени последнего события, новые сверху; у задачи строка «КЛЮЧ тема (до 80
символов) — текущий статус», под ней события по времени, новые сверху, каждое — «ЧЧ:ММ автор: <что>», с датой «ДД.ММ»
перед временем, если событие не в текущих сутках. <что>: статус — «статус «было» → «стало»»; описание — «описание
изменено»; срок и плановые даты — «срок / плановое начало / плановое окончание ДД.ММ → ДД.ММ» (дата — из начала
from_value/to_value вида ГГГГ-ММ-ДД, иначе from/to как есть; пустое значение — «—»);
комментарий — «комментарий: » и первые 200 символов текста с «…»; прочие поля — «<поле>: «было» → «стало»» (значения до
80 символов с «…»). Событий нет — «за период изменений нет». truncated — последняя строка «показаны последние N
событий, сузьте период». Ошибка 422 хаба — её текст.
Инструмент issue SHALL после комментариев выводить «изменения (N):» и 5 последних элементов changes задачи в том же
виде событий (с датой), «ещё M», если их больше 5; при changes = [] — строки нет.
Инструмент sync_log SHALL выводить у каждого прогона «журнал: принят ДД.ММ ЧЧ:ММ» (по history_at, местное время)
или «журнал: нет».
Scenario: Что закрылось сегодня
- WHEN сессия
AWPCA,changes {kinds: "status"}в 14:05; сегодня X переведена в «Готово» в 11:15 - THEN ответ содержит строку X с темой и статусом «Готово» и «11:15 Петров Пётр: статус «В работе» → «Готово»»
Scenario: За два часа
- WHEN сессия
AWPCA,changes {hours: 2} - THEN запрос
GET /changes?project=AWPCA&since=<сейчас − 2 ч>; в ответе события статусов, описаний, сроков и комментариев
Scenario: Без привязки
- WHEN MCP без
--project,changes {} - THEN ответ «сессия не привязана к проекту: …», запросов к
GET /changesнет
Scenario: Пустой период
- WHEN
changes {hours: 1}, событий нет - THEN ответ — строка периода и «за период изменений нет»
Scenario: История в карточке
- WHEN
issue {key: X}, у X 7 элементов журнала - THEN ответ содержит «изменения (7):», 5 последних событий и «ещё 2»