refactor(doctor): consolidate maintenance commands + improve daemon startup
Consolidate clean, repair-deps, validate into bd doctor: - Add validation checks to doctor (merge artifacts, orphaned deps, duplicates, test pollution, git conflicts) - Add auto-fix for merge artifacts and orphaned dependencies - Delete obsolete command files: clean.go, repair_deps.go, validate.go - Delete orphaned test files: clean_security_test.go, validate_test.go Improve daemon startup performance: - Add fast-fail detection when daemon crashed (check lock before retrying) - Reduce graceful shutdown timeout from 5s to 1s - Skip daemon connection for root command (just shows help) - Extract shutdown timeout as constants (daemonShutdownTimeout, daemonShutdownPollInterval) Other changes: - Move rename-prefix command to Maintenance group in help - Fix Makefile to inject git commit hash via ldflags New files: - cmd/bd/doctor/validation.go (5 check functions) - cmd/bd/doctor/fix/validation.go (2 fix functions)
This commit is contained in:
committed by
Steve Yegge
parent
e60dfaf1f1
commit
cafc0b9dfb
@@ -91,6 +91,16 @@ func TryConnectWithTimeout(socketPath string, dialTimeout time.Duration) (*Clien
|
||||
if err != nil {
|
||||
debug.Logf("failed to connect to RPC endpoint: %v", err)
|
||||
rpcDebugLog("dial failed after %v: %v", dialDuration, err)
|
||||
|
||||
// Fast-fail: socket exists but dial failed - check if daemon actually alive
|
||||
// If lock is not held, daemon crashed and left stale socket - clean up immediately
|
||||
beadsDir := filepath.Dir(socketPath)
|
||||
running, _ := lockfile.TryDaemonLock(beadsDir)
|
||||
if !running {
|
||||
rpcDebugLog("daemon not running (lock free) - cleaning up stale socket")
|
||||
cleanupStaleDaemonArtifacts(beadsDir)
|
||||
_ = os.Remove(socketPath) // Also remove stale socket
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user