openclaw - ✅(Solved) Fix dreaming CLI: plugins.allow false-positive plugin not found warning [2 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#64191Fetched 2026-04-11 06:15:58
View on GitHub
Comments
0
Participants
1
Timeline
10
Reactions
0
Participants
Timeline (top)
referenced ×6cross-referenced ×3closed ×1

Fix Action

Fixed

PR fix notes

PR #64221: fix(config): clarify dreaming allowlist warnings

Description (problem / solution / changelog)

Addresses #64191

Summary

  • stop reporting dreaming as a stale unknown plugin id in plugins.allow
  • replace that warning with explicit guidance that dreaming is a memory-core command, not a plugin id
  • add validation coverage for the guided warning path

Test Plan

  • pnpm --dir /Users/wentao/Desktop/openclaw exec vitest run src/plugins/config-policy.test.ts src/plugins/loader.test.ts src/config/config.plugin-validation.test.ts src/agents/skills/workspace.load-order.test.ts
  • NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir /Users/wentao/Desktop/openclaw exec tsc --noEmit --pretty false

Changed files

  • extensions/comfy/image-generation-provider.test.ts (modified, +26/-0)
  • extensions/comfy/music-generation-provider.test.ts (modified, +67/-0)
  • extensions/comfy/video-generation-provider.test.ts (modified, +28/-0)
  • extensions/comfy/workflow-runtime.ts (modified, +5/-2)
  • extensions/memory-core/src/memory/index.test.ts (modified, +6/-0)
  • extensions/memory-core/src/memory/provider-adapters.ts (modified, +39/-1)
  • extensions/whatsapp/src/session.runtime.ts (modified, +1/-0)
  • extensions/whatsapp/src/session.test.ts (modified, +67/-27)
  • extensions/whatsapp/src/session.ts (modified, +33/-1)
  • src/agents/skills/workspace.load-order.test.ts (added, +48/-0)
  • src/agents/skills/workspace.ts (modified, +25/-23)
  • src/agents/tools/sessions-announce-target.ts (modified, +15/-1)
  • src/agents/tools/sessions-helpers.ts (modified, +2/-0)
  • src/agents/tools/sessions.test.ts (modified, +27/-0)
  • src/config/config.plugin-validation.test.ts (modified, +25/-0)
  • src/config/validation.ts (modified, +8/-0)
  • src/infra/outbound/message-action-params.test.ts (modified, +36/-1)
  • src/infra/outbound/message-action-params.ts (modified, +7/-2)
  • src/memory-host-sdk/engine-embeddings.ts (modified, +4/-0)
  • src/plugins/config-normalization-shared.ts (modified, +3/-0)
  • src/plugins/config-policy.test.ts (modified, +12/-0)
  • src/plugins/loader.test.ts (modified, +3/-1)
  • src/plugins/loader.ts (modified, +1/-1)
  • test/mocks/baileys.ts (modified, +8/-0)

PR #64242: fix(config): give actionable guidance when command names are used in plugins.allow (#64191)

Description (problem / solution / changelog)

Summary

  • Problem: Putting "dreaming" in plugins.allow causes a "plugin not found" warning, and running openclaw dreaming from CLI misleadingly tells users to add "dreaming" to plugins.allow — creating a circular trap where neither path works.
  • Why it matters: Users cannot discover that /dreaming is a runtime slash command from memory-core, not a standalone plugin or CLI command. The error messages actively mislead them.
  • What changed: Added a command-name-to-plugin-id map so both validation and CLI resolution give actionable guidance pointing users to the correct plugin id (memory-core) and the correct usage (/dreaming in chat or openclaw memory on CLI).
  • What did NOT change: No new features, no behavioral changes to dreaming itself, no changes to how plugins.allow enforcement works. Generic "plugin not found" handling for truly unknown ids is untouched.

Change Type (select all)

  • Bug fix
  • Feature
  • Refactor required for the fix
  • Docs
  • Security hardening
  • Chore/infra

Scope (select all touched areas)

  • Gateway / orchestration
  • Skills / tool execution
  • Auth / tokens
  • Memory / storage
  • Integrations
  • API / contracts
  • UI / DX
  • CI/CD / infra

Linked Issue/PR

  • Closes #64191
  • This PR fixes a bug or regression

Root Cause (if applicable)

  • Root cause: dreaming is a runtime slash command registered by the memory-core plugin via api.registerCommand(), but both config validation and CLI command resolution treat unrecognized names as plugin ids. Neither path knows that some command names map to parent plugins.
  • Missing detection / guardrail: No mapping existed between well-known runtime command names and their parent plugin ids.
  • Contributing context: The memory-core plugin registers CLI commands under memory (via api.registerCli()) but its slash command under dreaming (via api.registerCommand()). The naming mismatch between the CLI surface (memory) and the slash command (dreaming) makes this confusing.

Regression Test Plan (if applicable)

  • Coverage level that should have caught this:
    • Unit test
  • Target test or file:
    • src/cli/run-main.test.ts — 2 new tests for resolveMissingPluginCommandMessage("dreaming")
    • src/config/config.plugin-validation.test.ts — 1 new test for plugins.allow: ["dreaming"]
  • Scenario the test should lock in:
    • "dreaming" in plugins.allow produces a redirect warning (not generic "plugin not found")
    • openclaw dreaming produces a runtime-command explanation (not a misleading plugins.allow suggestion)
    • The runtime-command message takes priority even when plugins.allow is set

Security Impact

  1. Does this touch auth, tokens, credentials, or permission checks? No
  2. Does this change exec, shell, or code-execution paths? No
  3. Does this affect network, SSRF, or fetch-guard behavior? No
  4. Does this change how untrusted content is processed? No
  5. Does this modify config loading, validation, or defaults? Yes — validation warning messages only, no behavioral changes to enforcement

Human Verification (required)

Verified scenarios:

  • Docker E2E: plugins.allow: ["dreaming"] + openclaw doctor → shows redirect warning to memory-core
  • Docker E2E: openclaw dreaming status with plugins.allow: ["memory-core"] → shows runtime slash command explanation ✅
  • Docker E2E: openclaw dreaming status without plugins.allow → same explanation ✅
  • Docker E2E: openclaw memory --help → still works normally ✅
  • Unit tests: all 3 new tests pass, all existing tests pass ✅
  • pnpm check passes (types, lint, all checks) ✅

Edge cases checked:

  • COMMAND_NAME_TO_PLUGIN_ID entries where command name equals plugin id (e.g. active-memory) are skipped by the parentPluginId !== pluginId guard
  • Unknown plugin ids not in the map still get the generic "plugin not found" warning

What I did NOT verify:

  • Gateway runtime behavior of /dreaming slash command (not changed by this PR)

Review Conversations

  • I replied to or resolved every bot review conversation I addressed in this PR.
  • I left unresolved only the conversations that still need reviewer or maintainer judgment.

Compatibility / Migration

  • Backward compatible? Yes
  • Config/env changes? No
  • Migration needed? No

Risks and Mitigations

  • Risk: The static COMMAND_NAME_TO_PLUGIN_ID map could become stale if plugins rename their commands.
    • Mitigation: The map is small, well-documented, and only affects warning messages. If a mapping becomes stale, users fall back to the existing generic "plugin not found" warning — no worse than before.

Changed files

  • CHANGELOG.md (modified, +1/-0)
  • docs/plugins/manifest.md (modified, +25/-0)
  • extensions/device-pair/openclaw.plugin.json (modified, +6/-0)
  • extensions/memory-core/openclaw.plugin.json (modified, +7/-0)
  • extensions/memory-core/src/cli.test.ts (modified, +2/-1)
  • extensions/phone-control/openclaw.plugin.json (modified, +6/-0)
  • extensions/qa-lab/src/gateway-child.ts (modified, +14/-4)
  • extensions/talk-voice/openclaw.plugin.json (modified, +6/-0)
  • src/cli/run-main.test.ts (modified, +43/-0)
  • src/cli/run-main.ts (modified, +33/-0)
  • src/config/config.plugin-validation.test.ts (modified, +29/-0)
  • src/config/config.web-search-provider.test.ts (modified, +1/-0)
  • src/config/validation.ts (modified, +15/-1)
  • src/plugins/manifest-registry.ts (modified, +44/-0)
  • src/plugins/manifest.ts (modified, +50/-0)
  • src/plugins/setup-registry.runtime.ts (modified, +5/-2)

Code Example

"plugins": {
  "allow": ["dreaming"],
  "entries": {
    "memory-core": {
      "config": {
        "dreaming": {
          "enabled": true
        }
      }
    }
  }
}

---

plugins.allow: plugin not found: dreaming (stale config entry ignored; remove it from plugins config)
RAW_BUFFERClick to expand / collapse

Bug: dreaming CLI - plugins.allow false-positive warning

问题openclaw dreaming [status|on|off] CLI 命令需要在 plugins.allow 里加 "dreaming",但加了之后反而报 "plugin not found" 被当作无效配置忽略。

配置

"plugins": {
  "allow": ["dreaming"],
  "entries": {
    "memory-core": {
      "config": {
        "dreaming": {
          "enabled": true
        }
      }
    }
  }
}

错误信息

plugins.allow: plugin not found: dreaming (stale config entry ignored; remove it from plugins config)

根因:dreaming 不是独立插件,是 memory-core 的内部功能,但 CLI 命令的注册机制却要求它必须在 plugins.allow 里。

现状:memory-core 的 dreaming 功能在 cron 调度下正常运行,但 /dreaming on/off/status 这些 CLI 命令完全无法使用。

建议修复:文档明确说明不应该把 dreaming 加到 plugins.allow,或者把 dreaming 注册为真正的插件 ID。

extent analysis

TL;DR

Remove "dreaming" from the plugins.allow configuration to prevent the false-positive warning and allow the memory-core dreaming functionality to work as expected.

Guidance

  • Verify that the dreaming functionality is indeed part of the memory-core plugin and not a separate plugin by checking the plugin's documentation or code.
  • Remove "dreaming" from the plugins.allow array in the configuration file to prevent the warning and potential configuration issues.
  • Check the memory-core plugin's configuration to ensure that the dreaming feature is enabled and properly configured.
  • Test the memory-core dreaming functionality after removing "dreaming" from plugins.allow to ensure it works as expected.

Example

No code snippet is provided as the issue is related to configuration and plugin management.

Notes

The issue seems to be caused by a mismatch between the plugin registration mechanism and the actual implementation of the dreaming feature within the memory-core plugin. Removing "dreaming" from plugins.allow should resolve the warning and allow the feature to work, but it's essential to verify the plugin's documentation and configuration to ensure correct functionality.

Recommendation

Apply workaround: Remove "dreaming" from plugins.allow to prevent the false-positive warning and allow the memory-core dreaming functionality to work as expected. This is because the dreaming feature is not a separate plugin, but rather an internal functionality of the memory-core plugin.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING