Агент v10: комментарии задач в состоянии refresh (#27) #28

Merged
aep merged 5 commits from feat/27-agent-v10-comments into main 2026-10-15 14:31:32 +03:00
Owner

Агент v10: при refresh передаёт хабу комментарии каждой задачи — для карточки задачи веб-приложения хаба (aep/jira-hub#37).

Closes #27. Спека — jira-hub/openspec/changes/issue-card-modal/ (specs/agent, «Чтение состояния»; design 1–4); решения агентской части — openspec/changes/agent-v10-comments/design.md.

Что изменилось

  • Executor.STATE_FIELDS + comment: комментарии приходят тем же search, новых вызовов Jira на обычную задачу нет.
  • Executor.comments_of: если Jira отдала меньше комментариев, чем comment.total, — дочитывание GET /issue/{key}/comment по 100 (через JiraClient, темп и 429 — как у любых вызовов).
  • Executor.comment_state: {id, author, created, updated, body}; автор — displayName, иначе name, иначе null; пустой текст — "".
  • comments есть у каждой задачи состояния, включая соседей; нет комментариев — [].
  • AGENT_VERSION = 10; README (особенности refresh), CLAUDE.md.
  • Фейк Jira: fields.comment как у Jira Server (только если запрошено в fields), add_comment, обрезка списка в поиске search_comment_cap.

Совместимость: нынешний хаб (схема v2) поле comments пропускает; хаб из jira-hub#37 его хранит и проверяет форму.

Проверки

  • /usr/bin/python3 -W error::ResourceWarning -m unittest discover -s tests -t . — 230 тестов, OK (Python 3.9.6).
  • Новые тесты: test_comments_in_state, test_comments_partial_list_is_read_fully (130 комментариев → 2 дочитывания), test_comments_field_missing.
  • Финальное ревью ветки (opus): Review Focus 1–5 подтверждены, в том числе 429 при дочитывании (скриптом).

Находки финального ревью (агент)

Маркер Суть Статус
I-1 test_refresh_empty_keys потерял две проверки при вставке новых тестов fixed 28b21e0
M-1 комментарий с id null/"" → "None" (слияние в хабе) или 422 на всю пачку deferred
M-2 404/403 при дочитывании комментариев роняет весь refresh deferred
M-3 нет теста на comments у соседей deferred
M-4 фейк Jira: PUT комментария не обновляет updated; displayName «me» против «Me» deferred
M-5 CLAUDE.md «Последний change» — неархивный путь deferred (обновить при закрытии)

Rulings I made

  • R-20 — размер пачки POST /agent/state с комментариями отдельно не ограничивается (риск принят в design хаба); цена ошибки: 413 при >16 МБ уронит весь refresh.
  • R-21 — ограничения видимости комментариев Jira не переносятся; цена ошибки: ��акой комментарий виден в веб-приложении хаба.
    (R-1…R-5 — в design.md хаба: спека агента в change хаба, просрочка, все комментарии, команды свёрнуты, «Отмена» в заметках.)

После merge

  • Публикация: uv run --project ../jira-hub jira-hub agent publish src/agent.py из основного checkout jira-agent на main — пишет в каталог живого хаба, только по команде владельца; проверка — MCP agent_status «обновление: ok v9 → v10».

🤖 Generated with Claude Code

Агент v10: при `refresh` передаёт хабу комментарии каждой задачи — для карточки задачи веб-приложения хаба (aep/jira-hub#37). Closes #27. Спека — `jira-hub/openspec/changes/issue-card-modal/` (`specs/agent`, «Чтение состояния»; design 1–4); решения агентской части — `openspec/changes/agent-v10-comments/design.md`. ## Что изменилось - `Executor.STATE_FIELDS` + `comment`: комментарии приходят тем же `search`, новых вызовов Jira на обычную задачу нет. - `Executor.comments_of`: если Jira отдала меньше комментариев, чем `comment.total`, — дочитывание `GET /issue/{key}/comment` по 100 (через `JiraClient`, темп и 429 — как у любых вызовов). - `Executor.comment_state`: `{id, author, created, updated, body}`; автор — `displayName`, иначе `name`, иначе `null`; пустой текст — `""`. - `comments` есть у каждой задачи состояния, включая соседей; нет комментариев — `[]`. - `AGENT_VERSION = 10`; README (особенности `refresh`), CLAUDE.md. - Фейк Jira: `fields.comment` как у Jira Server (только если запрошено в `fields`), `add_comment`, обрезка списка в поиске `search_comment_cap`. Совместимость: нынешний хаб (схема v2) поле `comments` пропускает; хаб из jira-hub#37 его хранит и проверяет форму. ## Проверки - `/usr/bin/python3 -W error::ResourceWarning -m unittest discover -s tests -t .` — 230 тестов, OK (Python 3.9.6). - Новые тесты: `test_comments_in_state`, `test_comments_partial_list_is_read_fully` (130 комментариев → 2 дочитывания), `test_comments_field_missing`. - Финальное ревью ветки (opus): Review Focus 1–5 подтверждены, в том числе 429 при дочитывании (скриптом). ## Находки финального ревью (агент) | Маркер | Суть | Статус | |---|---|---| | I-1 | `test_refresh_empty_keys` потерял две проверки при вставке новых тестов | fixed 28b21e0 | | M-1 | комментарий с `id` null/"" → `"None"` (слияние в хабе) или 422 на всю пачку | deferred | | M-2 | 404/403 при дочитывании комментариев роняет весь `refresh` | deferred | | M-3 | нет теста на `comments` у соседей | deferred | | M-4 | фейк Jira: `PUT` комментария не обновляет `updated`; `displayName` «me» против «Me» | deferred | | M-5 | CLAUDE.md «Последний change» — неархивный путь | deferred (обновить при закрытии) | ## Rulings I made - R-20 — размер пачки `POST /agent/state` с комментариями отдельно не ограничивается (риск принят в design хаба); цена ошибки: 413 при >16 МБ уронит весь `refresh`. - R-21 — ограничения видимости комментариев Jira не переносятся; цена ошибки: ��акой комментарий виден в веб-приложении хаба. (R-1…R-5 — в design.md хаба: спека агента в change хаба, просрочка, все комментарии, команды свёрнуты, «Отмена» в заметках.) ## После merge - Публикация: `uv run --project ../jira-hub jira-hub agent publish src/agent.py` из основного checkout `jira-agent` на main — пишет в каталог живого хаба, только по команде владельца; проверка — MCP `agent_status` «обновление: ok v9 → v10». 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 5 commits 2026-10-15 12:15:32 +03:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Поле comment в том же search; при неполном списке — дочитывание /issue/{key}/comment по 100.
Спека: jira-hub/openspec/changes/issue-card-modal/ (agent, «Чтение состояния»).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aep merged commit a799c54da7 into main 2026-10-15 14:31:32 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aep/jira-agent#28
No description provided.