Агент v11: тип «Ошибка», ensure_attachment, устойчивое дочитывание комментариев (#31) #32
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/31-bug-and-attachments"
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 #31. Закрывает M-1 и M-2 из #30 (M-3, M-4 остаются). Пара — aep/jira-hub PR #47 (хранилище файлов,
ensure_attachment,GET /agent/files/{sha256},sizeпри выдаче). Спека —openspec/changes/bug-and-attachments/в jira-hub; решения агента —openspec/changes/agent-v11-bug-attachments/design.md(R-20…R-27, O-1, O-2).Что сделано
issue_types:{id}, если задан, иначе{name}; нет записи или ни id, ни name —failed«нет настройки issue_types.<тип>» без вызова Jira (проверка до поиска дубля). Типbug.ensure_attachment {key, file, filename, size}:size = null→failed«файл удалён с хаба, загрузите заново» без вызовов;GET /issue/{key}?fields=attachment— вложение с тем же именем и размером →done existed; иначеGET /agent/files/{file}(404 → «файл удалён…»; sha256/длина не совпали, base64 нечитаем, 2xx не JSON → повтор как обрыв связи с хабом, без содержимого в ошибке); multipartPOST /issue/{key}/attachments(filename="…"+filename*=UTF-8''…,X-Atlassian-Token: no-check, таймаут ≥ 120 с, 429/503 — общий повтор); 4xx —failedс текстом Jira.Http.send(готовое тело),JiraClient._retry,JiraClient.upload,HubClient.file; содержимое файла не попадает в журнал, лог и отчёт.idили с пустымidотбрасывается с логом; 403/404 при дочитывании — задача без поляcomments(хаб оставит прежние), refresh продолжается; 5xx — повтор, как раньше.AGENT_VERSION = 11; фейки Jira (вложения, строгий multipart, 403 без XSRF-заголовка, обрыв после сохранения, 413) и хаба (/agent/files,sizeпри выдаче); README, ARCHITECTURE.md, CLAUDE.md.Проверка
/usr/bin/python3 -W error::ResourceWarning -m unittest discover -s tests -t .— 262 OK (было 230), Python 3.9.6.task/epic: без настройки —failed«нет настройки…» вместо 400 от Jira на{"name": null}(R-4 хаба).Выкатка
После merge хаба (#47):
jira-hub agent publish …/agent.py(v11) → самообновление →min_agent_version = 11→ живая проверка «Ошибка + вложение с кириллическим именем, повтор пакета без дублей» (единственная проверка того, как Jira банка сохраняет имя из multipart).Rulings I made
/agent/files— «файл удалён с хаба, загрузите заново». Цена: при откате хаба на версию без маршрута — неверный совет.GET /agent/files— обычные 60 с. Цена: на медленной папке — повтор иfailed, лечитсяtimeout.HttpError(base64 не попадает в журнал). Цена: беднее диагностика.", CR, LF вfilename="…"кодируются как у браузеров, поиск сравнивает обе формы имени — запасная защита (хаб с решения 20 такие имена не ставит).id—failedбез повтора. R-25 загрузка — общий повтор 429/503. R-26 тип проверяется до поиска дубля.Findings
93e559504e7812HubClient.file, настоящий транспорт не проверен/agent/files— «файл удалён» (проверятьno_file)HubErrorупоминает только refresh{}и[123]без тестаtimeoutбез 120 с загрузки🤖 Generated with Claude Code