fix: applyFullProviderFromVps 无变化时跳过写盘
apiKey + 模型列表 MD5 均未变化时不写 openclaw.json, 避免 BOX 每次重连都触发不必要的 gateway 重启。 Made-with: Cursor
This commit is contained in:
@@ -224,6 +224,21 @@ function applyFullProviderFromVps(provider, onDone) {
|
||||
if (err) {
|
||||
log.warn('openclaw-provider', `拉模型失败,使用空列表: ${err.message}`);
|
||||
}
|
||||
|
||||
// 校验 apiKey + 模型列表是否有实际变化,无变化则跳过写盘,避免触发不必要的 gateway 重启
|
||||
try {
|
||||
const existing = readJsonFile(configFile);
|
||||
const cur = existing.models?.providers?.[name] || {};
|
||||
const curApiKey = cur.apiKey || '';
|
||||
const curMd5 = computeModelsMd5(cur.models || []);
|
||||
const newMd5 = computeModelsMd5(list);
|
||||
if (curApiKey === apiKey && curMd5 === newMd5) {
|
||||
log.info('openclaw-provider', `provider 无变化(apiKey + 模型列表相同),跳过写盘`);
|
||||
if (typeof onDone === 'function') { try { onDone(); } catch (e) { log.warn('openclaw-provider', `onDone: ${e.message}`); } }
|
||||
return;
|
||||
}
|
||||
} catch (_) { /* 读取失败则继续写盘 */ }
|
||||
|
||||
addProviderSync(configFile, name, baseUrl, apiKey, list, defaultModel);
|
||||
if (typeof onDone === 'function') {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user