diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 48b108ac..18c01a9f 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -644,7 +644,7 @@ export namespace Session { tools[key] = item } - const result = streamText({ + const stream = streamText({ onError() {}, maxRetries: 10, maxOutputTokens: outputLimit, @@ -677,7 +677,8 @@ export namespace Session { ], }), }) - return processStream(assistantMsg, model.info, result) + const result = await processStream(assistantMsg, model.info, stream) + return result } async function processStream( @@ -979,7 +980,7 @@ export namespace Session { } await updateMessage(next) - const result = streamText({ + const stream = streamText({ abortSignal: abort.signal, model: model.language, messages: [ @@ -1002,7 +1003,8 @@ export namespace Session { ], }) - return processStream(next, model.info, result) + const result = await processStream(next, model.info, stream) + return result } function lock(sessionID: string) { diff --git a/packages/tui/internal/app/app.go b/packages/tui/internal/app/app.go index fb8358d8..5f95cc42 100644 --- a/packages/tui/internal/app/app.go +++ b/packages/tui/internal/app/app.go @@ -384,6 +384,7 @@ func (a *App) InitializeProject(ctx context.Context) tea.Cmd { go func() { _, err := a.Client.Session.Init(ctx, a.Session.ID, opencode.SessionInitParams{ + MessageID: opencode.F(id.Ascending(id.Message)), ProviderID: opencode.F(a.Provider.ID), ModelID: opencode.F(a.Model.ID), })