diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts index d7b0223a..3a467748 100644 --- a/packages/opencode/src/cli/cmd/run.ts +++ b/packages/opencode/src/cli/cmd/run.ts @@ -83,6 +83,7 @@ export const RunCommand = { } Bus.subscribe(Message.Event.PartUpdated, async (evt) => { + if (evt.properties.sessionID !== session.id) return const part = evt.properties.part const message = await Session.getMessage( evt.properties.sessionID, diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index ca0ebf44..4e8ec678 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -81,7 +81,9 @@ export namespace Session { const result: Info = { id: Identifier.descending("session"), parentID, - title: "Child Session - " + new Date().toISOString(), + title: + (parentID ? "Child session - " : "New Session - ") + + new Date().toISOString(), time: { created: Date.now(), updated: Date.now(), @@ -221,7 +223,8 @@ export namespace Session { if (lastSummary) msgs = msgs.filter((msg) => msg.id >= lastSummary.id) const app = App.info() - if (msgs.length === 0) { + const session = await get(input.sessionID) + if (msgs.length === 0 && !session.parentID) { generateText({ maxOutputTokens: 20, messages: convertToModelMessages([