WIP: Extract daemon runtime into internal/daemonrunner

- Created config.go with Config struct
- Created daemon.go with Daemon struct and Start/Stop methods
- Created logger.go for logging setup
- Created process.go for lock/PID management
- Created fingerprint.go for database validation
- Created flock_unix.go/flock_windows.go for platform-specific locking
- Created git.go for git operations

Still TODO:
- Implement runGlobalDaemon, startRPCServer, runSyncLoop
- Create sync.go, rpc.go, jsonl.go, validation.go
- Update cmd/bd/daemon.go to use daemonrunner

Part of bd-5f26
This commit is contained in:
Steve Yegge
2025-11-01 11:47:41 -07:00
parent 95560dc6e8
commit 94f2dc1198
9 changed files with 751 additions and 43 deletions

View File

@@ -0,0 +1,26 @@
package daemonrunner
import "time"
// Config holds all configuration for the daemon
type Config struct {
// Sync behavior
Interval time.Duration
AutoCommit bool
AutoPush bool
// Scope
Global bool
// Paths
LogFile string
PIDFile string
DBPath string // Local daemon only
BeadsDir string // Local daemon: .beads dir, Global daemon: ~/.beads
// RPC
SocketPath string
// Workspace
WorkspacePath string // Only for local daemon: parent of .beads directory
}