openclaw - ✅(Solved) Fix [Bug]: Control UI dreaming toggle creates orphaned top-level memory-core config triggering 'not in allowlist' warning [2 pull requests, 2 comments, 2 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#62098Fetched 2026-04-08 03:09:02
View on GitHub
Comments
2
Participants
2
Timeline
5
Reactions
0
Timeline (top)
commented ×2cross-referenced ×2closed ×1

Toggling the dreaming feature in the Control UI creates an orphaned memory-core config block at the top level of plugins.entries (outside the plugin's own entries), which triggers a config warning: plugins.entries.memory-core: plugin disabled (not in allowlist) but config is present.

Root Cause

The Control UI's dreaming toggle writes config to the wrong JSON path. Instead of updating plugins.entries.memory-core.config.dreaming.enabled, it creates a new plugins.memory-core sibling to plugins.entries. This orphaned block:

  1. Has no enabled: true flag (so the system treats it as disabled)
  2. Is not in plugins.allow (because it's not a real plugin entry)
  3. Triggers the "disabled but config present" warning on every startup

Fix Action

Fixed

PR fix notes

PR #62275: fix(memory): respect selected slot in dreaming config

Description (problem / solution / changelog)

Summary

  • make the dreaming toggle patch the selected memory slot plugin instead of hardcoding memory-core
  • make doctor.memory.status read dreaming config from plugins.slots.memory when present
  • add focused regression coverage for the selected-slot UI patch path and doctor status path

Related #62098

Changed files

  • CHANGELOG.md (modified, +1/-0)
  • src/gateway/server-methods/doctor.test.ts (modified, +58/-2)
  • src/gateway/server-methods/doctor.ts (modified, +6/-6)
  • src/memory-host-sdk/dreaming.test.ts (modified, +69/-2)
  • src/memory-host-sdk/dreaming.ts (modified, +21/-3)
  • ui/src/ui/app-render.ts (modified, +1/-18)
  • ui/src/ui/controllers/dreaming.test.ts (modified, +127/-0)
  • ui/src/ui/controllers/dreaming.ts (modified, +29/-1)

PR #62394: fix(memory): respect selected memory slot in dreaming config

Description (problem / solution / changelog)

Summary

Read and write dreaming config from the plugin selected in plugins.slots.memory instead of hardcoding memory-core.

When a memory slot plugin (e.g. memos-local-openclaw-plugin) is configured via plugins.slots.memory, the Control UI dreaming toggle and doctor.memory.status now correctly target the selected plugin's config path (plugins.entries.<slot>.config.dreaming) rather than always targeting plugins.entries.memory-core.

Changes

src/memory-host-sdk/dreaming.ts

  • resolveMemoryCorePluginConfig(): read slots.memory and use that plugin id; fall back to memory-core if not set

ui/src/ui/controllers/dreaming.ts

  • updateDreamingEnabled(): construct patch using the selected memory slot plugin id from configSnapshot

Fixes

Fixes: #62098

Changed files

  • src/memory-host-sdk/dreaming.test.ts (modified, +57/-0)
  • src/memory-host-sdk/dreaming.ts (modified, +5/-2)
  • ui/src/ui/app-render.ts (modified, +22/-5)
  • ui/src/ui/controllers/dreaming.test.ts (modified, +85/-0)
  • ui/src/ui/controllers/dreaming.ts (modified, +6/-1)

Code Example

{
  "plugins": {
    "entries": {
      "memos-local-openclaw-plugin": { ... },
      "memory-core": {
        "enabled": true,
        "config": { "dreaming": { "enabled": true } }
      },
      "memory-lancedb": { "enabled": true }
    },
    "memory-core": {          // ← Orphaned block created by Control UI
      "config": {
        "dreaming": { "enabled": true }
      }
    }
  }
}

---

Config warnings:
- plugins.entries.memory-core: plugin disabled (not in allowlist) but config is present
RAW_BUFFERClick to expand / collapse

Summary

Toggling the dreaming feature in the Control UI creates an orphaned memory-core config block at the top level of plugins.entries (outside the plugin's own entries), which triggers a config warning: plugins.entries.memory-core: plugin disabled (not in allowlist) but config is present.

Steps to Reproduce

  1. Open Control UI → Settings → Memory/Dreaming section
  2. Dreaming toggle shows as "off" (even though it may already be enabled in config)
  3. Toggle it on
  4. Gateway restarts and shows config warning

Expected Behavior

  • Dreaming toggle should correctly reflect the current config state
  • Config changes should be written to the correct plugins.entries.memory-core path, not create a duplicate/orphaned block

Actual Behavior

The Control UI creates a second memory-core config block at the wrong level in openclaw.json:

{
  "plugins": {
    "entries": {
      "memos-local-openclaw-plugin": { ... },
      "memory-core": {
        "enabled": true,
        "config": { "dreaming": { "enabled": true } }
      },
      "memory-lancedb": { "enabled": true }
    },
    "memory-core": {          // ← Orphaned block created by Control UI
      "config": {
        "dreaming": { "enabled": true }
      }
    }
  }
}

This orphaned block at plugins.memory-core (outside plugins.entries) triggers:

Config warnings:
- plugins.entries.memory-core: plugin disabled (not in allowlist) but config is present

Root Cause Analysis

The Control UI's dreaming toggle writes config to the wrong JSON path. Instead of updating plugins.entries.memory-core.config.dreaming.enabled, it creates a new plugins.memory-core sibling to plugins.entries. This orphaned block:

  1. Has no enabled: true flag (so the system treats it as disabled)
  2. Is not in plugins.allow (because it's not a real plugin entry)
  3. Triggers the "disabled but config present" warning on every startup

Impact

  • Config warning on every gateway restart
  • Confusing UX: dreaming toggle shows "off" even when already enabled in config
  • Potential config bloat if toggled multiple times

Environment

  • OS: Windows 11
  • OpenClaw version: 2026.4.5 (3e72c03)
  • Config: Using memos-local-openclaw-plugin as memory slot, with memory-core and memory-lancedb also enabled in plugins.entries

Suggested Fix

  1. Control UI should write dreaming config to plugins.entries.memory-core.config.dreaming instead of creating a top-level plugins.memory-core block
  2. Dreaming toggle should read from the correct config path to reflect actual state
  3. Add config migration/cleanup for orphaned plugins.memory-core blocks

extent analysis

TL;DR

The Control UI should write the dreaming config to the correct path, plugins.entries.memory-core.config.dreaming, instead of creating an orphaned block at plugins.memory-core.

Guidance

  • Verify the config path being written by the Control UI's dreaming toggle to ensure it matches the expected path plugins.entries.memory-core.config.dreaming.
  • Check the dreaming toggle's read logic to confirm it reflects the actual config state from the correct path.
  • Consider adding a config migration or cleanup mechanism to remove orphaned plugins.memory-core blocks and prevent config bloat.
  • Review the memos-local-openclaw-plugin configuration to ensure it is correctly handling the memory-core plugin's config.

Example

No code snippet is provided as the issue is related to the Control UI's config writing logic, which is not explicitly shown in the issue body.

Notes

The suggested fix implies a change in the Control UI's config writing logic, which may require updates to the UI's codebase. Additionally, the presence of orphaned config blocks may indicate a larger issue with config management, which should be investigated to prevent similar problems in the future.

Recommendation

Apply a workaround by manually correcting the config path in the openclaw.json file to reflect the correct plugins.entries.memory-core.config.dreaming path, until a permanent fix can be implemented in the Control UI.

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