feat(opencode): v1.18 — перейти с POST /session/:id/prompt на /session/:id/message
All checks were successful
CI / test (push) Successful in 40s
CI / build-and-package (amd64, linux) (push) Successful in 36s
CI / build-and-package (amd64, windows) (push) Successful in 36s

Промпт отправляется в /api/session/:id/message (v1.18) с новым форматом
тела parts:[{type:"text"}], вместо {prompt:{text}}. Причина перехода:
/prompt сам подставляет не ту модель, что в конфиге; /message использует
модель из конфига.

- client.go: Send → POST /message + тело parts; шапка-док v1.18
- тесты: fakeAPIServer + e2eFakeAPI отвечают на POST /message (GET уже был)
This commit is contained in:
Hermes
2026-08-18 18:58:23 +05:00
parent ad9c2dd522
commit e1167c9537
3 changed files with 19 additions and 14 deletions

View File

@@ -44,7 +44,7 @@ var (
}
)
// e2eFakeAPI поднимает фейковый opencode serve HTTP API v1.17 и возвращает URL.
// e2eFakeAPI поднимает фейковый opencode serve HTTP API v1.18 и возвращает URL.
// По title сессии (ratatoskr-<agent>) определяет агента и возвращает его вердикт
// как text-часть единственного assistant-сообщения.
func e2eFakeAPI(t *testing.T) string {
@@ -66,7 +66,7 @@ func e2eFakeAPI(t *testing.T) string {
mu.Unlock()
writeJSON(w, map[string]any{"data": map[string]any{"id": id}})
case r.Method == http.MethodPost && strings.HasSuffix(r.URL.Path, "/prompt"):
case r.Method == http.MethodPost && strings.HasSuffix(r.URL.Path, "/message"):
w.WriteHeader(http.StatusOK)
_, _ = w.Write([]byte(`{"ok":true}`))