




















@@ -1605,9 +1605,23 @@ export function createConfigIO(
16051605if (preValidationDuplicates.length > 0) {
16061606throw new DuplicateAgentDirError(preValidationDuplicates);
16071607}
1608+let pluginMetadataSnapshot: PluginMetadataSnapshot | undefined;
1609+const loadValidationPluginMetadataSnapshot = (config: OpenClawConfig) => {
1610+if (pluginMetadataSnapshot) {
1611+return pluginMetadataSnapshot;
1612+}
1613+const defaultAgentId = resolveDefaultAgentId(config);
1614+pluginMetadataSnapshot = loadPluginMetadataSnapshot({
1615+ config,
1616+workspaceDir: resolveAgentWorkspaceDir(config, defaultAgentId),
1617+env: deps.env,
1618+});
1619+return pluginMetadataSnapshot;
1620+};
16081621const validated = validateConfigObjectWithPlugins(effectiveConfigRaw, {
16091622env: deps.env,
16101623pluginValidation: overrides.pluginValidation,
1624+loadPluginMetadataSnapshot: loadValidationPluginMetadataSnapshot,
16111625sourceRaw: effectiveParsed,
16121626});
16131627if (!validated.ok) {
@@ -1643,7 +1657,9 @@ export function createConfigIO(
16431657deps.logger.warn(`Config warnings:\n${details}`);
16441658}
16451659warnIfConfigFromFuture(validated.config, deps.logger);
1646-const cfg = materializeRuntimeConfig(validated.config, "load");
1660+const cfg = materializeRuntimeConfig(validated.config, "load", {
1661+manifestRegistry: pluginMetadataSnapshot?.manifestRegistry,
1662+});
16471663observeLoadConfigSnapshot({
16481664 ...createConfigFileSnapshot({
16491665path: configPath,
@@ -1855,7 +1871,9 @@ export function createConfigIO(
1855187118561872warnIfConfigFromFuture(validated.config, deps.logger);
18571873const snapshotConfig = await deps.measure("config.snapshot.read.materialize", () =>
1858-materializeRuntimeConfig(validated.config, "snapshot"),
1874+materializeRuntimeConfig(validated.config, "snapshot", {
1875+manifestRegistry: pluginMetadataSnapshot?.manifestRegistry,
1876+}),
18591877);
18601878return await deps.measure("config.snapshot.read.observe", () =>
18611879finalizeReadConfigSnapshotInternalResult(deps, {
@@ -1980,7 +1998,9 @@ export function createConfigIO(
19801998return result.snapshot.config;
19811999}
19822000return finalizeLoadedRuntimeConfig(
1983-materializeRuntimeConfig(result.snapshot.sourceConfig, "load"),
2001+materializeRuntimeConfig(result.snapshot.sourceConfig, "load", {
2002+manifestRegistry: result.pluginMetadataSnapshot?.manifestRegistry,
2003+}),
19842004);
19852005}
19862006此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。