feat(agent): темп после перезапуска, восстановление без повторного claimed, один процесс; версия 3 (#9) #10

Merged
aep merged 5 commits from feat/9-bridge-reliability into main 2026-10-13 22:16:41 +03:00
Owner

Closes #9. Агентская часть пакета A follow-ups (#4, #8). Спека и дизайн — aep/jira-hub, openspec/changes/bridge-reliability/ (ветка feat/9-bridge-reliability, PR в jira-hub). Решения агента — openspec/changes/bridge-reliability/design.md. План: docs/superpowers/plans/2026-10-13-bridge-reliability-agent.md.

Что сделано

  • M-9 / O-2: после перезапуска время последнего вызова Jira берётся из журнала (самое позднее at); время из будущего игнорируется; при восстановлении по журналу пауза берётся из хаба, а не обнуляется.
  • FM-4: восстановление не пишет claimed в журнал повторно.
  • I-1 (финальное ревью): один процесс на журнал — run берёт fcntl.flock на journal.jsonl.lock; второй процесс пишет «агент уже запущен…» и выходит с кодом 1. README: перед обновлением остановить старый процесс.
  • Версия агента 3. Тела запросов к хабу не менялись: v3 работает и со старым хабом.

Тесты: /usr/bin/python3 -W error::ResourceWarning -m unittest discover -s tests -t . → 140 OK.

Выкатка

Сначала хаб (PR в jira-hub). Затем на виртуалке: остановить агент v2 (Ctrl-C, дождаться «остановлен»), скопировать agent.py v3, check, run.

Находки и статусы

Маркер Откуда Суть Статус
M-9 #4 темп после перезапуска не восстанавливается fixed 12858c2, a95f7d9
O-2 #8 после перезапуска команда без паузы темпа fixed 12858c2, a95f7d9
FM-4 #4 повторная запись claimed в recover fixed a95f7d9
I-1 финальное ревью два процесса агента выполняют довыданную команду одновременно fixed 058a78b
M-6 финальное ревью время журнала из будущего отключает паузу полностью deferred
M-7 финальное ревью last_jira_call_at после перезапуска — время записи журнала deferred
M-9 финальное ревью рулинги не внесены в design.md fixed 8dd566f

Rulings I made

  • R-51 — test_runner_through_folder сверяет agent_version с AGENT_VERSION, не с литералом — цена: нет.
  • R-52 — fcntl в белом списке stdlib tests/test_py39.py — цена: нет.

Deferred

M-6, M-7 финального ревью (в общий follow-up при закрытии).

🤖 Generated with Claude Code

Closes #9. Агентская часть пакета A follow-ups (#4, #8). Спека и дизайн — aep/jira-hub, `openspec/changes/bridge-reliability/` (ветка `feat/9-bridge-reliability`, PR в jira-hub). Решения агента — `openspec/changes/bridge-reliability/design.md`. План: `docs/superpowers/plans/2026-10-13-bridge-reliability-agent.md`. ## Что сделано - **M-9 / O-2:** после перезапуска время последнего вызова Jira берётся из журнала (самое позднее `at`); время из будущего игнорируется; при восстановлении по журналу пауза берётся из хаба, а не обнуляется. - **FM-4:** восстановление не пишет `claimed` в журнал повторно. - **I-1 (финальное ревью):** один процесс на журнал — `run` берёт `fcntl.flock` на `journal.jsonl.lock`; второй процесс пишет «агент уже запущен…» и выходит с кодом 1. README: перед обновлением остановить старый процесс. - Версия агента 3. Тела запросов к хабу не менялись: v3 работает и со старым хабом. Тесты: `/usr/bin/python3 -W error::ResourceWarning -m unittest discover -s tests -t .` → 140 OK. ## Выкатка Сначала хаб (PR в jira-hub). Затем на виртуалке: остановить агент v2 (Ctrl-C, дождаться «остановлен»), скопировать `agent.py` v3, `check`, `run`. ## Находки и статусы | Маркер | Откуда | Суть | Статус | |---|---|---|---| | M-9 | #4 | темп после перезапуска не восстанавливается | fixed 12858c2, a95f7d9 | | O-2 | #8 | после перезапуска команда без паузы темпа | fixed 12858c2, a95f7d9 | | FM-4 | #4 | повторная запись `claimed` в recover | fixed a95f7d9 | | I-1 | финальное ревью | два процесса агента выполняют довыданную команду одновременно | fixed 058a78b | | M-6 | финальное ревью | время журнала из будущего отключает паузу полностью | deferred | | M-7 | финальное ревью | `last_jira_call_at` после перезапуска — время записи журнала | deferred | | M-9 | финальное ревью | рулинги не внесены в design.md | fixed 8dd566f | ## Rulings I made - R-51 — `test_runner_through_folder` сверяет `agent_version` с `AGENT_VERSION`, не с литералом — цена: нет. - R-52 — `fcntl` в белом списке stdlib `tests/test_py39.py` — цена: нет. ## Deferred M-6, M-7 финального ревью (в общий follow-up при закрытии). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aep added 5 commits 2026-10-13 22:15:08 +03:00
aep merged commit 1b57c387f2 into main 2026-10-13 22:16:41 +03:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aep/jira-agent#10
No description provided.