mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-02 10:47:15 +00:00
fix: doctor plugin-id mapping for channel auto-enable (#25275) (thanks @zerone0x)
This commit is contained in:
@@ -21,6 +21,7 @@ Docs: https://docs.openclaw.ai
|
|||||||
- macOS/Menu bar: stop reusing the injector delegate for the "Usage cost (30 days)" submenu to prevent recursive submenu injection loops when opening cost history. (#25341) Thanks @yingchunbai.
|
- macOS/Menu bar: stop reusing the injector delegate for the "Usage cost (30 days)" submenu to prevent recursive submenu injection loops when opening cost history. (#25341) Thanks @yingchunbai.
|
||||||
- Control UI/Chat images: harden image-open clicks against reverse tabnabbing by using opener isolation (`noopener,noreferrer` plus `window.opener = null`). (#18685) Thanks @Mariana-Codebase.
|
- Control UI/Chat images: harden image-open clicks against reverse tabnabbing by using opener isolation (`noopener,noreferrer` plus `window.opener = null`). (#18685) Thanks @Mariana-Codebase.
|
||||||
- CLI/Doctor: correct stale recovery hints to use valid commands (`openclaw gateway status --deep` and `openclaw configure --section model`). (#24485) Thanks @chilu18.
|
- CLI/Doctor: correct stale recovery hints to use valid commands (`openclaw gateway status --deep` and `openclaw configure --section model`). (#24485) Thanks @chilu18.
|
||||||
|
- 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
|
## 2026.2.23
|
||||||
|
|
||||||
|
|||||||
@@ -4,9 +4,7 @@ import { validateConfigObject } from "./config.js";
|
|||||||
import { applyPluginAutoEnable } from "./plugin-auto-enable.js";
|
import { applyPluginAutoEnable } from "./plugin-auto-enable.js";
|
||||||
|
|
||||||
/** Helper to build a minimal PluginManifestRegistry for testing. */
|
/** Helper to build a minimal PluginManifestRegistry for testing. */
|
||||||
function makeRegistry(
|
function makeRegistry(plugins: Array<{ id: string; channels: string[] }>): PluginManifestRegistry {
|
||||||
plugins: Array<{ id: string; channels: string[] }>,
|
|
||||||
): PluginManifestRegistry {
|
|
||||||
return {
|
return {
|
||||||
plugins: plugins.map((p) => ({
|
plugins: plugins.map((p) => ({
|
||||||
id: p.id,
|
id: p.id,
|
||||||
|
|||||||
@@ -502,8 +502,7 @@ export function applyPluginAutoEnable(params: {
|
|||||||
manifestRegistry?: PluginManifestRegistry;
|
manifestRegistry?: PluginManifestRegistry;
|
||||||
}): PluginAutoEnableResult {
|
}): PluginAutoEnableResult {
|
||||||
const env = params.env ?? process.env;
|
const env = params.env ?? process.env;
|
||||||
const registry =
|
const registry = params.manifestRegistry ?? loadPluginManifestRegistry({ config: params.config });
|
||||||
params.manifestRegistry ?? loadPluginManifestRegistry({ config: params.config });
|
|
||||||
const configured = resolveConfiguredPlugins(params.config, env, registry);
|
const configured = resolveConfiguredPlugins(params.config, env, registry);
|
||||||
if (configured.length === 0) {
|
if (configured.length === 0) {
|
||||||
return { config: params.config, changes: [] };
|
return { config: params.config, changes: [] };
|
||||||
|
|||||||
Reference in New Issue
Block a user