Fix bd-373c: Surface daemon errors when multiple .db files exist
When daemon detects multiple .db files (after filtering .backup and vc.db), it now writes detailed error to .beads/daemon-error file before exiting. The error file is checked and displayed when: - Daemon discovery fails to connect - Auto-start fails to yield a running daemon - User runs 'bd daemons list' This makes the error immediately visible without requiring users to check daemon logs. Changes: - cmd/bd/daemon.go: Write daemon-error file on multiple .db detection - internal/daemon/discovery.go: Read and surface daemon-error in DaemonInfo.Error - cmd/bd/main.go: Display daemon-error when auto-start fails Amp-Thread-ID: https://ampcode.com/threads/T-1005a8d1-7a5a-4844-ad2d-2b8a6145825f Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
@@ -370,6 +370,14 @@ var rootCmd = &cobra.Command{
|
||||
if err != nil {
|
||||
daemonStatus.Detail = err.Error()
|
||||
}
|
||||
// Check for daemon-error file to provide better error message
|
||||
if beadsDir := filepath.Dir(socketPath); beadsDir != "" {
|
||||
errFile := filepath.Join(beadsDir, "daemon-error")
|
||||
if errMsg, readErr := os.ReadFile(errFile); readErr == nil && len(errMsg) > 0 {
|
||||
fmt.Fprintf(os.Stderr, "\n%s\n", string(errMsg))
|
||||
daemonStatus.Detail = string(errMsg)
|
||||
}
|
||||
}
|
||||
if os.Getenv("BD_DEBUG") != "" {
|
||||
fmt.Fprintf(os.Stderr, "Debug: auto-start did not yield a running daemon; falling back to direct mode\n")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user