summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2025-08-31 12:48:30 -0500
committerGitHub <[email protected]>2025-08-31 12:48:30 -0500
commit029612d8d509fbe8973bcddca5e789d7c0bb33af (patch)
tree44879584c5bb778d31246491c447514c2a4625d0 /packages
parente9826e8a2293decaeb43c62c93495d923c20ddbf (diff)
downloadopencode-029612d8d509fbe8973bcddca5e789d7c0bb33af.tar.gz
opencode-029612d8d509fbe8973bcddca5e789d7c0bb33af.zip
fix: ensure shell cmds can be properly aborted (#2339)
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/session/index.ts6
1 files changed, 6 insertions, 0 deletions
diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts
index 4b66cdee3..4474bf1ce 100644
--- a/packages/opencode/src/session/index.ts
+++ b/packages/opencode/src/session/index.ts
@@ -1141,6 +1141,7 @@ export namespace Session {
const proc = spawn(shell, args, {
cwd: app.path.cwd,
signal: abort.signal,
+ detached: true,
stdio: ["ignore", "pipe", "pipe"],
env: {
...process.env,
@@ -1148,6 +1149,11 @@ export namespace Session {
},
})
+ abort.signal.addEventListener("abort", () => {
+ if (!proc.pid) return
+ process.kill(-proc.pid)
+ })
+
let output = ""
proc.stdout?.on("data", (chunk) => {