fix: doctor plugin-id mapping for channel auto-enable (#25275) (thanks @zerone0x)

This commit is contained in:
Peter Steinberger
2026-02-24 14:35:25 +00:00
parent 203de14211
commit 3b4dac764b
3 changed files with 3 additions and 5 deletions

View File

@@ -28,6 +28,7 @@ Docs: https://docs.openclaw.ai
- Control UI/Chat images: centralize safe external URL opening for image clicks (allowlist `http/https/blob` + opt-in `data:image/*`) and enforce opener isolation (`noopener,noreferrer` + `window.opener = null`) to prevent tabnabbing/unsafe schemes. (#25444) Thanks @shakkernerd.
- CLI/Doctor: correct stale recovery hints to use valid commands (`openclaw gateway status --deep` and `openclaw configure --section model`). (#24485) Thanks @chilu18.
- Security/Sandbox: canonicalize bind-mount source paths via existing-ancestor realpath so symlink-parent + non-existent-leaf paths cannot bypass allowed-source-roots or blocked-path checks. Thanks @tdjackey.
- Doctor/Plugins: auto-enable now resolves third-party channel plugins by manifest plugin id (not channel id), preventing invalid `plugins.entries.<channelId>` writes when ids differ. (#25275) Thanks @zerone0x.
## 2026.2.23

View File

@@ -4,9 +4,7 @@ import { validateConfigObject } from "./config.js";
import { applyPluginAutoEnable } from "./plugin-auto-enable.js";
/** Helper to build a minimal PluginManifestRegistry for testing. */
function makeRegistry(
plugins: Array<{ id: string; channels: string[] }>,
): PluginManifestRegistry {
function makeRegistry(plugins: Array<{ id: string; channels: string[] }>): PluginManifestRegistry {
return {
plugins: plugins.map((p) => ({
id: p.id,

View File

@@ -502,8 +502,7 @@ export function applyPluginAutoEnable(params: {
manifestRegistry?: PluginManifestRegistry;
}): PluginAutoEnableResult {
const env = params.env ?? process.env;
const registry =
params.manifestRegistry ?? loadPluginManifestRegistry({ config: params.config });
const registry = params.manifestRegistry ?? loadPluginManifestRegistry({ config: params.config });
const configured = resolveConfiguredPlugins(params.config, env, registry);
if (configured.length === 0) {
return { config: params.config, changes: [] };