diff options
| author | Aiden Cline <[email protected]> | 2025-08-19 22:40:07 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-08-19 22:40:07 -0500 |
| commit | a2db58f125b1b70484532a806cd367011fbadf01 (patch) | |
| tree | dbe468a3460939e3700d50633d49ec67329c79cc | |
| parent | 574be9febf74e9571c0400bfc6de33f5deede977 (diff) | |
| download | opencode-a2db58f125b1b70484532a806cd367011fbadf01.tar.gz opencode-a2db58f125b1b70484532a806cd367011fbadf01.zip | |
fix: don't let --continue access subagent session (#2091)
| -rw-r--r-- | packages/opencode/src/cli/cmd/run.ts | 16 | ||||
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui.ts | 16 |
2 files changed, 22 insertions, 10 deletions
diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts index f44d90c31..25d917e14 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 c2f2ee2e3..25d0fbcb3 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 |
