Несколько проектов-меток в мосте (#61) #62
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/61-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 #61. Спека —
openspec/changes/projects/(proposal, design — решения 1–15 и «Decisions made without discussion» 1–51, дельты 7 спек). План —docs/superpowers/plans/2026-10-19-projects-hub.md. Агентская часть — aep/jira-agent#36 (v12, слит и опубликован,agent_status: ok v11 → v12).Что сделано
project(схема v4),GET/POST /projects; миграция v3→v4 заводит AWPCA «АРМ КА» с доской 4216, ключиbase_jql/board_idвsettingне удаляет.project = AURORA AND labels in ("AWPCA", …)— для автообновления, кнопки иrefreshиз MCP.GET /board?project=,GET /issues?project=(свои + соседи по связям + эпики своих).ensure_issueсама, чужие метки и задачи вне проекта — 422;batch.project,GET /batches?project=,retryсproject.ensure_sprint.board_idпри постановке (канбан / без доски / тип неизвестен — 422),refresh.boardsпри выдаче, типы досок из результата агента.jira-hub mcp --project <метка>; без привязки — только служебные инструменты;projects,project_create(с фрагментом.mcp.json).?project=в адресе и память браузера; раскладка доски по проектам (AWPCA — прежние ключи); фильтр спринтов по своим задачам.Проверка
make check: pytest 571 passed, vitest 340 passed, lint/tsc чисто;npm run e2e: 29 passed (5 новых вprojects.spec.ts). Ревью каждой задачи — без critical/important; финальное ревью ветки (opus): I-1, I-2 — исправлены.Rulings I made
refreshпишутся в любом статусе отчёта. Цена: тип доезжает на следующий удачный refresh.boards()отдаётtype = None, если тип неизвестен хотя бы у одного проекта с доской. Цена: лишний запрос типа агентом.\и управляющих символов (1f2fc14).labels_addнормализуется до метки проекта; лёгкий SELECT в_assign_boards; пустойprojectвretry/POST /batches— 422. Цена: малая.design.md, «Decisions made without discussion» 1–51.Находки
Исправлены: T2.1, T2.2, T3.1, T3.2, T5.1, T5.4, T6.1, T7.2, T8.1, T8.2, T8.4, T10.1–T10.7, I-1, I-2, T1.3, M-1…M-5. Отклонены: T2.4 (design #14), T6.3 (JSON даёт строки), T7.3 (спека, design #29), T8.6 (по плану), T9.3 (подпись коммитов по инструкции владельца). Полная таблица — ledger SDD.
Deferred
MIGRATIONS, пустая строка перед_migrate_projects.record_board_typesпринимает ключи"0","-1".board_idвsettingпри миграции.refreshне сбрасываетneighbor(узкое окно).author=""→api.mirror.board; подменаneighborв Python вlist_issues; нет тестов разреза сhide_closed/epic/регистром; пустойproject=без теста.queue.py.ensure_sprint/ensure_attachmentв пакете проекта,ensure_linkтолько поtarget,GET /batches?project=NOPE.issuesв MCP не упоминает ограничение проектом.selectоткрывается стрелками.viewerпосле создания проекта (покрыт e2e).hasSprint = true, если спринт только у своего эпика.storage.tsкак модульное состояние (design #46).ProjectGateпри ошибке загрузки нет «Повторить».ensure_sprintсравнивает текущий спринт по имени без учёта доски (aep/jira-agent#36).Выкатка (design, решение 14; README «Выкатка проектов»)
agent_status— v12.git pullна Mac mini →make web→ перезапуск хаба (владелец). Между pull и перезапуском не открывать новые сессии MCP.projectsв MCP показывает у AWPCAscrum(до этогоensure_sprintAWPCA — 422 «тип доски ещё не известен»).min_agent_version = 12.awp-ca—.mcp.jsonс--project AWPCA,/mcp→ reconnect (без него сессии awp-ca не работают с задачами).🤖 Generated with Claude Code