58 Commits

Author SHA1 Message Date
Andrey Epifancev
faed8b9c7a Журнал: стартовая часть первой, задача в обеих выборках не теряет историю (#39, I-1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:47:11 +04:00
Andrey Epifancev
05e3f2c114 Тест версии агента: 13 (#39)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:34:43 +04:00
Andrey Epifancev
71e182a162 Агент v13: журнал изменений в refresh (#39)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:31:47 +04:00
Andrey Epifancev
de2d5b5252 Разбор журнала изменений Jira и фейк журнала (#39)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 10:27:00 +04:00
Andrey Epifancev
ced48cf9db fix(agent): ошибка спринтов refresh называет доску, доска-канбан пропускается (I-1, M-2..M-5, #35)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:31:59 +04:00
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
28b21e0d54 test(agent): вернуть проверки test_refresh_empty_keys, потерянные при вставке тестов комментариев (I-1, #27)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:14:50 +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
6b3109863d fix(run): подтверждённая версия не откатывается после записей агента в update.json (I-1)
wait_child запоминает подтверждение (любое состояние update.json, кроме trial этой версии, пока агент жив),
а итоговое решение учитывает и случай, когда ok и следующая запись уложились между опросами.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:36:03 +04:00
Andrey Epifancev
69f9ffe690 feat(agent): run.py v2 — сверка update.json с файлом, ok в последний момент, код 73, OSError при подмене (M-3…M-7, M-10 #22)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:25:56 +04:00
Andrey Epifancev
fa936ba716 test(agent): фейки — project и created в поиске дубля, долгий claim хаба (M-10 #4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 00:19:35 +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
866f9d7b4d test(agent): сквозной тест самообновления; README, ARCHITECTURE, CLAUDE.md — run.py и публикация (#19)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:26:53 +04:00
Andrey Epifancev
7512acb083 feat(agent): запускатель run.py — подмена версии, пробный период, откат, перезапуск (#19)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:24:30 +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
140f921ce5 test(agent): версия 5 в test_folder (#19)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:19:29 +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
22018318d1 docs(agent): журнал claimed, повторы при обрыве связи, остановка в паузе, версия, 3.9
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-12 00:36:46 +04:00
Andrey Epifancev
2e6f47a514 fix(agent): поиск дубля с пагинацией, ошибки настроек (R-11), HTTPException как обрыв, маркер комментария, тесты ревью
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-12 00:35:06 +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
4eaad42d15 docs(agent): fix round 1 — OpenSpec-раздел в CLAUDE.md, README (префикс лога, timeout/poll, 429), оговорка проверки 3.9
- CLAUDE.md: восстановлен раздел «OpenSpec и superpowers» из шаблона; убрана фраза про задачу 7;
  тесты описаны по областям; оговорка про проверку 3.9 (ast не ловит API, только прогон на 3.9.6).
- README: пример вывода check с префиксом времени; timeout и poll_seconds в доставке;
  429/503 — не более 4 ожиданий, Retry-After в HTTP-date не разбирается.
- ARCHITECTURE.md: формулировка повторов 429/503.
- tests/test_py39.py: комментарий с ограничением проверки.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-12 00:15:08 +04:00
Andrey Epifancev
54f65d0333 docs(agent): README (доставка, запуск, launchd, prune), архитектура, проверка синтаксиса 3.9
README: доставка на виртуалку, check/запуск/launchd, журнал и prune, поведение с командами,
известные ограничения (prune при работе агента, Ctrl-C во время паузы, https без CA, спринты
закрытых спринтов, refresh, сравнение описания, 429/503 без потолка). CLAUDE.md и ARCHITECTURE.md
заполнены по src/agent.py. tests/test_py39.py: разбор с feature_version=(3, 9) и разрешённый
список импортов (только stdlib).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-12 00:10:47 +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