Fix #20: Enable immediate child process access for killing#126
Open
Fix #20: Enable immediate child process access for killing#126
Conversation
Adding CLAUDE.md with task information for AI processing. This file will be removed when the task is complete. Issue: #20
This change enables users to access and kill child processes immediately
without having to await the process result first. The implementation
addresses both virtual commands and real child processes.
Key changes:
- Add child getter that provides immediate access to process for killing
- For virtual commands: return proxy object with kill() method that delegates
- For real commands: auto-start process when child is accessed
- Update internal references from this.child to this._child
- Fix kill() method to properly handle virtual commands
The solution allows both patterns to work:
- Virtual: $`sleep 5`.child.kill('SIGTERM')
- Real: $`/bin/sleep 5`.child.kill('SIGTERM')
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Enables users to access and kill child processes immediately without having to await the process result first, addressing issue #20.
The key issue was that
process.child.kill('SIGTERM')was not accessible without first awaiting the process, making it impossible to kill long-running processes before they complete.Changes
kill()method that delegates to ProcessRunnerthis.childtothis._childfor internal usekill()method to properly handle virtual commandsUsage
Both virtual and real commands now support immediate killing:
Test plan
tests/child-access.test.mjsctrl-c-basic.test.mjs,$.test.mjs,streaming-interfaces.test.mjs)🤖 Generated with Claude Code
Resolves #20