From 8e24d0926d658755c61b076659bf07a1bc843f55 Mon Sep 17 00:00:00 2001 From: lpf Date: Fri, 20 Feb 2026 00:02:08 +0800 Subject: [PATCH] fix --- cmd/clawgo/main.go | 55 +++++----------------------------------------- 1 file changed, 6 insertions(+), 49 deletions(-) diff --git a/cmd/clawgo/main.go b/cmd/clawgo/main.go index 4326728..ae21393 100644 --- a/cmd/clawgo/main.go +++ b/cmd/clawgo/main.go @@ -305,63 +305,20 @@ func ensureConfigOnboard(configPath string, defaults *config.Config) (string, er return "", fmt.Errorf("defaults is nil") } + exists := true if _, err := os.Stat(configPath); os.IsNotExist(err) { - if err := config.SaveConfig(configPath, defaults); err != nil { - return "", err - } - return "created", nil + exists = false } else if err != nil { return "", err } - defaultData, err := json.Marshal(defaults) - if err != nil { + if err := config.SaveConfig(configPath, defaults); err != nil { return "", err } - var defaultMap map[string]interface{} - if err := json.Unmarshal(defaultData, &defaultMap); err != nil { - return "", err + if exists { + return "overwritten", nil } - - existingMap, err := configops.LoadConfigAsMap(configPath) - if err != nil { - return "", err - } - - changed := mergeMissingConfigValues(existingMap, defaultMap) - if !changed { - return "up-to-date", nil - } - - mergedData, err := json.MarshalIndent(existingMap, "", " ") - if err != nil { - return "", err - } - if _, err := configops.WriteConfigAtomicWithBackup(configPath, mergedData); err != nil { - return "", err - } - return "updated (incremental)", nil -} - -func mergeMissingConfigValues(dst map[string]interface{}, defaults map[string]interface{}) bool { - changed := false - for key, dv := range defaults { - existing, ok := dst[key] - if !ok { - dst[key] = dv - changed = true - continue - } - - dm, dIsMap := dv.(map[string]interface{}) - em, eIsMap := existing.(map[string]interface{}) - if dIsMap && eIsMap { - if mergeMissingConfigValues(em, dm) { - changed = true - } - } - } - return changed + return "created", nil } func createWorkspaceTemplates(workspace string) error {