feat: 重连时 MD5 校验模型列表,有变化才更新 openclaw.json

- 新增 computeModelsMd5():对模型 id 列表排序后取 MD5
- 新增 refreshModelsIfChanged():读现有 provider 配置拉新模型,MD5 不同才写盘
- client.js: 重连(active + 无完整 provider)时调用 refreshModelsIfChanged,而非直接跳过

Made-with: Cursor
This commit is contained in:
stswangzhiping
2026-04-23 07:53:49 +08:00
parent c64aeab3b2
commit 4cf0e4e948
2 changed files with 83 additions and 2 deletions

View File

@@ -12,7 +12,7 @@ const { getDashboardInfo, resolveOpenclawConfigFile, startTtyd, FrpcManager } =
const { ProvisionManager } = require('./provisioning');
const { BtMonitor } = require('./bt-monitor');
const { hasInternet, hasWiredInternetProbe, getLocalIps } = require('./network');
const { applyFullProviderFromVps, removeProviderByName, isFullProvider } = require('./openclaw-provider');
const { applyFullProviderFromVps, removeProviderByName, refreshModelsIfChanged, isFullProvider } = require('./openclaw-provider');
const led = require('./led');
const MAX_BACKOFF_MS = 60_000;
@@ -469,7 +469,10 @@ class ClawClient {
this._updateOpenClawOrigin(clawIdStr);
});
} else {
this._updateOpenClawOrigin(clawIdStr);
// 重连场景:检查模型列表是否有变化,有变化才写盘
refreshModelsIfChanged(() => {
this._updateOpenClawOrigin(clawIdStr);
});
}
}
}