-
-
Notifications
You must be signed in to change notification settings - Fork 82.1k
UX: misleading plugin warnings when allowlist entries don't match discovered plugin IDs #68352
Copy link
Copy link
Closed as not planned
Closed as not planned
Copy link
Labels
P3Low-priority cleanup, docs, polish, ergonomics, or speculative work.Low-priority cleanup, docs, polish, ergonomics, or speculative work.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.Security boundary, credential, authz, sandbox, or sensitive-data risk.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.staleMarked as stale due to inactivityMarked as stale due to inactivity
Description
Activity
Metadata
Metadata
Assignees
Labels
P3Low-priority cleanup, docs, polish, ergonomics, or speculative work.Low-priority cleanup, docs, polish, ergonomics, or speculative work.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.Security boundary, credential, authz, sandbox, or sensitive-data risk.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.staleMarked as stale due to inactivityMarked as stale due to inactivity
Type
Fields
Priority
None yet
Problem
When a user configures
plugins.allowwith channel IDs (e.g."feishu") instead of actual plugin IDs (e.g."openclaw-lark"), two confusing warnings are emitted at startup:There are three sub-issues here:
1.
plugins.allow is emptyis misleadingThe warning says
plugins.allow is emptywhen the allowlist is not empty — it simply contains entries that don't match any discovered plugin IDs. The message atsrc/plugins/loader.ts:1358checksparams.allow.length > 0, which is true, but the user still sees a message implying their allowlist is empty, which is confusing.2. Plugin ID vs Channel ID mismatch
The feishu channel plugin declares its plugin ID as
"openclaw-lark"(in bothopenclaw.plugin.jsonand the default export), but users naturally configure it as"feishu"because:channels.feishufeishu-openclaw-pluginThis mismatch is the root cause of the warnings above. Users have no clear way to discover the actual plugin ID without reading the plugin source code or
openclaw.plugin.json.3. Unwanted plugins auto-loaded from extensions directory
Plugins in
~/.openclaw/extensions/are auto-discovered and loaded even when the user has never configured them. In my case,openclaw-weixinwas auto-loaded despite having nochannels.weixinconfiguration and no entry inplugins.entries. The only way to prevent this is to explicitly add it toplugins.deny.Suggested improvements
Better warning messages: When
plugins.allowhas entries but none match discovered plugins, say something like"plugins.allow contains entries that don't match any discovered plugin IDs"instead of"plugins.allow is empty".Plugin ID discovery: Provide a way for users to discover the actual plugin ID (e.g.,
openclaw plugins listshould show the ID prominently, or the warning message should suggest how to find it).Channel-to-plugin ID aliasing: Consider auto-resolving common channel IDs to their plugin IDs, or at least emit a more specific warning like
"plugin 'openclaw-lark' was discovered but not found in plugins.allow (you may have configured 'feishu' — use the plugin ID, not the channel ID)".Only auto-load configured channel plugins from extensions: Plugins in the extensions directory should only be loaded if their channel is configured or if they're explicitly in
plugins.allow.Reproduction steps
~/.openclaw/extensions/(e.g.,feishu-openclaw-plugin)channels.feishubut setplugins.allowto["feishu"](channel ID, not plugin ID)Environment