Агент v12: доски проектов из параметров команд (#35) #36
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/35-projects"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #35. Часть фичи aep/jira-hub#61 (несколько проектов-меток в мосте). Контракт —
jira-hub/openspec/changes/projects(specsagent,commands); решения агента —openspec/changes/agent-v12-project-boards/design.md.Что сделано
ensure_sprintберёт доску изboard_idкоманды; без него —settings.board_id, как v11. Кэш спринтов — по доскам.refreshсboards: [{id, type}]: тип досок сtype = null—GET /rest/agile/1.0/board/{id}, результатboards: {"<id>": scrum|kanban|null}; спринты — со всех scrum-досок (последнее найденное имя побеждает); безboards— как v11.kanban(R-36); иная ошибка спринтов —failedс «доска : …».AGENT_VERSION = 12, README, ARCHITECTURE, CLAUDE.md.Проверка
/usr/bin/python3 -W error::ResourceWarning -m unittest discover -s tests -t .→ Ran 281 tests, OK. Финальное ревью ветки (opus): 0 critical, 1 important (исправлена), 5 minor (4 исправлены, 1 отложена).Rulings I made
refresh, в том числе при пустыхkeys. Цена: лишний GET, если поиск затем упадёт.HttpErrorнаGET /board/{id}→ типnull+ лог,refreshпродолжается;ConnectionError— повтор всегоrefresh. Цена: временный 5xx откладывает тип до следующегоrefresh.failed), чтобы не обнулить спринты в зеркале. Цена: одна сломанная доска останавливает обновление всех проектов (смягчено R-36).settings.board_id— запасной только без ключаboards/board_id;boards: []— досок нет. Цена: гипотетический старый хаб с[]потерял бы спринты.boardsв результате только если тип хотя бы одной доски запрашивался. Цена: хаб обязан принимать результат безboards(учтено в плане хаба).str(id), повторы и элементы безid/не-словари пропускаются, тип — только точныеscrum/kanban. Цена:"Scrum"от Jira дал быnull.failedс номером доски. Цена: лишний GET при ошибке спринтов.Находки
ced48cf(R-36)ensure_sprint: текущий спринт сравнивается по имени без учёта доски (одноимённые спринты разных досок)boardsне-словарь → внутренняя ошибка агентаced48cfskip_specsне проходитopenspec validateced48cfced48cftests/test_refresh.pyced48cfDeferred
ensure_sprintсравнивает текущий спринт задачи только по имени.Выкатка
Сливается и публикуется до хаба с проектами (design хаба, решение 14): merge →
agent publish→agent_statusпоказывает v12 → затем хаб.🤖 Generated with Claude Code