6.4 KiB
6.4 KiB
Why
Мост работает в ежедневном режиме с 13.10.2026 (агент на виртуалке за VPN «Континент», обмен через общую папку UTM).
Отложенные находки bridge-core (#1) и folder-transport (#5) содержат несколько мест, где живая работа может привести
к дублю задачи в Jira, к команде, зависшей в claimed без пути восстановления, или к лишним запросам к Jira банка:
- R-11 / O-9 — хаб не знает логин Jira агента, поэтому
ensure_issueникогда не подтверждается по состоянию; каждый потерянный отчёт о создании задачи требует ручного действия. - O-3 — связь симметричного типа («Связанные»), стоящая в Jira в обратную сторону, считается конфликтом в
check_confirmedи «отсутствующей» в отчёте импорта (13.10.2026 импорт показал 3 такие ложныеmissing_links). - M-2 — ответ на
claimпотерян (сбой папки, перезапуск агента во время долгого запроса): команда навсегдаclaimed, в журнале агента её нет; очередь стоит 10 минут, затем команда требует force-cancel или повтора. - M-5 — поздний отчёт по force-отменённой
ensure_issueтеряет ключ созданной задачи. - M-11 — отчёт по команде в
queuedпринимается; двеensure_issueс одной темой в пакете дают одну задачу на два временных ключа. - M-9 / O-2 — после перезапуска агент забывает время последнего вызова Jira и сразу выполняет команду без паузы темпа; при восстановлении по журналу пауза обнуляется явно.
- FM-4 — восстановление по журналу повторно пишет
claimed. - Расхождение со спекой:
agent_statusотдаёт признакonline, спека говоритoffline.
Решения владельца 13.10.2026 (сессия brainstorming): пакет A follow-ups — первым; вариант A для M-2 — хаб довыдаёт
команду, выданную агенту и оставшуюся без отчёта (принцип «хаб не повторяет команды» уточняется: довыдача
неподтверждённой выдачи — не повтор); дизайн частей 1–3 (повторная выдача и отчёты; факты агента о Jira в claim; темп
после перезапуска, online, тесты и выкладка) одобрен.
What Changes
- jira-hub:
- повторная выдача:
claimпри наличии команды вclaimedвыдаёт её снова (самую старую), счётчикdeliveries; после 3 выдач без отчёта —failed«агент не отчитался после 3 выдач»; логика «свежей claimed» (10 минут простоя) и обход пакета с зависшим определителем (R-13) удаляются; - отчёт по
queued— 409; пакет с двумяensure_issueодной темы — 422; - поздний отчёт по отменённой
ensure_issueс ключом сохраняет результат и переносит заметкуnew:N→ ключ, статус остаётсяcancelled; agent_statusхранитjira_userиsymmetric_link_typesиз claim;check_confirmedподтверждаетensure_issueзадачей отjira_userи не считает обратную связь симметричного типа конфликтом; отчёт импорта так же;- заготовка настройки
reporterудаляется; MCPagent_statusпоказывает логин агента и довыданные команды.
- повторная выдача:
- jira-agent (версия 3):
- при старте
GET /myselfиGET /issueLinkType;jira_userиsymmetric_link_typesв каждом claim; - время последнего вызова Jira восстанавливается при старте из журнала; при восстановлении пауза команды не обнуляется;
- при восстановлении
claimedповторно не пишется.
- при старте
- Спеки:
hub-api,data-model,commands,agent,mcp— MODIFIED; признакonlineзакрепляется в спеке вместоoffline.
Non-goals
- Остальные находки follow-ups (
T-n,M-nвне перечня, расхождения второго порядка) — пакеты C и D. - Проверки поведения на реальной Jira банка (CRLF, Epic Link, постраничность комментариев, поле спринта) — пакет B.
- Подъём
min_agent_versionдо 3: агент v2 продолжает работать, новые поля claim необязательны. - Дубли
ensure_issueмежду разными пакетами: поиск дубля по теме за 7 дней уже сводит их к одной задаче.
Impact
jira-hub:queue.py(claim, report_result, agent_view),commands.py(validate, check_confirmed),importer.py,db.py(миграция:command.deliveries,agent_status.jira_user,agent_status.symmetric_link_types),api.py(409 на отчёт по queued),settings.py,mcp_server.py;CLAUDE.mdиARCHITECTURE.md— уточнённый принцип повторов.jira-agent:src/agent.py(Runner, Journal, HubClient.claim),README.md, версия 3.- Контракт: тело
POST /agent/claimполучает два необязательных поля; ответы не меняются. - Issues: aep/jira-hub#9, aep/jira-agent#9.