start-command 0.17.1 → 0.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # start-command
2
2
 
3
+ ## 0.17.2
4
+
5
+ ### Patch Changes
6
+
7
+ - d38a67f: fix: Use 'close' event instead of 'exit' for reliable stdout capture on macOS
8
+
9
+ The 'exit' event fires when the process terminates, but stdio streams may still have buffered data. On macOS, fast-executing commands like 'echo hi' could exit before stdout data events fired, causing no output to be displayed and no finish block shown.
10
+ - Changed from 'exit' to 'close' event in JavaScript for reliable output capture
11
+ - Updated Rust to use piped stdout/stderr with threads for real-time display and capture
12
+ - Added case study documentation for Issue #57 root cause analysis
13
+
3
14
  ## 0.17.1
4
15
 
5
16
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "start-command",
3
- "version": "0.17.1",
3
+ "version": "0.17.2",
4
4
  "description": "Gamification of coding, execute any command with ability to auto-report issues on GitHub",
5
5
  "main": "src/bin/cli.js",
6
6
  "exports": {
package/src/bin/cli.js CHANGED
@@ -640,8 +640,11 @@ function runDirect(cmd, sessionId) {
640
640
  logContent += text;
641
641
  });
642
642
 
643
- // Handle process exit
644
- child.on('exit', (code) => {
643
+ // Handle process close (not 'exit' - we need to wait for all stdio to be closed)
644
+ // The 'close' event fires after all stdio streams have been closed, ensuring
645
+ // all stdout/stderr data has been received. The 'exit' event can fire before
646
+ // buffered data is received, causing output loss on macOS (Issue #57).
647
+ child.on('close', (code) => {
645
648
  const exitCode = code || 0;
646
649
  const endTime = getTimestamp();
647
650