fix: Capture stderr instead of suppressing in command execution

Several files were setting cmd.Stderr = nil, which hides potentially
critical error messages:

- prime.go: bd prime, gt mail check, and bd show commands now log
  stderr on failure for debugging
- orphans.go: git fsck now includes stderr in error messages
- patrol_helpers.go: bd list/show/catalog commands now log stderr

Daemon launch cases (up.go, daemon.go, daemon_check.go) correctly
use nil for I/O detachment but now have clarifying comments.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-30 00:49:18 -08:00
parent 4e67f7e637
commit 212d818305
5 changed files with 60 additions and 24 deletions

View File

@@ -73,7 +73,7 @@ func (c *DaemonCheck) Fix(ctx *CheckContext) error {
return err
}
// Start daemon in background
// Start daemon in background (detach from parent I/O - daemon uses its own logging)
cmd := exec.Command(gtPath, "daemon", "run")
cmd.Dir = ctx.TownRoot
cmd.Stdin = nil