fix: refresh provider-scoped plugin metadata

This commit is contained in:
Peter Steinberger
2026-05-25 06:54:13 +01:00
parent f6a7512ce6
commit cb5243b69a
2 changed files with 19 additions and 0 deletions

View File

@@ -172,12 +172,14 @@ export async function ensureOpenClawModelsJson(
(agentDirOverride?.trim()
? undefined
: resolveAgentWorkspaceDir(cfg, resolveDefaultAgentId(cfg)));
const providerScopedDiscovery = Boolean(options.providerDiscoveryProviderIds?.length);
const pluginMetadataSnapshot =
options.pluginMetadataSnapshot ??
resolvePluginMetadataSnapshot({
config: cfg,
env: createConfigRuntimeEnv(cfg),
...(workspaceDir ? { workspaceDir } : {}),
...(providerScopedDiscovery ? { preferPersisted: false } : {}),
});
const agentDir = agentDirOverride?.trim() ? agentDirOverride.trim() : resolveDefaultAgentDir(cfg);
const targetPath = path.join(agentDir, "models.json");

View File

@@ -176,6 +176,23 @@ describe("models-config write serialization", () => {
});
});
it("does not reuse persisted plugin metadata for provider-scoped discovery", async () => {
await withModelsTempHome(async (home) => {
const workspaceDir = path.join(home, "agent-workspace");
const snapshot = createPluginMetadataSnapshot(workspaceDir);
setCurrentPluginMetadataSnapshot(snapshot, { config: {} });
const agentDir = path.join(home, "agent-non-default");
await ensureOpenClawModelsJson({}, agentDir, {
workspaceDir,
providerDiscoveryProviderIds: ["google"],
});
const params = planParamsAt(0);
expect(params.pluginMetadataSnapshot).not.toBe(snapshot);
});
});
it("writes implicit models.json into the configured default agent dir", async () => {
await withModelsTempHome(async (home) => {
const cfg = {