@xdarkicex/openclaw-memory-libravdb 1.6.23 → 1.6.25

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/README.md CHANGED
@@ -14,7 +14,7 @@
14
14
  `@xdarkicex/openclaw-memory-libravdb` is a local-first OpenClaw memory plugin
15
15
  backed by the `libravdbd` vector service. It replaces the lightweight default memory
16
16
  path with scoped session, user, and global memory; continuity-aware prompt
17
- assembly; durable recall; and sidecar-owned compaction.
17
+ assembly; durable recall; and daemon-owned compaction.
18
18
 
19
19
  [Install](./docs/install.md) · [Full installation reference](./docs/installation.md) · [Architecture](./docs/architecture.md) · [Security](./docs/security.md) · [Performance and tuning](./docs/performance-and-tuning.md) · [Contributing](./docs/contributing.md)
20
20
 
@@ -109,7 +109,7 @@ Runtime requirements:
109
109
 
110
110
  Compatibility note:
111
111
 
112
- - this plugin is currently verified against OpenClaw `2026.4.23`
112
+ - this plugin is currently verified against OpenClaw `2026.5.22`
113
113
 
114
114
  Default endpoints:
115
115
 
@@ -139,7 +139,7 @@ If your service runs elsewhere, set `sidecarPath`:
139
139
  - **Memory capability ownership** - owns the OpenClaw `memory` slot and
140
140
  registers the context engine capability at runtime.
141
141
  - **Memory runtime bridge** - routes built-in `memory_search` calls to the same
142
- libraVDB-backed sidecar on hosts that expose the runtime API.
142
+ libraVDB-backed daemon on hosts that expose the runtime API.
143
143
  - **Three memory scopes** - keeps active session, durable user, and global memory
144
144
  separate.
145
145
  - **Hybrid retrieval** - blends semantic similarity, scope, recency, and summary
package/dist/index.js CHANGED
@@ -33097,6 +33097,13 @@ var DirectoryMarkdownSourceAdapter = class {
33097
33097
  if (!this.started || this.stopping) {
33098
33098
  return;
33099
33099
  }
33100
+ for (const state of this.states.values()) {
33101
+ if (state.scanState.timer) {
33102
+ clearTimeout(state.scanState.timer);
33103
+ state.scanState.timer = null;
33104
+ }
33105
+ state.scanState.dirty = false;
33106
+ }
33100
33107
  for (const root of this.roots) {
33101
33108
  await this.scanRoot(root);
33102
33109
  }
@@ -33238,11 +33245,11 @@ var DirectoryMarkdownSourceAdapter = class {
33238
33245
  continue;
33239
33246
  }
33240
33247
  stats.filesIncluded++;
33241
- currentFiles.add(child);
33242
33248
  const stat = await this.safeStatWithCtime(child);
33243
33249
  if (!stat) {
33244
33250
  continue;
33245
33251
  }
33252
+ currentFiles.add(child);
33246
33253
  candidates.push({ path: child, size: stat.size, mtimeMs: stat.mtimeMs, ctimeMs: stat.ctimeMs, ordinal: candidates.length });
33247
33254
  }
33248
33255
  }
@@ -33257,6 +33264,8 @@ var DirectoryMarkdownSourceAdapter = class {
33257
33264
  this.lastRetryAfterMs = 0;
33258
33265
  } else {
33259
33266
  rootState.scanState.resumeFromPath = null;
33267
+ this.lastAcceptMore = true;
33268
+ this.lastRetryAfterMs = 0;
33260
33269
  }
33261
33270
  }
33262
33271
  for (const candidate of sorted) {
@@ -147,6 +147,14 @@ class DirectoryMarkdownSourceAdapter {
147
147
  if (!this.started || this.stopping) {
148
148
  return;
149
149
  }
150
+ // Cancel any pending scheduled scans so they don't race with this refresh
151
+ for (const state of this.states.values()) {
152
+ if (state.scanState.timer) {
153
+ clearTimeout(state.scanState.timer);
154
+ state.scanState.timer = null;
155
+ }
156
+ state.scanState.dirty = false;
157
+ }
150
158
  for (const root of this.roots) {
151
159
  await this.scanRoot(root);
152
160
  }
@@ -291,11 +299,11 @@ class DirectoryMarkdownSourceAdapter {
291
299
  continue;
292
300
  }
293
301
  stats.filesIncluded++;
294
- currentFiles.add(child);
295
302
  const stat = await this.safeStatWithCtime(child);
296
303
  if (!stat) {
297
304
  continue;
298
305
  }
306
+ currentFiles.add(child);
299
307
  candidates.push({ path: child, size: stat.size, mtimeMs: stat.mtimeMs, ctimeMs: stat.ctimeMs, ordinal: candidates.length });
300
308
  }
301
309
  }
@@ -310,7 +318,10 @@ class DirectoryMarkdownSourceAdapter {
310
318
  this.lastRetryAfterMs = 0;
311
319
  }
312
320
  else {
321
+ // Resume cursor target was deleted — clear it and resume normal processing
313
322
  rootState.scanState.resumeFromPath = null;
323
+ this.lastAcceptMore = true;
324
+ this.lastRetryAfterMs = 0;
314
325
  }
315
326
  }
