From d76f924be34d8a0f2b28cb55375c262e651b6443 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 27 Apr 2026 09:09:10 +0100 Subject: [PATCH] fix(plugins): avoid registry barrel topology cycle --- src/plugins/activation-planner.ts | 2 +- src/plugins/bundle-commands.ts | 2 +- src/plugins/channel-presence-policy.ts | 2 +- src/plugins/gateway-startup-plugin-ids.ts | 4 ++-- src/plugins/plugin-lookup-table.ts | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/plugins/activation-planner.ts b/src/plugins/activation-planner.ts index 0bca2fef70d..82d3fcfdc4d 100644 --- a/src/plugins/activation-planner.ts +++ b/src/plugins/activation-planner.ts @@ -5,7 +5,7 @@ import type { PluginManifestRecord } from "./manifest-registry.js"; import type { PluginDiagnostic } from "./manifest-types.js"; import type { PluginManifestActivationCapability } from "./manifest.js"; import type { PluginOrigin } from "./plugin-origin.types.js"; -import { loadPluginManifestRegistryForPluginRegistry } from "./plugin-registry.js"; +import { loadPluginManifestRegistryForPluginRegistry } from "./plugin-registry-contributions.js"; import { createPluginIdScopeSet, normalizePluginIdScope } from "./plugin-scope.js"; export type PluginActivationPlannerTrigger = diff --git a/src/plugins/bundle-commands.ts b/src/plugins/bundle-commands.ts index df879522fc5..11eccc9cd46 100644 --- a/src/plugins/bundle-commands.ts +++ b/src/plugins/bundle-commands.ts @@ -18,7 +18,7 @@ import { normalizePluginsConfig, resolveEffectivePluginActivationState, } from "./config-state.js"; -import { loadPluginManifestRegistryForPluginRegistry } from "./plugin-registry.js"; +import { loadPluginManifestRegistryForPluginRegistry } from "./plugin-registry-contributions.js"; export type ClaudeBundleCommandSpec = { pluginId: string; diff --git a/src/plugins/channel-presence-policy.ts b/src/plugins/channel-presence-policy.ts index 868cabca0e1..abd665575b2 100644 --- a/src/plugins/channel-presence-policy.ts +++ b/src/plugins/channel-presence-policy.ts @@ -20,7 +20,7 @@ import { passesManifestOwnerBasePolicy, } from "./manifest-owner-policy.js"; import type { PluginManifestRecord } from "./manifest-registry.js"; -import { loadPluginManifestRegistryForPluginRegistry } from "./plugin-registry.js"; +import { loadPluginManifestRegistryForPluginRegistry } from "./plugin-registry-contributions.js"; const IGNORED_CHANNEL_CONFIG_KEYS = new Set(["defaults", "modelByChannel"]); diff --git a/src/plugins/gateway-startup-plugin-ids.ts b/src/plugins/gateway-startup-plugin-ids.ts index 26da5886e3f..0310a2085cd 100644 --- a/src/plugins/gateway-startup-plugin-ids.ts +++ b/src/plugins/gateway-startup-plugin-ids.ts @@ -15,9 +15,9 @@ import { loadPluginManifestRegistryForInstalledIndex } from "./manifest-registry import type { PluginManifestRegistry } from "./manifest-registry.js"; import { createPluginRegistryIdNormalizer, - loadPluginRegistrySnapshot, normalizePluginsConfigWithRegistry, -} from "./plugin-registry.js"; +} from "./plugin-registry-contributions.js"; +import { loadPluginRegistrySnapshot } from "./plugin-registry-snapshot.js"; function listDisabledChannelIds(config: OpenClawConfig): Set { const channels = config.channels; diff --git a/src/plugins/plugin-lookup-table.ts b/src/plugins/plugin-lookup-table.ts index 2853b0bb4e8..adcae71de6c 100644 --- a/src/plugins/plugin-lookup-table.ts +++ b/src/plugins/plugin-lookup-table.ts @@ -8,12 +8,12 @@ import { hashJson } from "./installed-plugin-index-hash.js"; import { loadPluginManifestRegistryForInstalledIndex } from "./manifest-registry-installed.js"; import type { PluginManifestRecord, PluginManifestRegistry } from "./manifest-registry.js"; import type { PluginDiagnostic } from "./manifest-types.js"; +import { createPluginRegistryIdNormalizer } from "./plugin-registry-contributions.js"; import { - createPluginRegistryIdNormalizer, loadPluginRegistrySnapshotWithMetadata, type PluginRegistrySnapshot, type PluginRegistrySnapshotDiagnostic, -} from "./plugin-registry.js"; +} from "./plugin-registry-snapshot.js"; export type PluginLookUpTableOwnerMaps = { channels: ReadonlyMap;