feat(opencode): в лог при создании сессии — ссылка на сообщения (order=asc)
Some checks failed
CI / test (push) Failing after 1m49s
CI / build-and-package (amd64, linux) (push) Failing after 1m1s
CI / build-and-package (amd64, windows) (push) Successful in 31s

This commit is contained in:
ki.sagidullin
2026-08-24 12:14:19 +05:00
parent 46be641967
commit 5b43da4564
3 changed files with 17 additions and 0 deletions

View File

@@ -30,6 +30,13 @@ type Client struct {
http *http.Client // единый клиент: все операции быстрые (нет блокирующего Send) http *http.Client // единый клиент: все операции быстрые (нет блокирующего Send)
} }
// SessionMessagesURL возвращает URL для просмотра сообщений сессии в браузере.
// Сортировка по времени: сначала ранние (order=asc). Без credentials — пароль
// в лог не попадает.
func SessionMessagesURL(baseURL, sessionID string) string {
return baseURL + "/api/session/" + sessionID + "/message?order=asc"
}
// ClientErr — классы ошибок клиента. // ClientErr — классы ошибок клиента.
type ClientErr struct { type ClientErr struct {
Op string // "connect" | "create" | "prompt" | "messages" | "active" | "abort" Op string // "connect" | "create" | "prompt" | "messages" | "active" | "abort"

View File

@@ -355,3 +355,12 @@ func TestClientErr_Unwrap(t *testing.T) {
t.Fatal("expected *ClientErr") t.Fatal("expected *ClientErr")
} }
} }
// TestSessionMessagesURL — ссылка на сообщения сессии, сортировка по времени (сначала ранние).
func TestSessionMessagesURL(t *testing.T) {
got := SessionMessagesURL("http://127.0.0.1:4101", "sess-abc")
want := "http://127.0.0.1:4101/api/session/sess-abc/message?order=asc"
if got != want {
t.Errorf("SessionMessagesURL() = %q, want %q", got, want)
}
}

View File

@@ -84,6 +84,7 @@ func (r *Runner) Run(ctx context.Context, prompt, cwd, agent, sessionID string)
return nil, fmt.Errorf("opencode: create session: %w", err) return nil, fmt.Errorf("opencode: create session: %w", err)
} }
r.logf("opencode(%s) session=%s на %s", agent, sid, srv.Addr()) r.logf("opencode(%s) session=%s на %s", agent, sid, srv.Addr())
r.logf("opencode(%s) сообщения сессии: %s", agent, SessionMessagesURL(srv.Addr(), sid))
} }
return r.awaitVerdict(ctx, c, sid, agent, prompt) return r.awaitVerdict(ctx, c, sid, agent, prompt)