fix: persist CLI_API_TOKEN from env var to settings when not already saved

When CLI_API_TOKEN is provided via environment variable, persist it to settings.json
if not already saved. This prevents token regeneration if the env var fails to load
on subsequent startups, ensuring token consistency across server restarts.
This commit is contained in:
weishu
2025-12-25 15:48:45 +08:00
parent 1405e2bca9
commit fa63529d04
+8
View File
@@ -104,6 +104,14 @@ export async function getOrCreateCliApiToken(dataDir: string): Promise<CliApiTok
if (isWeakToken(envToken)) {
console.warn('[WARN] CLI_API_TOKEN appears to be weak. Consider using a stronger secret.')
}
// Persist env token to file if not already saved (prevents token loss on env var issues)
const settings = await readSettings(settingsFile)
if (settings !== null && !settings.cliApiToken) {
settings.cliApiToken = envToken
await writeSettings(settingsFile, settings)
}
return { token: envToken, source: 'env', isNew: false, filePath: settingsFile }
}