@nowledge/openclaw-nowledge-mem 0.8.22 → 0.8.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to the Nowledge Mem OpenClaw plugin will be documented in th
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## [0.8.23] - 2026-05-02
8
+
9
+ ### Fixed
10
+
11
+ - Empty OpenClaw dashboard space settings no longer block launch-time `NMEM_SPACE`. This keeps scripted profiles, local E2E runs, and agent-specific launchers scoped to the intended Mem space while preserving non-empty dashboard/file space overrides.
12
+
7
13
  ## [0.8.22] - 2026-04-29
8
14
 
9
15
  ### Fixed
@@ -2,7 +2,7 @@
2
2
  "id": "openclaw-nowledge-mem",
3
3
  "name": "Nowledge Mem",
4
4
  "description": "Cross-tool knowledge graph memory for OpenClaw with Working Memory, graph search, and session distillation.",
5
- "version": "0.8.22",
5
+ "version": "0.8.23",
6
6
  "kind": ["memory", "context-engine"],
7
7
  "skills": [
8
8
  "skills/memory-guide"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nowledge/openclaw-nowledge-mem",
3
3
  "displayName": "Nowledge Mem for OpenClaw",
4
- "version": "0.8.22",
4
+ "version": "0.8.23",
5
5
  "type": "module",
6
6
  "description": "Nowledge Mem memory plugin for OpenClaw, local-first personal knowledge base",
7
7
  "author": {
package/src/config.js CHANGED
@@ -137,12 +137,6 @@ function pickStr(obj, key) {
137
137
  return trimmed || undefined;
138
138
  }
139
139
 
140
- function pickPresentString(obj, key) {
141
- if (!Object.prototype.hasOwnProperty.call(obj, key)) return undefined;
142
- if (typeof obj[key] !== "string") return undefined;
143
- return obj[key].trim();
144
- }
145
-
146
140
  function resolveEnvTemplate(value) {
147
141
  return value.replace(/\$\{([^}]+)\}/g, (_, envVar) => {
148
142
  const envValue = process.env[envVar];
@@ -391,8 +385,11 @@ export function parseConfig(raw, logger) {
391
385
  _sources.apiKey = ak.source;
392
386
 
393
387
  // --- space: file (legacy) > pluginConfig > template > env > default ---
394
- const fs = pickPresentString(resolvedFile, "space");
395
- const ps = pickPresentString(resolvedPlugin, "space");
388
+ // OpenClaw's schema stores the default as `space: ""`. Treat that as
389
+ // "not set" so launch-time ambient space can still scope test runs and
390
+ // scripted agent sessions. A non-empty configured space remains stronger.
391
+ const fs = pickStr(resolvedFile, "space");
392
+ const ps = pickStr(resolvedPlugin, "space");
396
393
  const fst = pickStr(resolvedFile, "spaceTemplate");
397
394
  const pst = pickStr(resolvedPlugin, "spaceTemplate");
398
395
  const spaceChoice = firstDefined(