diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts index f44d90c3..25d917e1 100644 --- a/packages/opencode/src/cli/cmd/run.ts +++ b/packages/opencode/src/cli/cmd/run.ts @@ -67,11 +67,17 @@ export const RunCommand = cmd({ await bootstrap({ cwd: process.cwd() }, async () => { const session = await (async () => { if (args.continue) { - const list = Session.list() - const first = await list.next() - await list.return() - if (first.done) return - return first.value + const it = Session.list() + try { + for await (const s of it) { + if (s.parentID === undefined) { + return s + } + } + return + } finally { + await it.return() + } } if (args.session) return Session.get(args.session) diff --git a/packages/opencode/src/cli/cmd/tui.ts b/packages/opencode/src/cli/cmd/tui.ts index c2f2ee2e..25d0fbcb 100644 --- a/packages/opencode/src/cli/cmd/tui.ts +++ b/packages/opencode/src/cli/cmd/tui.ts @@ -82,11 +82,17 @@ export const TuiCommand = cmd({ const result = await bootstrap({ cwd }, async (app) => { const sessionID = await (async () => { if (args.continue) { - const list = Session.list() - const first = await list.next() - await list.return() - if (first.done) return - return first.value.id + const it = Session.list() + try { + for await (const s of it) { + if (s.parentID === undefined) { + return s.id + } + } + return + } finally { + await it.return() + } } if (args.session) { return args.session