6be8d4798216e8a86986b35622a99a1e27830f90
Previously dispatchToClaude awaited child.on(close) before yielding the done event. Claude CLIs Bash tool occasionally leaves ssh/bash grandchildren alive (e.g. a GUI app that ignores SIGPIPE on the remote end of a piped ssh command); that kept claude -p alive past end-of-turn, which kept the bridge SSE stream open, which kept OpenClaw from committing the turn to its session jsonl. Switch to emitting done as soon as the terminal result stream-json event arrives. Spawn claude in its own process group (detached:true) and schedule a best-effort SIGTERM/SIGKILL sweep of leaked descendants; temp-file cleanup runs asynchronously on actual process close. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
No description provided
Languages
TypeScript
85.1%
JavaScript
14.9%