Two silent failure modes: 1. lines() drops any output chunk not terminated with \n — a script that crashes mid-line (or any final output without a newline) was silently swallowed. Switched to raw 4KB chunk reads which stream incrementally and capture everything. 2. A non-zero exit with no output (e.g. bash exit 127 'command not found') left the log completely empty. Now always appends '[hiy] exit code: N' after the process finishes so there is always at least one diagnostic line regardless of script output. Exit code lookup: exit code: 0 -> success exit code: 1 -> script hit 'set -e' on a failing command exit code: 127 -> bash could not find the script or a command in it exit code: 126 -> script found but not executable (chmod +x missing) exit code: signal -> process killed by OS signal https://claude.ai/code/session_01FKCW3FDjNFj6jve4niMFXH |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||