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
+10 -1
View File
@@ -10,6 +10,7 @@ import (
"net" "net"
"net/http" "net/http"
"os" "os"
"path/filepath"
"sync" "sync"
"time" "time"
@@ -105,14 +106,22 @@ 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 {
if !os.IsNotExist(err) {
return err return err
} }
var doc map[string]any // File doesn't exist yet (cold start) — create from scratch
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 { if err := json.Unmarshal(raw, &doc); err != nil {
return err return err
} }
}
oauth, _ := doc["claudeAiOauth"].(map[string]any) oauth, _ := doc["claudeAiOauth"].(map[string]any)
if oauth == nil { if oauth == nil {
oauth = make(map[string]any) oauth = make(map[string]any)