diff --git a/src/settings.ts b/src/settings.ts index 45200aeb..0e55aa7e 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -25,9 +25,14 @@ export interface ClaudeCodeSettings { } /** - * Reads and parses a JSON settings file, returning an empty object if not found or invalid + * Reads and parses a JSON settings file, returning an empty object if not found or invalid. + * Silently ignores missing files (ENOENT) but logs warnings for other errors + * (malformed JSON, permission errors, etc.) to aid debugging. */ -async function loadSettingsFile(filePath: string | null): Promise { +async function loadSettingsFile( + filePath: string | null, + logger?: { error: (...args: any[]) => void }, +): Promise { if (!filePath) { return {}; } @@ -35,7 +40,11 @@ async function loadSettingsFile(filePath: string | null): Promise { const [userSettings, projectSettings, localSettings, enterpriseSettings] = await Promise.all([ - loadSettingsFile(this.getUserSettingsPath()), - loadSettingsFile(this.getProjectSettingsPath()), - loadSettingsFile(this.getLocalSettingsPath()), - loadSettingsFile(getManagedSettingsPath()), + loadSettingsFile(this.getUserSettingsPath(), this.logger), + loadSettingsFile(this.getProjectSettingsPath(), this.logger), + loadSettingsFile(this.getLocalSettingsPath(), this.logger), + loadSettingsFile(getManagedSettingsPath(), this.logger), ]); this.userSettings = userSettings;