summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTommy D. Rossi <[email protected]>2025-11-25 23:35:34 +0100
committerGitHub <[email protected]>2025-11-25 16:35:34 -0600
commit64caeeb12d88c9200cba4139ef8288f26c9a3a49 (patch)
tree5e2716d0e2835c4393bb6f415c7c535a4c59cbaa
parente8ac4a1e995ae57795e639115289e91851805a21 (diff)
downloadopencode-64caeeb12d88c9200cba4139ef8288f26c9a3a49.tar.gz
opencode-64caeeb12d88c9200cba4139ef8288f26c9a3a49.zip
fix(tui): abort in-progress generation on undo (#4744)
-rw-r--r--packages/opencode/src/cli/cmd/tui/routes/session/index.tsx4
1 files changed, 3 insertions, 1 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
index f8526e72b..2fb4aa556 100644
--- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
+++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
@@ -319,7 +319,9 @@ export function Session() {
value: "session.undo",
keybind: "messages_undo",
category: "Session",
- onSelect: (dialog) => {
+ onSelect: async (dialog) => {
+ const status = sync.data.session_status[route.sessionID]
+ if (status?.type !== "idle") await sdk.client.session.abort({ path: { id: route.sessionID } }).catch(() => {})
const revert = session().revert?.messageID
const message = messages().findLast((x) => (!revert || x.id < revert) && x.role === "user")
if (!message) return