fix: allow yaml-only config operations without database (GH#536)
Users could not run 'bd config set no-db true' without already having a database, creating a chicken-and-egg problem. The PersistentPreRunE would fail with 'no beads database found' before the config command could even run. The fix detects when a yaml-only config operation is being attempted (config set/get with keys like no-db, no-daemon, sync.branch, etc.) and allows it to proceed without requiring a database. Before: $ bd config set no-db true Error: no beads database found After: $ bd config set no-db true Set no-db = true (in config.yaml) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
committed by
Steve Yegge
parent
8601ed01b6
commit
6572654cdc
@@ -434,7 +434,14 @@ var rootCmd = &cobra.Command{
|
||||
// Allow some commands to run without a database
|
||||
// - import: auto-initializes database if missing
|
||||
// - setup: creates editor integration files (no DB needed)
|
||||
if cmd.Name() != "import" && cmd.Name() != "setup" {
|
||||
// - config set/get for yaml-only keys: writes to config.yaml, not SQLite (GH#536)
|
||||
isYamlOnlyConfigOp := false
|
||||
if (cmd.Name() == "set" || cmd.Name() == "get") && cmd.Parent() != nil && cmd.Parent().Name() == "config" {
|
||||
if len(args) > 0 && config.IsYamlOnlyKey(args[0]) {
|
||||
isYamlOnlyConfigOp = true
|
||||
}
|
||||
}
|
||||
if cmd.Name() != "import" && cmd.Name() != "setup" && !isYamlOnlyConfigOp {
|
||||
// No database found - provide context-aware error message
|
||||
fmt.Fprintf(os.Stderr, "Error: no beads database found\n")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user