316
327
  for (const candidate of sorted) {
@@ -439,6 +450,8 @@ class DirectoryMarkdownSourceAdapter {
439
450
  async syncMarkdownFile(rootState, filePath, initialStat) {
440
451
  const sourceDoc = filePath;
441
452
  const relativePath = toPosixPath(path.relative(rootState.root, filePath));
453
+ // Re-check existence when initialStat is provided — the file may have been
454
+ // deleted between the scan pass and the sync pass.
442
455
  const stat = initialStat ?? (await this.safeStatWithCtime(filePath));
443
456
  if (!stat) {
444
457
  await this.deleteSourceDocument(sourceDoc);
package/docs/README.md CHANGED
@@ -6,14 +6,14 @@ deeper by goal.
6
6
 
7
7
  ## Start Here
8
8
 
9
- - [Install](./install.md) - shortest supported install and daemon lifecycle path.
9
+ - [Install](./install.md) - shortest supported install and vector service lifecycle path.
10
10
  - [Installation reference](./installation.md) - requirements, activation, verification, and troubleshooting.
11
- - [Uninstall](./uninstall.md) - safe disable, daemon shutdown, package removal, and optional data cleanup.
11
+ - [Uninstall](./uninstall.md) - safe disable, vector service shutdown, package removal, and optional data cleanup.
12
12
 
13
13
  ## Understand The System
14
14
 
15
15
  - [Problem](./problem.md) - why this plugin replaces the stock memory lifecycle.
16
- - [Architecture](./architecture.md) - plugin, sidecar, storage, retrieval, and compaction overview.
16
+ - [Architecture](./architecture.md) - plugin, vector service, storage, retrieval, and compaction overview.
17
17
  - [Dependency rationale](./dependencies.md) - why LibraVDB and slab-style storage fit this workload.
18
18
  - [Architecture decisions](./architecture-decisions/README.md) - accepted ADRs.
19
19
 
@@ -27,5 +27,5 @@ deeper by goal.
27
27
  ## Advanced And Source Docs
28
28
 
29
29
  - [Performance and tuning](./performance-and-tuning.md) - resource expectations and tuning knobs.
30
- - [Development](./development.md) - source setup, local daemon builds, generated IPC files, and validation commands.
30
+ - [Development](./development.md) - source setup, local vector service builds, generated IPC files, and validation commands.
31
31
  - [Contributing](./contributing.md) - contributor workflow and repository expectations.
@@ -1,6 +1,6 @@
1
1
  # TLS Configuration
2
2
 
3
- The plugin selects the right credentials automatically based on which address it connects to. Unix sockets and loopback addresses (localhost, 127.0.0.1, ::1) always use plaintext. All other addresses use TLS. In most deployments no TLS configuration is needed at all. The only time manual configuration is required is when the daemon serves TLS on a loopback address, when the daemon uses a self-signed or private-CA certificate, or when infrastructure such as a service mesh handles TLS outside the plugin.
3
+ The plugin selects the right credentials automatically based on which address it connects to. Unix sockets and loopback addresses (localhost, 127.0.0.1, ::1) always use plaintext. All other addresses use TLS. In most deployments no TLS configuration is needed at all. The only time manual configuration is required is when the vector service serves TLS on a loopback address, when the vector service uses a self-signed or private-CA certificate, or when infrastructure such as a service mesh handles TLS outside the plugin.
4
4
 
5
5
  ## Default behavior
6
6
 
@@ -18,21 +18,21 @@ Because these rules are automatic, most users do not set any TLS-related fields.
18
18
 
19
19
  | Field | Type | Default | When to use |
20
20
  |---|---|---|---|
21
- | `grpcEndpoint` | string | — | The daemon address. Set to a unix socket path, a loopback address, or a remote host. |
22
- | `grpcEndpointTlsCa` | string | — | Path to a CA certificate PEM file. Required only when the daemon certificate is self-signed or signed by a private CA not in the system certificate store. |
21
+ | `grpcEndpoint` | string | — | The vector service address. Set to a unix socket path, a loopback address, or a remote host. |
22
+ | `grpcEndpointTlsCa` | string | — | Path to a CA certificate PEM file. Required only when the vector service certificate is self-signed or signed by a private CA not in the system certificate store. |
23
23
  | `grpcEndpointTlsMode` | `"auto"` \| `"tls"` \| `"insecure"` | `"auto"` | Override the automatic selection. `"auto"` applies the default rules above. `"tls"` forces TLS regardless of address. `"insecure"` forces plaintext regardless of address. |
24
24
 
25
25
  `grpcEndpointTlsMode` values explained:
26
26
 
27
27
  - **`"auto"`** (default) — apply the automatic rules. Unix sockets and loopback use plaintext; all other addresses use TLS.
28
- - **`"tls"`** — always use TLS, even for loopback addresses. Use this when the daemon has TLS enabled on a loopback address.
28
+ - **`"tls"`** — always use TLS, even for loopback addresses. Use this when the vector service has TLS enabled on a loopback address.
29
29
  - **`"insecure"`** — always use plaintext, even for remote addresses. Use this only when a service mesh or TLS-terminating tunnel handles encryption externally.
30
30
 
31
31
  ## Deployment scenarios
32
32
 
33
- ### Local daemon (default)
33
+ ### Local vector service (default)
34
34
 
35
- The daemon runs on the same machine, listening on a unix socket or a loopback address.
35
+ The vector service runs on the same machine, listening on a unix socket or a loopback address.
36
36
 
37
37
  ```json
38
38
  {
@@ -50,9 +50,9 @@ or:
50
50
 
51
51
  The plugin automatically uses plaintext. No TLS fields are needed.
52
52
 
53
- ### Remote daemon with a trusted certificate
53
+ ### Remote vector service with a trusted certificate
54
54
 
55
- The daemon runs on a remote host and presents a certificate issued by a public CA such as Let's Encrypt or cert-manager.
55
+ The vector service runs on a remote host and presents a certificate issued by a public CA such as Let's Encrypt or cert-manager.
56
56
 
57
57
  ```json
58
58
  {
@@ -60,11 +60,11 @@ The daemon runs on a remote host and presents a certificate issued by a public C
60
60
  }
61
61
  ```
62
62
 
63
- TLS is automatic. The plugin uses the system certificate store to verify the daemon's certificate, so no additional configuration is needed.
63
+ TLS is automatic. The plugin uses the system certificate store to verify the vector service's certificate, so no additional configuration is needed.
64
64
 
65
- ### Remote daemon with a self-signed or private CA certificate
65
+ ### Remote vector service with a self-signed or private CA certificate
66
66
 
67
- The daemon runs on a remote host and uses a self-signed certificate or a certificate signed by a private/internal CA not in the system certificate store.
67
+ The vector service runs on a remote host and uses a self-signed certificate or a certificate signed by a private/internal CA not in the system certificate store.
68
68
 
69
69
  ```json
70
70
  {
@@ -73,11 +73,11 @@ The daemon runs on a remote host and uses a self-signed certificate or a certifi
73
73
  }
74
74
  ```
75
75
 
76
- The CA certificate must be the certificate of the CA that signed the daemon's server certificate — not the server certificate itself. The plugin uses this CA to verify the daemon's certificate during the TLS handshake. Without it, the plugin will reject the daemon's certificate as untrusted.
76
+ The CA certificate must be the certificate of the CA that signed the vector service's server certificate — not the server certificate itself. The plugin uses this CA to verify the vector service's certificate during the TLS handshake. Without it, the plugin will reject the vector service's certificate as untrusted.
77
77
 
78
78
  ### TLS on a loopback address
79
79
 
80
- The daemon has TLS enabled on a loopback address. This is uncommon. The automatic rules would select plaintext for a loopback address, so an explicit override is required.
80
+ The vector service has TLS enabled on a loopback address. This is uncommon. The automatic rules would select plaintext for a loopback address, so an explicit override is required.
81
81
 
82
82
  ```json
83
83
  {
@@ -86,11 +86,11 @@ The daemon has TLS enabled on a loopback address. This is uncommon. The automati
86
86
  }
87
87
  ```
88
88
 
89
- Set `grpcEndpointTlsMode` to `"tls"` to force the plugin to use TLS even on the loopback address. The plugin will use the system certificate store for verification. If the daemon uses a self-signed certificate, add `grpcEndpointTlsCa` as well.
89
+ Set `grpcEndpointTlsMode` to `"tls"` to force the plugin to use TLS even on the loopback address. The plugin will use the system certificate store for verification. If the vector service uses a self-signed certificate, add `grpcEndpointTlsCa` as well.
90
90
 
91
91
  ## Service mesh and tunnels
92
92
 
93
- When the daemon runs behind Istio, Envoy, or any other infrastructure that terminates TLS at the mesh or tunnel layer, the plugin should not attempt its own TLS. Set `grpcEndpointTlsMode` to `"insecure"` so the plugin uses plaintext and lets the mesh handle encryption:
93
+ When the vector service runs behind Istio, Envoy, or any other infrastructure that terminates TLS at the mesh or tunnel layer, the plugin should not attempt its own TLS. Set `grpcEndpointTlsMode` to `"insecure"` so the plugin uses plaintext and lets the mesh handle encryption:
94
94
 
95
95
  ```json
96
96
  {
@@ -105,8 +105,8 @@ This applies even for remote addresses. The mesh terminates TLS at the boundary,
105
105
 
106
106
  | Error | Likely cause | Fix |
107
107
  |---|---|---|
108
- | `UNAVAILABLE / connection closed / TLS handshake failed` when connecting to a loopback address | The daemon has TLS enabled on a loopback address but the plugin is using plaintext (the default for loopback). | Add `"grpcEndpointTlsMode": "tls"` to the plugin config. |
109
- | `x509: certificate signed by unknown authority` | The daemon uses a self-signed certificate or a certificate from a private CA not trusted by the system. | Set `grpcEndpointTlsCa` to the path of the CA certificate PEM file that signed the daemon's server certificate. |
108
+ | `UNAVAILABLE / connection closed / TLS handshake failed` when connecting to a loopback address | The vector service has TLS enabled on a loopback address but the plugin is using plaintext (the default for loopback). | Add `"grpcEndpointTlsMode": "tls"` to the plugin config. |
109
+ | `x509: certificate signed by unknown authority` | The vector service uses a self-signed certificate or a certificate from a private CA not trusted by the system. | Set `grpcEndpointTlsCa` to the path of the CA certificate PEM file that signed the vector service's server certificate. |
110
110
  | `failed to load TLS CA certificate from "...": ENOENT: no such file or directory` | The file path given in `grpcEndpointTlsCa` does not exist on the machine. | Verify the file path is correct and the CA certificate file exists. |
111
111
  | `LibraVDB: invalid grpcEndpointTlsMode "..."` | The value set in `grpcEndpointTlsMode` is not one of the accepted values. | Change the value to `"auto"`, `"tls"`, or `"insecure"`. |
112
112
  | `LIBRAVDB: grpcEndpointTlsCa is set but grpcEndpointTlsMode is "insecure"` (warning) | Both `grpcEndpointTlsCa` and `grpcEndpointTlsMode: "insecure"` are set. The CA file will not be used. | Remove `grpcEndpointTlsCa` if plaintext is intended, or change `grpcEndpointTlsMode` to `"auto"` or `"tls"` to use the CA file. |
@@ -6,7 +6,7 @@ The plugin requires local vector storage, ONNX inference, transport isolation, a
6
6
 
7
7
  ## Decision
8
8
 
9
- Implement the memory engine as a Go daemon with a narrow JSON-RPC transport boundary.
9
+ Implement the memory engine as a Go vector service with a narrow gRPC transport boundary.
10
10
 
11
11
  ## Alternatives Considered
12
12
 
@@ -10,9 +10,9 @@ LibraVDB Memory is split into two cooperating pieces:
10
10
 
11
11
  - a TypeScript OpenClaw plugin that owns the `memory` slot and registers
12
12
  context-engine capability at runtime
13
- - a Go sidecar daemon that owns storage, retrieval, and compaction
13
+ - a Go vector service that owns storage, retrieval, and compaction
14
14
 
15
- The plugin keeps the host integration light and stable. The daemon keeps the
15
+ The plugin keeps the host integration light and stable. The vector service keeps the
16
16
  data path local-first and handles the expensive memory operations outside the
17
17
  main chat process.
18
18
 
@@ -22,9 +22,9 @@ main chat process.
22
22
  flowchart LR
23
23
  Host["OpenClaw host"]
24
24
  Plugin["TypeScript plugin\nregistration + context engine"]
25
- Runtime["Plugin runtime\nlazy daemon connect + RPC"]
25
+ Runtime["Plugin runtime\nlazy vector service connect + RPC"]
26
26
  MPS["memoryPromptSection\ncapability header"]
27
- Sidecar["Go daemon"]
27
+ Sidecar["Go vector service"]
28
28
  Store["LibraVDB store"]
29
29
  Embed["Embedding engine"]
30
30
  Summarizer["Summarizer(s)"]
@@ -47,7 +47,7 @@ main retrieval path.
47
47
 
48
48
  ### `ingest`
49
49
 
50
- Session messages are written into the sidecar-backed store. User turns may also
50
+ Session messages are written into the vector service-backed store. User turns may also
51
51
  be promoted into durable user memory after gating.
52
52
 
53
53
  ### `assemble`
@@ -72,13 +72,13 @@ thresholds, compaction declines instead of forcing a rewrite.
72
72
  - retrieval happens in `assemble`
73
73
  - compaction is separate from prompt construction
74
74
  - lifecycle hints such as `before_reset` and `session_end` are advisory
75
- - the sidecar is the source of truth for stored memory state
75
+ - the vector service is the source of truth for stored memory state
76
76
 
77
77
  ## Failure Handling
78
78
 
79
79
  The plugin is designed to degrade gracefully:
80
80
 
81
- - if the daemon is unavailable, prompt assembly continues without recall
81
+ - if the vector service is unavailable, prompt assembly continues without recall
82
82
  - if compaction fails, the active session is not blocked
83
83
  - if summarization is unavailable, the system falls back to the safer path
84
84
 
@@ -93,5 +93,5 @@ This architecture keeps the host integration simple while still supporting:
93
93
  - explicit compaction
94
94
  - local-first storage and retrieval
95
95
 
96
- In short, the plugin owns the lifecycle contract, and the sidecar owns the
96
+ In short, the plugin owns the lifecycle contract, and the vector service owns the
97
97
  heavy lifting.
@@ -34,45 +34,45 @@ Use `grpcEndpointTlsMode` to override the default behavior:
34
34
 
35
35
  | Value | When to use |
36
36
  |---|---|
37
- | `"auto"` (default) | Standard operation — plugin heuristic matches daemon TLS setting automatically. |
38
- | `"tls"` | Daemon has TLS enabled on loopback or unix socket (rare; use when the daemon's `LIBRAVDB_GRPC_TLS_*` env vars are set on a local address). |
37
+ | `"auto"` (default) | Standard operation — plugin heuristic matches vector service TLS setting automatically. |
38
+ | `"tls"` | Daemon has TLS enabled on loopback or unix socket (rare; use when the vector service's `LIBRAVDB_GRPC_TLS_*` env vars are set on a local address). |
39
39
  | `"insecure"` | Service mesh or TLS-terminating tunnel handles encryption externally; both sides are plaintext. |
40
40
 
41
- **Default (local daemon):** No TLS configuration needed.
41
+ **Default (local vector service):** No TLS configuration needed.
42
42
  Unix socket and loopback endpoints are always plaintext regardless
43
43
  of any TLS settings.
44
44
 
45
- **K8 / remote daemon with CA-issued cert:**
45
+ **K8 / remote vector service with CA-issued cert:**
46
46
  No extra configuration needed. The plugin uses the system CA pool,
47
47
  which trusts certs issued by Let's Encrypt, cert-manager, and
48
48
  other public CAs automatically.
49
49
 
50
- **Remote daemon with self-signed or private CA cert:**
50
+ **Remote vector service with self-signed or private CA cert:**
51
51
  Set `grpcEndpointTlsCa` to the path of the CA certificate PEM file:
52
52
  ```json
53
53
  {
54
- "grpcEndpoint": "tcp:yourdaemon.internal:50051",
54
+ "grpcEndpoint": "tcp:yourvector service.internal:50051",
55
55
  "grpcEndpointTlsCa": "/etc/certs/ca.pem"
56
56
  }
57
57
  ```
58
- The daemon must be configured with matching TLS cert and key via
58
+ The vector service must be configured with matching TLS cert and key via
59
59
  `LIBRAVDB_GRPC_TLS_CERT` and `LIBRAVDB_GRPC_TLS_KEY`.
60
60
 
61
- **Remote daemon with mTLS (mutual TLS):**
62
- When the daemon requires client certificate authentication, set both
61
+ **Remote vector service with mTLS (mutual TLS):**
62
+ When the vector service requires client certificate authentication, set both
63
63
  `grpcEndpointTlsClientCert` and `grpcEndpointTlsClientKey` (they must both
64
64
  be present or both be omitted):
65
65
  ```json
66
66
  {
67
- "grpcEndpoint": "tcp:yourdaemon.internal:50051",
67
+ "grpcEndpoint": "tcp:yourvector service.internal:50051",
68
68
  "grpcEndpointTlsCa": "/etc/certs/ca.pem",
69
69
  "grpcEndpointTlsClientCert": "/etc/certs/client-cert.pem",
70
70
  "grpcEndpointTlsClientKey": "/etc/certs/client-key.pem"
71
71
  }
72
72
  ```
73
73
 
74
- **Local daemon with TLS enabled:**
75
- If the daemon has `LIBRAVDB_GRPC_TLS_CERT`/`LIBRAVDB_GRPC_TLS_KEY` set on a loopback
74
+ **Local vector service with TLS enabled:**
75
+ If the vector service has `LIBRAVDB_GRPC_TLS_CERT`/`LIBRAVDB_GRPC_TLS_KEY` set on a loopback
76
76
  address, explicitly set `grpcEndpointTlsMode: "tls"` to match:
77
77
  ```json
78
78
  {
@@ -89,7 +89,7 @@ address, explicitly set `grpcEndpointTlsMode: "tls"` to match:
89
89
  | `fallbackProfile` | string | `bge-small-en-v1.5` | Fallback when primary model fails dimension checks |
90
90
  | `embeddingBackend` | string | — | `bundled`, `onnx-local`, `custom-local`, or `remote` |
91
91
  | `onnxDevice` | string | `auto` | ONNX execution provider: `auto`, `cpu`, `coreml` (macOS), `cuda` (Linux/Windows), `directml` (Windows), `openvino` (Linux) |
92
- | `embeddingRuntimePath` | string | — | Path to ONNX runtime library visible to the daemon (maps to `LIBRAVDB_ONNX_RUNTIME`; required with `embeddingBackend: "onnx-local"`) |
92
+ | `embeddingRuntimePath` | string | — | Path to ONNX runtime library visible to the vector service (maps to `LIBRAVDB_ONNX_RUNTIME`; required with `embeddingBackend: "onnx-local"`) |
93
93
  | `embeddingModelPath` | string | — | Path to the model directory containing `embedding.json`, `model.onnx`, and `tokenizer.json` (maps to `LIBRAVDB_EMBEDDING_MODEL`; required with `embeddingBackend: "onnx-local"`) |
94
94
  | `embeddingTokenizerPath` | string | — | Path to custom tokenizer file |
95
95
  | `embeddingDimensions` | number | — | Embedding dimension override |
@@ -1,6 +1,6 @@
1
1
  # Contributing
2
2
 
3
- Use [Development](./development.md) for source setup, local daemon preparation,
3
+ Use [Development](./development.md) for source setup, local vector service preparation,
4
4
  generated IPC files, and validation commands. This document covers contribution
5
5
  expectations.
6
6
 
@@ -13,11 +13,11 @@ pnpm check
13
13
  npm run test:integration
14
14
  ```
15
15
 
16
- Integration tests require a running daemon or a prepared local daemon binary.
16
+ Integration tests require a running vector service or a prepared local vector service binary.
17
17
  Use:
18
18
 
19
19
  ```bash
20
- bash scripts/build-daemon.sh
20
+ bash scripts/build-vector service.sh
21
21
  ```
22
22
 
23
23
  ## Behavioral Changes
@@ -28,8 +28,8 @@ regression.
28
28
 
29
29
  ## PR Expectations
30
30
 
31
- - Keep plugin lifecycle and daemon lifecycle separate.
31
+ - Keep plugin lifecycle and vector service lifecycle separate.
32
32
  - Include focused docs updates for user-visible behavior or config changes.
33
33
  - Keep internal design changes reflected in the appropriate design notes.
34
- - Do not add install-time daemon bootstrap to the npm/OpenClaw package without
34
+ - Do not add install-time vector service bootstrap to the npm/OpenClaw package without
35
35
  documenting the security and distribution trade-off.
@@ -33,6 +33,6 @@ Slab-style raw-vector storage was selected because:
33
33
  - collections grow in bursty append patterns
34
34
  - compaction and search create pressure on allocation churn
35
35
 
36
- The measured conclusion from the internal profiling pass was that slab-backed raw-vector storage was performance-competitive with the plain in-memory backend while making allocation behavior more predictable. The main trade-off is reserved-but-unused capacity, which is acceptable for this local sidecar workload.
36
+ The measured conclusion from the internal profiling pass was that slab-backed raw-vector storage was performance-competitive with the plain in-memory backend while making allocation behavior more predictable. The main trade-off is reserved-but-unused capacity, which is acceptable for this local vector service workload.
37
37
 
38
38
  The dependency is therefore justified by workload shape, not by novelty.
@@ -8,9 +8,9 @@ installation, use [Install](./install.md).
8
8
  - Node.js `>= 22`
9
9
  - `pnpm`
10
10
  - OpenClaw CLI for end-to-end plugin testing
11
- - a published or locally built `libravdbd` daemon for integration tests
11
+ - a published or locally built `libravdbd` vector service for integration tests
12
12
 
13
- Go is only required when building the daemon from a local daemon checkout or
13
+ Go is only required when building the vector service from a local vector service checkout or
14
14
  regenerating Go gRPC stubs.
15
15
 
16
16
  ## Source Setup
@@ -29,19 +29,19 @@ pnpm run test:ts
29
29
 
30
30
  ## Local Daemon Build
31
31
 
32
- Prepare `.daemon-bin/libravdbd` for local plugin testing:
32
+ Prepare `.vector service-bin/libravdbd` for local plugin testing:
33
33
 
34
34
  ```bash
35
- bash scripts/build-daemon.sh
35
+ bash scripts/build-vector service.sh
36
36
  ```
37
37
 
38
38
  Supported inputs:
39
39
 
40
- - installed daemon on `PATH`, such as `brew install libravdbd`
40
+ - installed vector service on `PATH`, such as `brew install libravdbd`
41
41
  - `LIBRAVDBD_BINARY_PATH=/path/to/libravdbd`
42
- - `LIBRAVDBD_SOURCE_DIR=/path/to/libravdbd` to build from a local daemon repo
42
+ - `LIBRAVDBD_SOURCE_DIR=/path/to/libravdbd` to build from a local vector service repo
43
43
 
44
- For daemon-internal Go development and release work, use the separate
44
+ For vector service-internal Go development and release work, use the separate
45
45
  `libravdbd` repository.
46
46
 
47
47
  ## Validation Commands
@@ -96,7 +96,7 @@ The npm package contains:
96
96
  - `dist/`
97
97
 
98
98
  The package is connect-only. It does not compile Go code, download models, or
99
- manage the daemon process during plugin installation.
99
+ manage the vector service process during plugin installation.
100
100
 
101
101
  ## Release Automation
102
102
 
@@ -113,5 +113,5 @@ label. The workflow auto-bumps, tags, and publishes.
113
113
 
114
114
  ## Auto-Install Script
115
115
 
116
- `scripts/auto-install.sh` automates daemon + plugin installation. Run it when
116
+ `scripts/auto-install.sh` automates vector service + plugin installation. Run it when
117
117
  setting up a machine that needs the full stack quickly.
@@ -9,7 +9,7 @@ Default selection baseline:
9
9
 
10
10
  Why:
11
11
 
12
- - Nomic is the default because its Matryoshka-trained embeddings deliver significantly higher retrieval accuracy than MiniLM, with principled dimensionality tiering (`64d → 256d → 768d`) that lets the daemon trade memory for precision without re-embedding.
12
+ - Nomic is the default because its Matryoshka-trained embeddings deliver significantly higher retrieval accuracy than MiniLM, with principled dimensionality tiering (`64d → 256d → 768d`) that lets the vector service trade memory for precision without re-embedding.
13
13
  - bge-small-en-v1.5 is the fallback for resource-constrained systems and is automatically selected when the primary model's dimensions do not match the active collection.
14
14
  - Intel Macs without reliable Metal/MPS support should set `onnxDevice: "cpu"` to force CPU ONNX execution and bypass CoreML.
15
15
 
@@ -32,33 +32,33 @@ How it works:
32
32
  - `embeddingProfile` supplies metadata defaults like family, dimensions, and normalize behavior.
33
33
  - `onnx-local` still requires local model assets through `embeddingModelPath`, typically a directory containing `embedding.json`.
34
34
  - The manifest may override or refine the profile, but explicit dimension mismatches fail closed.
35
- - The sidecar store persists an embedding fingerprint, so reopening an existing store with a different effective model profile will fail instead of silently mixing vector spaces.
36
- - `onnxDevice` is passed through as `LIBRAVDB_ONNX_DEVICE` for daemon versions that support execution-provider selection (`auto`, `cpu`, `cuda`, `coreml`, `directml`, `openvino`).
35
+ - The vector service store persists an embedding fingerprint, so reopening an existing store with a different effective model profile will fail instead of silently mixing vector spaces.
36
+ - `onnxDevice` is passed through as `LIBRAVDB_ONNX_DEVICE` for vector service versions that support execution-provider selection (`auto`, `cpu`, `cuda`, `coreml`, `directml`, `openvino`).
37
37
 
38
38
  ## Store Compatibility and Upgrades
39
39
 
40
40
  The persisted embedding fingerprint is part of the database compatibility check.
41
- That is intentional: if a daemon opens a store with a different effective model
41
+ That is intentional: if a vector service opens a store with a different effective model
42
42
  profile, the safest outcome is to stop before mixing vector spaces.
43
43
 
44
44
  When updating `libravdbd`, keep the same effective embedding profile unless you
45
45
  intend to rebuild the store. The effective profile includes the profile family,
46
46
  dimensions, normalization setting, and any metadata supplied by the model
47
- manifest or daemon defaults.
47
+ manifest or vector service defaults.
48
48
 
49
49
  Legacy local setups can be more fragile than the current packaged profiles. For
50
- example, older `all-minilm-l6-v2` stores may fail to reopen after a daemon update
51
- if the daemon now computes different metadata for that local profile. This does
50
+ example, older `all-minilm-l6-v2` stores may fail to reopen after a vector service update
51
+ if the vector service now computes different metadata for that local profile. This does
52
52
  not imply that current packaged `nomic-embed-text-v1.5` or
53
53
  `bge-small-en-v1.5` stores are incompatible; it means the old local profile must
54
54
  be treated as a separate vector space unless a migration path is provided.
55
55
 
56
- If a daemon update reports that the database format or embedding profile is
56
+ If a vector service update reports that the database format or embedding profile is
57
57
  incompatible:
58
58
 
59
59
  1. back up both the `.libravdb` file and its `.embedding.json` metadata file;
60
- 2. either downgrade to the previous daemon that created the store, or move the
61
- old store aside and let the new daemon initialize a fresh database;
60
+ 2. either downgrade to the previous vector service that created the store, or move the
61
+ old store aside and let the new vector service initialize a fresh database;
62
62
  3. rebuild/reingest memories with the new effective embedding profile.
63
63
 
64
64
  Do not delete the old store until the replacement has been verified.
package/docs/features.md CHANGED
@@ -7,7 +7,7 @@ commands.
7
7
  ## Markdown Ingestion
8
8
 
9
9
  LibraVDB Memory can watch markdown roots and sync changed notes into vector
10
- memory without changing the sidecar RPC contract.
10
+ memory without changing the vector service gRPC interface.
11
11
 
12
12
  The built-in source adapters are:
13
13
 
@@ -78,7 +78,7 @@ Each promoted bullet should include trailing metadata with the gating fields:
78
78
  - Preserve the recent tail buffer {score=0.82 recall=3 unique=2}
79
79
  ```
80
80
 
81
- Only bullets that satisfy the sidecar gates are inserted. The dream collection
81
+ Only bullets that satisfy the vector service gates are inserted. The dream collection
82
82
  is isolated from normal `user:` and `global` retrieval by default, and dream
83
83
  phrasing in chat or search queries routes there automatically.
84
84
 
@@ -109,7 +109,7 @@ openclaw memory dream-promote --user-id <userId> --dream-file ~/DREAMS.md
109
109
  ```
110
110
 
111
111
  Dream diary files must live under the operator's home directory or the configured
112
- `OPENCLAW_STATE_DIR`. The manual command and watcher both use the same sidecar
112
+ `OPENCLAW_STATE_DIR`. The manual command and watcher both use the same vector service
113
113
  promotion RPC, so admission gates and provenance metadata are identical.
114
114
 
115
115
  ## Memory CLI
@@ -119,14 +119,14 @@ CLI API.
119
119
 
120
120
  | Command | Purpose |
121
121
  |---|---|
122
- | `openclaw memory status` | Show sidecar health, counts, active thresholds, and model readiness. Use `--deep` to probe authored collection search health. |
123
- | `openclaw memory index --force` | Refresh delegated sidecar index state for OpenClaw memory CLI compatibility. |
122
+ | `openclaw memory status` | Show vector service health, counts, active thresholds, and model readiness. Use `--deep` to probe authored collection search health. |
123
+ | `openclaw memory index --force` | Refresh delegated vector service index state for OpenClaw memory CLI compatibility. |
124
124
  | `openclaw memory search "query"` | Search LibraVDB memory through the active memory runtime bridge. |
125
125
  | `openclaw memory export --user-id <userId>` | Stream stored memories as newline-delimited JSON for one durable namespace. |
126
126
  | `openclaw memory export --session-key <sessionKey>` | Export a namespace derived from a session key. |
127
127
  | `openclaw memory flush --user-id <userId>` | Delete one durable user namespace after confirmation. |
128
128
  | `openclaw memory flush --session-key <sessionKey>` | Delete a namespace derived from a session key after confirmation. |
129
- | `openclaw memory journal --limit 50` | Inspect bounded lifecycle hints recorded by the sidecar. |
129
+ | `openclaw memory journal --limit 50` | Inspect bounded lifecycle hints recorded by the vector service. |
130
130
  | `openclaw memory dream-promote --user-id <userId> --dream-file <path>` | Promote vetted dream diary bullets from a file under the operator home directory or `OPENCLAW_STATE_DIR`. |
131
131
 
132
132
  Use `--yes` with `flush` only when you intentionally want to skip the
package/docs/install.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  LibraVDB Memory is a connect-only OpenClaw plugin. Install the plugin as a
4
4
  normal package, install `libravdbd` separately, and point the plugin at the
5
- daemon endpoint when you need a non-default location.
5
+ vector service endpoint when you need a non-default location.
6
6
 
7
7
  OpenClaw compatibility note:
8
8
 
9
- - the plugin is currently verified against OpenClaw `2026.4.23`
9
+ - the plugin is currently verified against OpenClaw `2026.5.22`
10
10
 
11
11
  For deeper operational detail, use the full
12
12
  [installation reference](./installation.md).
@@ -26,7 +26,7 @@ This gives you:
26
26
 
27
27
  - a managed `libravdbd` service
28
28
  - a scanner-clean plugin install
29
- - a clean separation between plugin lifecycle and daemon lifecycle
29
+ - a clean separation between plugin lifecycle and vector service lifecycle
30
30
 
31
31
  ## Plugin Install
32
32
 
@@ -53,7 +53,7 @@ Activate the plugin in `~/.openclaw/openclaw.json`:
53
53
  }
54
54
  ```
55
55
 
56
- If you run the daemon on a non-default endpoint, add a plugin config:
56
+ If you run the vector service on a non-default endpoint, add a plugin config:
57
57
 
58
58
  ```json
59
59
  {
@@ -76,15 +76,15 @@ If you run the daemon on a non-default endpoint, add a plugin config:
76
76
 
77
77
  When `sidecarPath` is set to `"auto"`, the plugin resolves endpoints in this order on macOS/Linux:
78
78
 
79
- 1. `LIBRAVDB_GRPC_ENDPOINT` if it is set to a valid daemon endpoint
79
+ 1. `LIBRAVDB_GRPC_ENDPOINT` if it is set to a valid vector service endpoint
80
80
  2. `$HOME/.libravdbd/run/libravdb.sock` if it exists
81
81
  3. `/opt/homebrew/var/libravdbd/run/libravdb.sock` if it exists
82
82
  4. `/usr/local/var/libravdbd/run/libravdb.sock` if it exists
83
83
  5. fallback to `$HOME/.libravdbd/run/libravdb.sock`
84
84
 
85
- ## Sidecar Daemon Install
85
+ ## Vector Service Install
86
86
 
87
- The daemon owns the local database, embeddings, and gRPC endpoint.
87
+ The vector service owns the local database, embeddings, and gRPC endpoint.
88
88
 
89
89
  Default endpoints:
90
90
 
@@ -100,7 +100,7 @@ Default data path:
100
100
 
101
101
  ### Homebrew
102
102
 
103
- Homebrew is the preferred daemon lifecycle on macOS:
103
+ Homebrew is the preferred vector service lifecycle on macOS:
104
104
 
105
105
  ```bash
106
106
  brew tap xDarkicex/homebrew-openclaw-libravdb-memory
@@ -118,7 +118,7 @@ brew info libravdbd
118
118
 
119
119
  ### Manual Service Management
120
120
 
121
- If you are not using Homebrew, manage the daemon explicitly.
121
+ If you are not using Homebrew, manage the vector service explicitly.
122
122
 
123
123
  Linux user service from the repo template:
124
124
 
@@ -146,7 +146,7 @@ Windows uses a loopback TCP endpoint by default:
146
146
  - `tcp:127.0.0.1:37421`
147
147
 
148
148
  This guide does not yet include a full Windows service-install walkthrough.
149
- For now, use the published Windows daemon asset from the GitHub releases page
149
+ For now, use the published Windows vector service asset from the GitHub releases page
150
150
  and run it under your preferred process supervisor or a manual terminal session.
151
151
 
152
152
  Foreground manual run:
@@ -161,11 +161,11 @@ you wrap it in `brew services`, `systemd`, or `launchd`.
161
161
  ### Containers and Docker
162
162
 
163
163
  The npm plugin does not start `libravdbd`. In a container, either run a separate
164
- daemon sidecar or use a small entrypoint wrapper that starts the daemon before
164
+ vector service or use a small entrypoint wrapper that starts the vector service before
165
165
  the OpenClaw gateway.
166
166
 
167
- Keep the daemon assets and database in a mounted volume and point both the
168
- daemon and plugin at paths inside the container:
167
+ Keep the vector service assets and database in a mounted volume and point both the
168
+ vector service and plugin at paths inside the container:
169
169
 
170
170
  ```sh
171
171
  export LIBRAVDB_GRPC_ENDPOINT=unix:/home/node/.openclaw/libravdbd/run/libravdb.sock
@@ -223,19 +223,19 @@ store directly. The context engine can still use LibraVDB for recall while
223
223
  - Update it with your normal OpenClaw plugin update flow.
224
224
  - Disable it by removing the slot assignment from `~/.openclaw/openclaw.json`.
225
225
 
226
- The plugin does not manage the daemon process. Treat plugin activation and
227
- daemon supervision as separate lifecycle decisions.
226
+ The plugin does not manage the vector service process. Treat plugin activation and
227
+ vector service supervision as separate lifecycle decisions.
228
228
 
229
229
  ### Daemon Lifecycle
230
230
 
231
231
  - Start it with `brew services`, `systemd --user`, `launchctl bootstrap`, or a manual `libravdbd serve`.
232
- - Restart it when you change daemon-level environment variables or replace the binary.
232
+ - Restart it when you change vector service-level environment variables or replace the binary.
233
233
  - Stop it before uninstalling or deleting on-disk data.
234
234
  - Point the plugin at the correct endpoint with `sidecarPath` if you do not use the default location.
235
235
 
236
236
  ## Verification
237
237
 
238
- After the plugin and daemon are both in place, run:
238
+ After the plugin and vector service are both in place, run:
239
239
 
240
240
  ```bash
241
241
  openclaw memory status
@@ -243,11 +243,11 @@ openclaw memory status
243
243
 
244
244
  Healthy output should show that:
245
245
 
246
- - the daemon answered the local health check
246
+ - the vector service answered the local health check
247
247
  - the memory and context-engine slots are active
248
248
  - the plugin can read stored counts and runtime settings
249
249
 
250
- If OpenClaw cannot reach the daemon, verify the endpoint first:
250
+ If OpenClaw cannot reach the vector service, verify the endpoint first:
251
251
 
252
252
  - macOS/Linux default: `unix:$HOME/.libravdbd/run/libravdb.sock`
253
253
  - Windows default: `tcp:127.0.0.1:37421`
@@ -10,23 +10,23 @@ This is the full installation reference for
10
10
  |---|---:|---|
11
11
  | Node.js | `22.0.0` | Enforced by `package.json` `engines.node`. |
12
12
  | OpenClaw | `2026.3.22` | Earliest supported host version for this plugin API shape. |
13
- | `libravdbd` | published daemon asset | Required for normal runtime. |
14
- | Go | `1.22` | Required only for local daemon development. |
13
+ | `libravdbd` | published vector service asset | Required for normal runtime. |
14
+ | Go | `1.22` | Required only for local vector service development. |
15
15
  | OS | macOS, Linux, Windows | Unix uses a local socket; Windows uses TCP loopback. |
16
- | Architecture | `arm64`, `x64` | Must match the daemon release asset. |
16
+ | Architecture | `arm64`, `x64` | Must match the vector service release asset. |
17
17
 
18
18
  Resource sizing and benchmark data live in
19
19
  [Performance and tuning](./performance-and-tuning.md).
20
20
 
21
21
  OpenClaw compatibility note:
22
22
 
23
- - the plugin is currently verified against OpenClaw `2026.4.23`
23
+ - the plugin is currently verified against OpenClaw `2026.5.22`
24
24
 
25
25
  ## Install Flow
26
26
 
27
27
  The published plugin package is connect-only. It installs TypeScript plugin code
28
28
  and docs; it does not compile Go code, download model assets, or supervise the
29
- daemon.
29
+ vector service.
30
30
 
31
31
  Recommended macOS path:
32
32
 
@@ -55,7 +55,7 @@ tcp:127.0.0.1:37421
55
55
  ```
56
56
 
57
57
  This repository does not yet include a full Windows service-install walkthrough.
58
- Use the published Windows daemon asset under your preferred process supervisor
58
+ Use the published Windows vector service asset under your preferred process supervisor
59
59
  or run `libravdbd serve` in a terminal for validation.
60
60
 
61
61
  ## Activation
@@ -77,7 +77,7 @@ The memory slot owns `openclaw memory ...` and memory-runtime calls. The
77
77
  context-engine slot enables automatic bootstrap, ingest, after-turn, and recall
78
78
  hooks during sessions.
79
79
 
80
- If the daemon uses a non-default endpoint, add `sidecarPath`:
80
+ If the vector service uses a non-default endpoint, add `sidecarPath`:
81
81
 
82
82
  ```json
83
83
  {
@@ -122,7 +122,7 @@ $HOME/.libravdbd/data_nomic-embed-text-v1_5.libravdb
122
122
 
123
123
  ## Container Layout
124
124
 
125
- In Docker, keep the daemon, model assets, socket, logs, and database in the
125
+ In Docker, keep the vector service, model assets, socket, logs, and database in the
126
126
  same mounted OpenClaw state volume. A typical container-side layout is:
127
127
 
128
128
  ```text
@@ -133,7 +133,7 @@ same mounted OpenClaw state volume. A typical container-side layout is:
133
133
  /home/node/.openclaw/libravdbd/models/nomic-embed-text-v1.5/embedding.json
134
134
  ```
135
135
 
136
- Start the daemon with explicit local ONNX paths before starting the gateway:
136
+ Start the vector service with explicit local ONNX paths before starting the gateway:
137
137
 
138
138
  ```sh
139
139
  LIBRAVDB_GRPC_ENDPOINT=unix:/home/node/.openclaw/libravdbd/run/libravdb.sock \
@@ -171,7 +171,7 @@ Then configure the plugin with the same socket and asset paths:
171
171
 
172
172
  Do not let a container initialize a database with deterministic fallback
173
173
  embeddings and later switch the same file to ONNX embeddings. Move the fallback
174
- database aside first, then let the daemon create a fresh ONNX-backed store.
174
+ database aside first, then let the vector service create a fresh ONNX-backed store.
175
175
 
176
176
  ## Verification
177
177
 
@@ -185,7 +185,7 @@ Expected output shape:
185
185
 
186
186
  ```text
187
187
  ┌────────────────────┬──────────────────────────────┐
188
- Sidecar │ running │
188
+ Daemon │ running │
189
189
  │ Turns stored │ 0 │
190
190
  │ Memories stored │ 0 │
191
191
  │ Lifecycle hints │ 0 │
@@ -198,7 +198,7 @@ Expected output shape:
198
198
 
199
199
  Interpretation:
200
200
 
201
- - `Sidecar=running` means the daemon answered the health check.
201
+ - `Daemon=running` means the vector service answered the health check.
202
202
  - `Gate threshold=0.35` confirms the default durable-memory gate.
203
203
  - `Abstractive model=not provisioned` is acceptable; compaction falls back to
204
204
  the extractive path.
@@ -216,7 +216,7 @@ Common causes:
216
216
  - `embeddingBackend` is set to `onnx-local` but `embeddingRuntimePath` or
217
217
  `embeddingModelPath` is missing from plugin config
218
218
 
219
- Check the daemon first:
219
+ Check the vector service first:
220
220
 
221
221
  ```bash
222
222
  openclaw memory status
@@ -231,8 +231,8 @@ libravdbd serve
231
231
 
232
232
  ### Deterministic fallback embeddings
233
233
 
234
- If daemon logs mention deterministic fallback mode, the daemon did not find the
235
- configured ONNX runtime or model manifest. Stop the daemon, set
234
+ If vector service logs mention deterministic fallback mode, the vector service did not find the
235
+ configured ONNX runtime or model manifest. Stop the vector service, set
236
236
  `LIBRAVDB_ONNX_RUNTIME` and `LIBRAVDB_EMBEDDING_MODEL`, confirm the model
237
237
  directory contains `embedding.json`, then restart. If a database was created
238
238
  while fallback mode was active, move that `.libravdb` file and its adjacent
@@ -240,9 +240,9 @@ while fallback mode was active, move that `.libravdb` file and its adjacent
240
240
 
241
241
  ### Incompatible database or embedding profile
242
242
 
243
- If the daemon exits with `database format is incompatible` or `database
243
+ If the vector service exits with `database format is incompatible` or `database
244
244
  embedding profile is incompatible`, it is refusing to open a store whose saved
245
- format or embedding fingerprint differs from the current daemon settings. This
245
+ format or embedding fingerprint differs from the current vector service settings. This
246
246
  fail-closed behavior protects the store from mixing incompatible vector spaces.
247
247
 
248
248
  Before changing anything, back up both files for the affected store:
@@ -252,12 +252,12 @@ Before changing anything, back up both files for the affected store:
252
252
 
253
253
  Then choose one recovery path:
254
254
 
255
- - downgrade to the daemon version that created the store; or
256
- - move the old store aside, start the new daemon so it creates a fresh store,
255
+ - downgrade to the vector service version that created the store; or
256
+ - move the old store aside, start the new vector service so it creates a fresh store,
257
257
  and rebuild/reingest memories with the current embedding profile.
258
258
 
259
259
  This can affect legacy local profiles such as older `all-minilm-l6-v2` setups
260
- when daemon defaults or model metadata change across releases. It is not
260
+ when vector service defaults or model metadata change across releases. It is not
261
261
  expected for stores that stay on the current packaged profiles and assets. See
262
262
  [Embedding Profiles](./embedding-profiles.md#store-compatibility-and-upgrades)
263
263
  for more detail.
@@ -276,6 +276,6 @@ automatic session ingest and recall may not run.
276
276
 
277
277
  ### Lifecycle journal looks empty
278
278
 
279
- The sidecar journal only records advisory lifecycle hints such as `before_reset`
279
+ The vector service journal only records advisory lifecycle hints such as `before_reset`
280
280
  and `session_end`. It is bounded by `lifecycleJournalMaxEntries`, default `500`,
281
281
  and is not part of normal memory recall.
@@ -6,7 +6,7 @@ The plugin supports mutual TLS (mTLS) for gRPC connections to the Vector Service
6
6
 
7
7
  The Vector Service operator enables mTLS by configuring a client CA on the service side. When this is enabled, the Vector Service requires every connecting client to present a certificate signed by that CA. If the plugin is configured to use TLS but does not present a client certificate, the TLS handshake will fail and the connection will be rejected.
8
8
 
9
- The plugin cannot detect whether the daemon requires mTLS — it must be configured explicitly. If connections fail with a "client did not provide a certificate" error, the plugin likely needs a client certificate configured.
9
+ The plugin cannot detect whether the vector service requires mTLS — it must be configured explicitly. If connections fail with a "client did not provide a certificate" error, the plugin likely needs a client certificate configured.
10
10
 
11
11
  ## Configuration fields
12
12
 
@@ -65,7 +65,7 @@ openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key \
65
65
  -CAcreateserial -out client.crt -days 365
66
66
  ```
67
67
 
68
- Replace `ca.crt` and `ca.key` with the CA certificate and key that the daemon operator provided.
68
+ Replace `ca.crt` and `ca.key` with the CA certificate and key that the vector service operator provided.
69
69
 
70
70
  ## Error reference
71
71
 
package/docs/models.md CHANGED
@@ -8,7 +8,7 @@ available offline after assets are installed.
8
8
 
9
9
  `assemble` runs before each response build. An embedding request that crosses a
10
10
  process and HTTP server boundary adds avoidable tail latency. Local ONNX
11
- inference inside the sidecar keeps retrieval close to the database and avoids a
11
+ inference inside the vector service keeps retrieval close to the database and avoids a
12
12
  runtime dependency on a separate model server.
13
13
 
14
14
  ONNX assets can be provisioned once and reused without network access. Given
@@ -23,7 +23,7 @@ latency and offline operation are part of the product contract.
23
23
  The default profile is `nomic-embed-text-v1.5`. Nomic was chosen as the default
24
24
  because its Matryoshka-trained embeddings deliver significantly higher retrieval
25
25
  accuracy than MiniLM, with principled dimensionality tiering (`64d → 256d →
26
- 768d`) that lets the daemon trade memory for precision without re-embedding.
26
+ 768d`) that lets the vector service trade memory for precision without re-embedding.
27
27
 
28
28
  `bge-small-en-v1.5` is the fallback profile. It has a smaller disk and memory
29
29
  footprint than Nomic and is automatically selected when the primary model's
@@ -35,7 +35,7 @@ For exact profile metadata, read [Embedding profiles](./embedding-profiles.md).
35
35
  ## Summarization
36
36
 
37
37
  Compaction can run without an abstractive summarizer. When the optional T5-small
38
- assets are not provisioned, the daemon degrades to the extractive path.
38
+ assets are not provisioned, the vector service degrades to the extractive path.
39
39
 
40
40
  T5-small is the optional local abstractive summarizer because it is small enough
41
41
  for CPU-local operation while still useful for session-cluster summaries. Larger
@@ -12,7 +12,7 @@ The numbers below are local measurements from this repository as of
12
12
 
13
13
  Measured local asset sizes:
14
14
 
15
- - daemon binary: `7.7M`
15
+ - vector service binary: `7.7M`
16
16
  - bundled Nomic model directory: `523M`
17
17
  - bundled MiniLM fallback model directory: `87M`
18
18
  - optional T5 summarizer directory: `371M`
@@ -34,7 +34,7 @@ structure, and index state are stored as well.
34
34
 
35
35
  ### Memory
36
36
 
37
- Measured on Apple M2 by starting the daemon and reading RSS after startup:
37
+ Measured on Apple M2 by starting the vector service and reading RSS after startup:
38
38
 
39
39
  - Nomic embedding path loaded without optional T5 summarizer: about `266 MB`
40
40
  - Nomic plus local ONNX T5 summarizer loaded: about `503 MB`
@@ -89,7 +89,7 @@ are advanced controls, not required install settings.
89
89
  | `compactionThresholdFraction` | Dynamic trigger ratio when `compactThreshold` is unset, default `0.8`. |
90
90
  | `compactSessionTokenBudget` | Auto-compaction budget since the last compaction, default `2000`; set `0` to disable. |
91
91
  | `rpcTimeoutMs` | Sidecar RPC timeout, default `30000`. |
92
- | `maxRetries` | Retry budget for sidecar RPC calls. |
92
+ | `maxRetries` | Retry budget for vector service RPC calls. |
93
93
  | `logLevel` | Plugin log level. |
94
94
 
95
95
  Model-related fields live in [Embedding profiles](./embedding-profiles.md) and
@@ -111,7 +111,7 @@ Run it with:
111
111
  LONGMEMEVAL_DATA_FILE=/path/to/longmemeval_oracle.json pnpm run benchmark:longmemeval
112
112
  ```
113
113
 
114
- If you already have a daemon running and do not want the benchmark to spawn
114
+ If you already have a vector service running and do not want the benchmark to spawn
115
115
  another one, set:
116
116
 
117
117
  ```bash
@@ -127,7 +127,7 @@ Optional controls:
127
127
  - `LONGMEMEVAL_OUT_FILE` writes JSONL records for analysis
128
128
 
129
129
  The harness writes JSONL incrementally, so partial results survive if a
130
- transient daemon failure interrupts a long run. If the local test daemon drops
130
+ transient vector service failure interrupts a long run. If the local test vector service drops
131
131
  mid-run, the benchmark restarts it and retries the current instance once before
132
132
  recording an error result.
133
133
 
package/docs/problem.md CHANGED
@@ -9,7 +9,7 @@ The default `memory-lancedb` style plugin is still a good fit when you want:
9
9
  - a simple top-k semantic lookup over durable notes
10
10
  - a low-complexity setup
11
11
  - a heuristic capture model where the agent decides what to save
12
- - no additional sidecar process
12
+ - no additional vector service process
13
13
 
14
14
  For short sessions and light persistent memory, that is often the right answer.
15
15
 
package/docs/security.md CHANGED
@@ -18,7 +18,7 @@ The system is designed so a failure in one layer does not automatically collapse
18
18
 
19
19
  The published plugin package intentionally avoids install-time process execution.
20
20
  That is a deliberate trust and distribution choice: the OpenClaw plugin is a
21
- thin client, and the local `libravdbd` daemon is a separate operator-managed
21
+ thin client, and the local `libravdbd` vector service is a separate operator-managed
22
22
  component.
23
23
 
24
24
  Current implementation facts:
@@ -28,9 +28,9 @@ Current implementation facts:
28
28
  - the published plugin source contains no direct `child_process` usage
29
29
  - the plugin connects only to a configured local endpoint such as
30
30
  `unix:/Users/<you>/.libravdbd/run/libravdb.sock` or `tcp:127.0.0.1:37421`
31
- - daemon installation and lifecycle are explicit user or operator actions
31
+ - vector service installation and lifecycle are explicit user or operator actions
32
32
 
33
- The daemon distribution surface should be evaluated separately from the plugin
33
+ The vector service distribution surface should be evaluated separately from the plugin
34
34
  package. If you install `libravdbd` from release assets or another package
35
35
  channel, validate that channel directly.
36
36
 
@@ -76,7 +76,7 @@ It reduces risk; it does not create a trusted execution environment.
76
76
 
77
77
  ## Deletion and Data Protection
78
78
 
79
- The daemon exposes deletion and flush primitives. That matters operationally for:
79
+ The vector service exposes deletion and flush primitives. That matters operationally for:
80
80
 
81
81
  - user-requested memory removal
82
82
  - namespace cleanup
package/docs/uninstall.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # Uninstall Guide
2
2
 
3
3
  This guide covers safe removal of the OpenClaw / OpenClaw.ai plugin and the
4
- separately managed `libravdbd` daemon.
4
+ separately managed `libravdbd` vector service.
5
5
 
6
6
  If you only want to disable the memory replacement temporarily, remove the
7
- plugin slot assignment first and leave the daemon plus data in place.
7
+ plugin slot assignment first and leave the vector service plus data in place.
8
8
 
9
9
  ## 1. Disable the Plugin
10
10
 
@@ -29,7 +29,7 @@ your standard OpenClaw plugin removal flow for
29
29
 
30
30
  ## 2. Stop the Daemon
31
31
 
32
- Stop the sidecar before deleting binaries or stored data.
32
+ Stop the vector service before deleting binaries or stored data.
33
33
 
34
34
  Homebrew:
35
35
 
@@ -69,7 +69,7 @@ brew untap xDarkicex/homebrew-openclaw-libravdb-memory
69
69
 
70
70
  ### Manual Daemon Install
71
71
 
72
- Delete the service file or launch agent you installed, along with the daemon
72
+ Delete the service file or launch agent you installed, along with the vector service
73
73
  binary you copied into place.
74
74
 
75
75
  Common locations:
@@ -96,5 +96,5 @@ delete during uninstall.
96
96
  ## 5. Post-Uninstall Check
97
97
 
98
98
  After cleanup, `openclaw memory status` should no longer show this plugin as the
99
- active memory provider, and the daemon endpoint should no longer be reachable
99
+ active memory provider, and the vector service endpoint should no longer be reachable
100
100
  unless you intentionally kept it running for another workflow.
@@ -2,7 +2,7 @@
2
2
  "id": "libravdb-memory",
3
3
  "name": "LibraVDB Memory",
4
4
  "description": "Persistent vector memory with three-tier hybrid scoring",
5
- "version": "1.6.23",
5
+ "version": "1.6.25",
6
6
  "kind": [
7
7
  "memory",
8
8
  "context-engine"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xdarkicex/openclaw-memory-libravdb",
3
- "version": "1.6.23",
3
+ "version": "1.6.25",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",