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) {
|
if (err) {
|
||||||
log.warn('openclaw-provider', `拉模型失败,使用空列表: ${err.message}`);
|
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);
|
addProviderSync(configFile, name, baseUrl, apiKey, list, defaultModel);
|
||||||
if (typeof onDone === 'function') {
|
if (typeof onDone === 'function') {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user