42 Commits

Author SHA1 Message Date
Andrey Epifancev
719d4bceef chore(agent): версия 12, README и решения агента для досок проектов (#35)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:21:25 +04:00
Andrey Epifancev
9dd3dd7d9d feat(agent): refresh по доскам проектов — тип доски, спринты со всех scrum-досок, результат boards (#35)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:16:52 +04:00
Andrey Epifancev
fc87f54cf9 feat(agent): ensure_sprint по доске из команды, кэш спринтов по доскам (#35)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:12:30 +04:00
Andrey Epifancev
93e5595c40 chore(agent): версия 11, README и решения агента для bug-and-attachments (#31)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 01:55:08 +04:00
Andrey Epifancev
d75c1a5567 feat(agent): команда ensure_attachment — вложение по имени и размеру, файл у хаба с проверкой sha256 (#31)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 01:52:03 +04:00
Andrey Epifancev
2bf87a6fa2 feat(agent): multipart-загрузка вложения в Jira и файл вложения у хаба (#31)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 01:48:38 +04:00
Andrey Epifancev
90dc429434 feat(agent): тип задачи из issue_types с ошибкой конфигурации, тип bug (#31)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 01:44:30 +04:00
Andrey Epifancev
cd8213b71c fix(agent): refresh не падает на комментариях без id и на 403/404 при дочитывании (M-1, M-2 #30, #31)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 01:41:24 +04:00
Andrey Epifancev
06375b9d90 chore(agent): версия 10, README и решения агента для комментариев (#27)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:04:19 +04:00
Andrey Epifancev
f5ea74bbcd feat(agent): комментарии задач в состоянии refresh (#27)
Поле comment в том же search; при неполном списке — дочитывание /issue/{key}/comment по 100.
Спека: jira-hub/openspec/changes/issue-card-modal/ (agent, «Чтение состояния»).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:01:21 +04:00
Andrey Epifancev
b57f815846 fix(agent): OSError при подтверждении версии — только лог, повтор на следующем claim (M-3)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:47:57 +04:00
Andrey Epifancev
af3e9c47c4 fix(agent): ограничить длину значений в подсказке о неполной публикации (M-4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:36:03 +04:00
Andrey Epifancev
b90c639eaa fix(agent): код 73 при занятом журнале, одна строка темпа, источник ошибки хаба в refresh (M-7 #22; M-2, M-3, M-5, M-6 #18)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:14:58 +04:00
Andrey Epifancev
c51651717c fix(agent): OSError при подготовке версии — временный сбой; формат agent_release (M-6, M-10 #22)
Диск полон или нет прав при записи agent.py.new, selftest или update.json
больше не роняет агент трейсбеком: это временный сбой, повтор через 5 минут.
Ошибка записи update.json при отказе версии только логируется.
Неполная публикация (version не int, sha256 не 64 hex в нижнем регистре)
отбрасывается с подсказкой не чаще раза в час; таймеры подсказок разделены по видам.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:09:03 +04:00
Andrey Epifancev
47a7424eca feat(agent): версия 9; тесты без жёстких номеров версий (#23)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:03:41 +04:00
Andrey Epifancev
20b858c984 fix(agent): run.py — выход 0 без Ctrl-C как падение, сигнал перед запуском, pause без отрицательного sleep (I-1, M-1, M-2, #19)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:40:59 +04:00
Andrey Epifancev
3aa8823929 feat(agent): самообновление в паузе — скачивание, sha256, selftest, выход 75 (#19)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:22:32 +04:00
Andrey Epifancev
82428ea869 feat(agent): update.json, selftest, update_state и launcher_version в claim, версия 5 (#19)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:17:52 +04:00
Andrey Epifancev
cd2dafe487 feat(agent): prune под блокировкой журнала, версия 4, README (#15)
T2.3 (agent#4).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:48:23 +04:00
Andrey Epifancev
4f1b85c9c0 fix(agent): ответ папки с неверными типами — ConnectionError; лог без повтора «хаб» (#15)
M-2, O-3 (agent#8).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:44:15 +04:00
Andrey Epifancev
3736fb3948 fix(agent): полная пауза при времени журнала в будущем, claim без оценки из журнала (#15)
M-6, M-7 (agent#12).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:40:46 +04:00
Andrey Epifancev
0532b2476c fix(agent): описание и комментарий сравниваются без различия CRLF/LF (#15)
T3.9 (agent#4).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:37:20 +04:00
Andrey Epifancev
552bead64b fix(agent): ensure_sprint на задаче без спринта — ответ Agile без fields (#13)
Jira банка на GET /rest/agile/1.0/issue/{key}?fields=sprint у задачи без спринта отвечает без ключа fields;
агент падал с KeyError. Фейк Jira теперь отвечает так же.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 23:45:47 +04:00
Andrey Epifancev
058a78b0d6 fix(agent): один процесс на журнал — блокировка journal.jsonl.lock; README: остановить старый агент перед запуском (I-1, #9)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 23:11:02 +04:00
Andrey Epifancev
a95f7d936c feat(agent): восстановление с паузой из хаба и без повторного claimed; версия 3 (M-9, FM-4, #9)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:55:52 +04:00
Andrey Epifancev
12858c2718 feat(agent): время последнего вызова Jira восстанавливается из журнала после перезапуска (M-9, #9)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:51:51 +04:00
Andrey Epifancev
b9a2260393 feat(agent): выбор транспорта по hub_url, check через папку, версия 2; README (#5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 00:48:42 +04:00
Andrey Epifancev
f9a2b7df38 feat(agent): транспорт folder: — обмен с хабом через общую папку (#5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 00:45:16 +04:00
Andrey Epifancev
527fd89be0 fix(runner): повтор после обрыва Jira ждёт 30 с от момента отказа (F-1)
Обрыв соединения не обновляет last_call_at, поэтому пауза перед повтором,
считавшаяся от последнего успешного вызова, при старом значении была нулевой
и три повтора шли подряд. Ожидание вынесено в Runner.wait_seconds и для
повтора считается от момента отказа; wait_pause использует его же и больше
не принимает force. Запись R-13 в design.md обновлена.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-12 00:51:07 +04:00
Andrey Epifancev
6bcc6f611f feat(agent): запись claimed до паузы (R-9), повтор при обрыве связи (R-10), agent_version, устойчивость цикла к сбоям хаба
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-12 00:32:39 +04:00
Andrey Epifancev
ea1ab864da feat(agent): цикл claim → пауза → журнал → отчёт, восстановление после перезапуска, run
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-12 00:06:10 +04:00
Andrey Epifancev
8ebf5250b7 fix(agent): refresh — все ключи 400 это ошибка, число вызовов бисекции, missing без дублей
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:57:31 +04:00
Andrey Epifancev
c64d36b748 fix(agent): refresh — бисекция при 400 на key in, missing, пагинация спринтов, правки фейков и тесты
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:54:35 +04:00
Andrey Epifancev
29fefb6114 feat(agent): чтение состояния — поиск, соседи по связям, спринты, страницы в хаб
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:50:42 +04:00
Andrey Epifancev
fbc9ca9048 fix(agent): исполнитель — ревью Task 4 (валидация target, выбор перехода, кэш типов связей, board_id)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:45:40 +04:00
Andrey Epifancev
a071cc12f8 feat(agent): исполнитель — переходы статусов, связи с заменой, спринты
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:42:29 +04:00
Andrey Epifancev
07bee853b4 feat(agent): исполнитель — ensure_issue, ensure_fields, ensure_comment
Поиск дубля в ensure_issue до создания (автор = currentUser(), точная тема).
ensure_fields пишет только отличающиеся поля, описание сравнивается точно,
даты — по первым 10 символам.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:39:04 +04:00
Andrey Epifancev
6ffcf2b92a fix(agent): журнал — дозапись после оборванной строки, порядковый учёт started, безопасный prune
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:36:19 +04:00
Andrey Epifancev
7fb592e6de feat(agent): журнал на диске, восстановление по нему, prune
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:33:59 +04:00
Andrey Epifancev
24cfdcf25c fix(agent): отрицательный Retry-After, обрыв при чтении тела ошибки
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:31:50 +04:00
Andrey Epifancev
1d5e128bd0 fix(agent): счётчики на любой ответ, Retry-After без учёта регистра, не-JSON 200, закрытие ответов, правки фейка
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:30:30 +04:00
Andrey Epifancev
e290b4e4a6 feat(agent): скелет, клиенты Jira и хаба, фейковый Jira, команда check
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:28:04 +04:00