Commit Graph

4 Commits

Author SHA1 Message Date
Hermes
733e63339a feat: opencode через HTTP API — пул serve-серверов вместо spawn/NDJSON
Some checks failed
CI / test (push) Successful in 40s
CI / build-and-package (amd64, linux) (push) Successful in 35s
CI / build-and-package (amd64, windows) (push) Failing after 26s
Runner теперь ходит к постоянным serve по HTTP API (v1.17+, /api):
- клиент Client (create/send/wait/abort/messages/verdict)
- Pool: по одному serve на каталог, ленивый подъём, root-сервер в worktree,
  выделение портов, ReleaseTask при завершении задачи
- Run: CreateSession('ratatoskr-<агент>') -> Send -> поллинг Verdict из
  text-частей assistant-сообщений; idle/hard таймауты дают RC=-1
- вердикт извлекается из последнего assistant text-парта (плоский text)
- тесты: unit на фейковом HTTP-сервере; e2e эмулирует serve через httptest,
  агент определяется по title сессии
2026-08-18 13:36:54 +05:00
ki.sagidullin
07bae203c3 feat: авто-уведомления о статусах и хендоффах задачи
Some checks failed
CI / test (pull_request) Failing after 35s
CI / build-and-package (amd64, linux) (pull_request) Successful in 40s
CI / build-and-package (amd64, windows) (pull_request) Successful in 43s
2026-08-17 23:32:26 +05:00
Hermes
43266ea04f feat: воркер берёт задачи только после одобрения (approved)
Some checks failed
CI / test (push) Failing after 49s
CI / build-and-package (amd64, linux) (push) Successful in 42s
CI / build-and-package (amd64, windows) (push) Successful in 45s
Исправляет баг: воркер захватывал задачу на выполнение по статусу ready
ещё до «создавай» (consent был заглушкой). Теперь:

- новый статус approved: «создавай» → ready→approved;
- воркер (pollAndDispatch + runTask) берёт ТОЛЬКО approved,
  ready = черновик готов, ждёт одобрения;
- правка/текст в approved запрещены (финальное одобрение);
- e2e-тест TestE2EWorkerDoesNotTakeUnconfirmed: в ready воркер задачу
  не трогает, запускает только после «создавай» → success;
- обновлены все затронутые тесты (models/core/worker) и retry-фикстуры.
2026-08-17 19:03:42 +05:00
Hermes
f12ff04966 test: E2E перезапуск задачи /retry из различных состояний
Some checks failed
CI / test (push) Failing after 35s
CI / build-and-package (amd64, linux) (push) Successful in 44s
CI / build-and-package (amd64, windows) (push) Successful in 41s
Позитивный блок (задача перезапускается и доходит до success):
  collecting, ready, failed, timeout
Негативный блок (завершённые состояния нельзя перезапускать — только /start):
  success, cancelled → /retry отклоняется понятным сообщением

fix: handleRetry валидирует терминальные статусы (success/cancelled/aborted/
closed) и отвечает «нельзя перезапустить», вместо падения ErrInvalidStatus
2026-08-17 18:24:24 +05:00