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