diff --git a/src/config/config.ts b/src/config/config.ts index dfe47d82f87..5d5dd4ad32b 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -4,6 +4,7 @@ export { createConfigIO, getRuntimeConfigSnapshot, loadConfig, + readBestEffortConfig, parseConfigJson5, readConfigFileSnapshot, readConfigFileSnapshotForWrite, diff --git a/src/config/io.ts b/src/config/io.ts index a2a2af5d1b5..dc010d258b8 100644 --- a/src/config/io.ts +++ b/src/config/io.ts @@ -810,7 +810,7 @@ export function createConfigIO(overrides: ConfigIoDeps = {}) { } const error = err as { code?: string }; if (error?.code === "INVALID_CONFIG") { - return {}; + throw err; } deps.logger.error(`Failed to read config at ${configPath}`, err); return {}; @@ -1372,6 +1372,11 @@ export function loadConfig(): OpenClawConfig { return config; } +export async function readBestEffortConfig(): Promise { + const snapshot = await readConfigFileSnapshot(); + return snapshot.valid ? loadConfig() : snapshot.config; +} + export async function readConfigFileSnapshot(): Promise { return await createConfigIO().readConfigFileSnapshot(); }