108 Commits

Author SHA1 Message Date
Andrey Epifancev
fc0f448ef8 docs(agent): ARCHITECTURE и CLAUDE.md — prune под блокировкой, нумерация ограничений; рулинги R-12, R-13 (#15)
Финальное ревью I-1, M-1, M-4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:55:14 +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
93c2b0247d docs: план агента bridge-hygiene (#15)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:28:39 +04:00
Andrey Epifancev
a1d3987458 docs(openspec): решения агента для bridge-hygiene (#15)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:15:21 +04:00
aep
d7cd05044a Merge pull request 'fix(agent): ensure_sprint на задаче без спринта (#13)' (#14) from fix/13-ensure-sprint-without-sprint into main
Reviewed-on: #14
2026-10-13 22:46:44 +03: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
aep
8a729d21d4 Merge pull request 'docs(openspec): архив решений агента bridge-reliability (#9)' (#11) from chore/9-archive-bridge-reliability into main
Reviewed-on: #11
2026-10-13 22:20:40 +03:00
Andrey Epifancev
4739b2d476 docs(openspec): архив решений агента bridge-reliability (спека — в jira-hub) (#9)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 23:17:35 +04:00
aep
1b57c387f2 Merge pull request 'feat(agent): темп после перезапуска, восстановление без повторного claimed, один процесс; версия 3 (#9)' (#10) from feat/9-bridge-reliability into main
Reviewed-on: #10
2026-10-13 22:16:39 +03:00
Andrey Epifancev
8dd566f95d docs(openspec): решения агента bridge-reliability R-51, R-52 (#9)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 23:11:46 +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
b045aed8b6 docs(plan): план агента bridge-reliability (#9)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:38:17 +04:00
aep
d2cb529573 Merge pull request 'docs(openspec): архив рулингов агента folder-transport (#5)' (#7) from chore/5-archive-folder-transport into main
Reviewed-on: #7
2026-10-13 20:42:23 +03:00
Andrey Epifancev
1a29dbc78d docs: CLAUDE.md ссылается на действующие спеки хаба, а не на архивный change (#5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:40:03 +04:00
Andrey Epifancev
93f6539202 docs(openspec): архив рулингов агента folder-transport (спека — в jira-hub) (#5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:39:57 +04:00
aep
6342e47230 Merge pull request 'feat: транспорт folder: — связь с хабом через общую папку (#5)' (#6) from feat/5-folder-transport into main 2026-10-13 09:07:36 +03: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
de0a3d9003 docs(plan): план агента folder-transport (#5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 23:13:52 +04:00
aep
a79ed8c566 Merge pull request 'docs(openspec): архив bridge-core (#1)' (#3) from chore/1-archive-bridge-core into main 2026-10-12 20:52:07 +03:00
Andrey Epifancev
8897152378 docs(openspec): архив рулингов агента bridge-core (спека — в jira-hub)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:49:05 +04:00
aep
3b9b3b35c2 Merge pull request 'feat: ядро моста Jira — агент (bridge-core, #1)' (#2) from feat/1-bridge-core into main 2026-10-12 20:47:35 +03: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
529d7f3b2d docs: рулинг R-13 (F-1 deferred)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-12 00:41:04 +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
4018f994dc docs: рулинги R-9…R-12 (финальное ревью)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-12 00:26:22 +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
778c1bee12 docs: рулинг R-8
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-12 00:07:58 +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
1133cee873 docs: рулинг R-7
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:56:27 +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
1b3364be13 docs: рулинг R-6
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:53:08 +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
e2fb7254a0 docs: рулинг R-5
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:44:01 +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
3957e85656 docs: рулинг R-4
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:40:46 +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
5de91d6452 docs: рулинг R-3
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:37:38 +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