fix(auth): handle credential file creation in persistCredential

This commit is contained in:
Alexander
2026-04-10 14:14:42 +02:00
parent 21176949a6
commit 9858530ff6
+14 -5
View File
@@ -10,6 +10,7 @@ import (
"net" "net"
"net/http" "net/http"
"os" "os"
"path/filepath"
"sync" "sync"
"time" "time"
@@ -105,13 +106,21 @@ func persistCredential(cred *Credential) error {
return nil return nil
} }
var doc map[string]any
raw, err := os.ReadFile(filePath) raw, err := os.ReadFile(filePath)
if err != nil { if err != nil {
return err if !os.IsNotExist(err) {
} return err
var doc map[string]any }
if err := json.Unmarshal(raw, &doc); err != nil { // File doesn't exist yet (cold start) — create from scratch
return err if mkdirErr := os.MkdirAll(filepath.Dir(filePath), 0700); mkdirErr != nil {
return fmt.Errorf("create credential dir: %w", mkdirErr)
}
doc = make(map[string]any)
} else {
if err := json.Unmarshal(raw, &doc); err != nil {
return err
}
} }
oauth, _ := doc["claudeAiOauth"].(map[string]any) oauth, _ := doc["claudeAiOauth"].(map[string]any)
if oauth == nil { if oauth == nil {