@nowledge/openclaw-nowledge-mem 0.8.19 → 0.8.21

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,19 @@ All notable changes to the Nowledge Mem OpenClaw plugin will be documented in th
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## [0.8.21] - 2026-04-29
8
+
9
+ ### Fixed
10
+
11
+ - ClawHub installs no longer fail archive verification because `.clawhubignore` is now excluded from the published package manifest as well as the archive.
12
+
13
+ ## [0.8.20] - 2026-04-27
14
+
15
+ ### Fixed
16
+
17
+ - ClawHub packages now exclude local `node_modules/`, preventing unpublished development artifacts from entering the security scan.
18
+ - Remote HTTP requests no longer place API keys in URL query strings. The plugin keeps credentials in `Authorization` and `X-NMEM-API-Key` headers only.
19
+
7
20
  ## [0.8.19] - 2026-04-21
8
21
 
9
22
  ### Fixed
package/README.md CHANGED
@@ -428,6 +428,14 @@ No config is required for a normal npm install. The defaults work for local mode
428
428
 
429
429
  To change settings, use the OpenClaw plugin settings UI. Changes take effect on restart.
430
430
 
431
+ ## Customize without editing the plugin
432
+
433
+ OpenClaw does not currently have a separate user-owned instruction file in this integration contract.
434
+
435
+ - Use the OpenClaw plugin settings UI for supported behavior changes such as `sessionContext`, digest controls, remote credentials, and space selection.
436
+ - If you need additional behavioral guidance, customize OpenClaw's own prompt or agent configuration surface.
437
+ - Do not patch the installed plugin source under the OpenClaw extensions directory.
438
+
431
439
  | Key | Type | Default | Description |
432
440
  |-----|------|---------|-------------|
433
441
  | `sessionContext` | boolean | `false` | Inject Working Memory + relevant memories at prompt time |
@@ -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.19",
5
+ "version": "0.8.21",
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.19",
4
+ "version": "0.8.21",
5
5
  "type": "module",
6
6
  "description": "Nowledge Mem memory plugin for OpenClaw, local-first personal knowledge base",
7
7
  "author": {
package/src/client.js CHANGED
@@ -137,16 +137,15 @@ export class NowledgeMemClient {
137
137
  const timer = setTimeout(() => controller.abort(), timeout);
138
138
  const scopedPath = this._withSpaceQuery(path);
139
139
  const scopedBody = this._withSpaceBody(body);
140
- const url = `${this.getApiBaseUrl()}${scopedPath}`;
141
140
  try {
142
- const response = await fetch(url, {
141
+ const requestBody =
142
+ scopedBody === undefined ? undefined : JSON.stringify(scopedBody);
143
+ const response = await fetch(`${this.getApiBaseUrl()}${scopedPath}`, {
143
144
  method,
144
145
  headers: this.getApiHeaders(),
145
- body:
146
- scopedBody === undefined ? undefined : JSON.stringify(scopedBody),
146
+ body: requestBody,
147
147
  signal: controller.signal,
148
148
  });
149
-
150
149
  const text = await response.text();
151
150
  let data = {};
152
151
  try {
@@ -154,7 +153,6 @@ export class NowledgeMemClient {
154
153
  } catch {
155
154
  data = { raw: text };
156
155
  }
157
-
158
156
  if (!response.ok) {
159
157
  const detail =
160
158
  typeof data?.detail === "string"