diff --git a/packages/opencode/src/tool/shell.ts b/packages/opencode/src/tool/shell.ts index 17647ae3bb..dda269608e 100644 --- a/packages/opencode/src/tool/shell.ts +++ b/packages/opencode/src/tool/shell.ts @@ -578,7 +578,7 @@ export const ShellTool = Tool.define( if (aborted) meta.push("User aborted the command") if (incomplete) meta.push( - `shell tool exited without reaching EOF within ${POST_EXIT_OUTPUT_GRACE_MS} ms; a background descendant may be holding the output pipe open`, + `shell process exited, but stdout/stderr did not reach EOF within ${POST_EXIT_OUTPUT_GRACE_MS} ms; a descendant process may still hold inherited pipe handles open`, ) const raw = list.map((item) => item.text).join("") const end = tail(raw, limits.maxLines, limits.maxBytes) diff --git a/packages/opencode/test/tool/shell.test.ts b/packages/opencode/test/tool/shell.test.ts index af0faac514..4513b8dd01 100644 --- a/packages/opencode/test/tool/shell.test.ts +++ b/packages/opencode/test/tool/shell.test.ts @@ -1117,7 +1117,7 @@ describe("tool.shell abort", () => { expect(Date.now() - started).toBeLessThan(3_000) expect(result.output).toContain("parent done") expect(result.output).toContain( - "shell tool exited without reaching EOF within 500 ms; a background descendant may be holding the output pipe open", + "shell process exited, but stdout/stderr did not reach EOF within 500 ms; a descendant process may still hold inherited pipe handles open", ) expect(result.metadata.outputIncomplete).toBe(true) }),