diff --git a/internal/mail/bd.go b/internal/mail/bd.go index eefb8520..3665d74d 100644 --- a/internal/mail/bd.go +++ b/internal/mail/bd.go @@ -39,7 +39,13 @@ func (e *bdError) ContainsError(substr string) bool { // beadsDir is the BEADS_DIR environment variable value. // extraEnv contains additional environment variables to set (e.g., "BD_IDENTITY=..."). // Returns stdout bytes on success, or a *bdError on failure. +// +// Uses --no-daemon to bypass the beads daemon for direct database access. +// This avoids 5+ second delays caused by daemon auto-import cycles (bd-xxxx). +// Mail operations are read-heavy and don't benefit from daemon caching. func runBdCommand(args []string, workDir, beadsDir string, extraEnv ...string) ([]byte, error) { + // Prepend --no-daemon to avoid daemon auto-import delays + args = append([]string{"--no-daemon"}, args...) cmd := exec.Command("bd", args...) //nolint:gosec // G204: bd is a trusted internal tool cmd.Dir = workDir