@jonathangu/openclawbrain 0.3.0 → 0.3.1

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.
Files changed (56) hide show
  1. package/README.md +140 -290
  2. package/docs/END_STATE.md +106 -94
  3. package/docs/EVIDENCE.md +71 -23
  4. package/docs/RELEASE_CONTRACT.md +46 -32
  5. package/docs/agent-tools.md +65 -34
  6. package/docs/architecture.md +128 -142
  7. package/docs/configuration.md +62 -25
  8. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/channels-status.txt +20 -0
  9. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/config-snapshot.json +94 -0
  10. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/doctor.json +14 -0
  11. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/gateway-probe.txt +24 -0
  12. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/gateway-status.txt +31 -0
  13. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/init-capture.json +15 -0
  14. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/logs.txt +357 -0
  15. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/status-all.txt +61 -0
  16. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/status.json +275 -0
  17. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/summary.md +18 -0
  18. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/trace.json +222 -0
  19. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/validation-report.json +1515 -0
  20. package/docs/evidence/2026-03-16/1fc8ee6fd7892e3deb27d111434df948bca2a66b/workspace-inventory.json +4 -0
  21. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/channels-status.txt +20 -0
  22. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/config-snapshot.json +94 -0
  23. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/doctor.json +14 -0
  24. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/gateway-probe.txt +24 -0
  25. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/gateway-status.txt +31 -0
  26. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/init-capture.json +15 -0
  27. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/logs.txt +362 -0
  28. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/status-all.txt +61 -0
  29. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/status.json +275 -0
  30. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/summary.md +21 -0
  31. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/trace.json +222 -0
  32. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/validation-report.json +4400 -0
  33. package/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380/workspace-inventory.json +4 -0
  34. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/channels-status.txt +31 -0
  35. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/config-snapshot.json +94 -0
  36. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/doctor.json +14 -0
  37. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/gateway-probe.txt +34 -0
  38. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/gateway-status.txt +41 -0
  39. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/logs.txt +441 -0
  40. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/status-all.txt +60 -0
  41. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/status.json +276 -0
  42. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/summary.md +13 -0
  43. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/trace.json +4 -0
  44. package/docs/evidence/2026-03-16/d93f09feea123a08d020fcad8a4523b6c1d26507/validation-report.json +387 -0
  45. package/docs/tui.md +11 -4
  46. package/index.ts +194 -1
  47. package/package.json +1 -1
  48. package/src/brain-cli.ts +12 -1
  49. package/src/brain-harvest/scanner.ts +286 -16
  50. package/src/brain-harvest/self.ts +134 -6
  51. package/src/brain-runtime/evidence-detectors.ts +3 -1
  52. package/src/brain-runtime/harvester-extension.ts +3 -0
  53. package/src/brain-runtime/service.ts +2 -0
  54. package/src/brain-store/embedding.ts +29 -8
  55. package/src/brain-worker/worker.ts +40 -0
  56. package/src/engine.ts +1 -0
@@ -0,0 +1,20 @@
1
+ [plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
2
+
3
+ ◇ Doctor changes ──────────────────────────────╮
4
+ │ │
5
+ │ Telegram configured, enabled automatically. │
6
+ │ │
7
+ ├───────────────────────────────────────────────╯
8
+
9
+ ◇ Doctor ──────────────────────────────────────────────╮
10
+ │ │
11
+ │ Run "openclaw doctor --fix" to apply these changes. │
12
+ │ │
13
+ ├───────────────────────────────────────────────────────╯
14
+ Checking channel status (probe)…
15
+ Gateway not reachable; showing config-only status.
16
+ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
17
+ Mode: local
18
+
19
+
20
+ Tip: https://docs.openclaw.ai/cli#status adds gateway health probes to status output (requires a reachable gateway).
@@ -0,0 +1,94 @@
1
+ {
2
+ "gitSha": "4ccd71a22418b9170128b8d948f5a95801a10380",
3
+ "artifactDir": "/Users/cormorantai/openclawbrain/docs/evidence/2026-03-16/4ccd71a22418b9170128b8d948f5a95801a10380",
4
+ "validationMode": "sterile-lane",
5
+ "validationLaneName": "ocbphase1",
6
+ "validationRoot": "/Users/cormorantai/.openclaw-ocbphase1",
7
+ "validationHome": "/Users/cormorantai",
8
+ "validationStateDir": "/Users/cormorantai/.openclaw-ocbphase1",
9
+ "fixtureWorkspace": "/Users/cormorantai/.openclaw-ocbphase1/workspace-fixture",
10
+ "configPath": "/Users/cormorantai/.openclaw-ocbphase1/openclaw.json",
11
+ "lcmDbPath": "/Users/cormorantai/.openclaw-ocbphase1/lcm.db",
12
+ "brainRoot": "/Users/cormorantai/.openclaw-ocbphase1/openclawbrain",
13
+ "validationRecordFile": "/Users/cormorantai/.openclaw-ocbphase1/validation-records/validation-assemble.jsonl",
14
+ "validationGatewayPort": 19031,
15
+ "config": {
16
+ "meta": {
17
+ "lastTouchedVersion": "2026.3.13",
18
+ "lastTouchedAt": "2026-03-16T15:43:15.788Z"
19
+ },
20
+ "models": {
21
+ "providers": {
22
+ "ollama": {
23
+ "baseUrl": "http://127.0.0.1:11434",
24
+ "apiKey": "ollama-local",
25
+ "api": "ollama",
26
+ "models": [
27
+ {
28
+ "id": "qwen2.5:7b-instruct",
29
+ "name": "qwen2.5:7b-instruct",
30
+ "reasoning": false,
31
+ "input": [
32
+ "text"
33
+ ],
34
+ "cost": {
35
+ "input": 0,
36
+ "output": 0,
37
+ "cacheRead": 0,
38
+ "cacheWrite": 0
39
+ },
40
+ "contextWindow": 262144,
41
+ "maxTokens": 16384
42
+ }
43
+ ]
44
+ }
45
+ }
46
+ },
47
+ "agents": {
48
+ "defaults": {
49
+ "model": {
50
+ "primary": "ollama/qwen2.5:7b-instruct"
51
+ },
52
+ "workspace": "/Users/cormorantai/.openclaw-ocbphase1/workspace-fixture",
53
+ "compaction": {
54
+ "mode": "safeguard"
55
+ }
56
+ }
57
+ },
58
+ "commands": {
59
+ "native": "auto",
60
+ "nativeSkills": "auto",
61
+ "restart": true,
62
+ "ownerDisplay": "raw"
63
+ },
64
+ "gateway": {
65
+ "port": 19031,
66
+ "mode": "local"
67
+ },
68
+ "plugins": {
69
+ "load": {
70
+ "paths": [
71
+ "/Users/cormorantai/openclawbrain"
72
+ ]
73
+ },
74
+ "slots": {},
75
+ "entries": {
76
+ "openclawbrain": {
77
+ "enabled": true,
78
+ "config": {
79
+ "enabled": true
80
+ }
81
+ }
82
+ },
83
+ "installs": {
84
+ "openclawbrain": {
85
+ "source": "path",
86
+ "sourcePath": "/Users/cormorantai/openclawbrain",
87
+ "installPath": "/Users/cormorantai/openclawbrain",
88
+ "version": "0.3.0",
89
+ "installedAt": "2026-03-16T15:43:15.781Z"
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "command": "openclaw",
3
+ "args": [
4
+ "doctor",
5
+ "--non-interactive"
6
+ ],
7
+ "cwd": "/Users/cormorantai/openclawbrain",
8
+ "exitCode": 0,
9
+ "signal": null,
10
+ "ok": true,
11
+ "stdout": "▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\n██░▄▄▄░██░▄▄░██░▄▄▄██░▀██░██░▄▄▀██░████░▄▄▀██░███░██\n██░███░██░▀▀░██░▄▄▄██░█░█░██░█████░████░▀▀░██░█░█░██\n██░▀▀▀░██░█████░▀▀▀██░██▄░██░▀▀▄██░▀▀░█░██░██▄▀▄▀▄██\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n 🦞 OPENCLAW 🦞 \n \n┌ OpenClaw doctor\n[plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)\n│\n◇ Install ─────────────────────────────────────────────────────────╮\n│ │\n│ - package-lock.json present in a pnpm workspace. If you ran npm │\n│ install, remove it and reinstall with pnpm. │\n│ │\n├───────────────────────────────────────────────────────────────────╯\n│\n◇ Doctor changes ──────────────────────────────╮\n│ │\n│ Telegram configured, enabled automatically. │\n│ │\n├───────────────────────────────────────────────╯\n│\n◇ Doctor ──────────────────────────────────────────────╮\n│ │\n│ Run \"openclaw doctor --fix\" to apply these changes. │\n│ │\n├───────────────────────────────────────────────────────╯\n│\n◇ Gateway auth ──────────────────────────────────────────────────╮\n│ │\n│ Gateway auth is off or missing a token. Token auth is now the │\n│ recommended default (including loopback). │\n│ │\n├─────────────────────────────────────────────────────────────────╯\n│\n◇ State integrity ────────────────────────────────────────────────────────╮\n│ │\n│ - OAuth dir not present ($OPENCLAW_HOME/credentials). Skipping create │\n│ because no WhatsApp/pairing channel config is active. │\n│ - Multiple state directories detected. This can split session history. │\n│ - /Users/cormorantai/.openclaw │\n│ Active state dir: $OPENCLAW_HOME │\n│ │\n├──────────────────────────────────────────────────────────────────────────╯\n│\n◇ Other gateway-like services detected ───────────────────────────────────────╮\n│ │\n│ - com.openclawbrain.daemon.activation.0ec88212fa7d (user, plist: │\n│ /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activat │\n│ ion.0ec88212fa7d.plist) │\n│ - com.openclawbrain.daemon.activation.546e84bf06ac (user, plist: │\n│ /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activat │\n│ ion.546e84bf06ac.plist) │\n│ - com.openclawbrain.daemon.activation.b3eeb450ca08 (user, plist: │\n│ /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activat │\n│ ion.b3eeb450ca08.plist) │\n│ │\n├──────────────────────────────────────────────────────────────────────────────╯\n│\n◇ Cleanup hints ─────────────────────────────────────────╮\n│ │\n│ - launchctl bootout gui/$UID/ai.openclaw.gateway │\n│ - rm ~/Library/LaunchAgents/ai.openclaw.gateway.plist │\n│ │\n├─────────────────────────────────────────────────────────╯\n│\n◇ Gateway recommendation ───────────────────────────────────────────────╮\n│ │\n│ Recommendation: run a single gateway per machine for most setups. │\n│ One gateway supports multiple agents. │\n│ If you need multiple gateways (e.g., a rescue bot on the same host), │\n│ isolate ports + config/state (see docs: │\n│ /gateway#multiple-gateways-same-host). │\n│ │\n├────────────────────────────────────────────────────────────────────────╯\n│\n◇ Security ─────────────────────────────────╮\n│ │\n│ - No channel security warnings detected. │\n│ - Run: openclaw security audit --deep │\n│ │\n├────────────────────────────────────────────╯\n│\n◇ Skills status ────────────╮\n│ │\n│ Eligible: 9 │\n│ Missing requirements: 43 │\n│ Blocked by allowlist: 0 │\n│ │\n├────────────────────────────╯\n│\n◇ Plugins ──────╮\n│ │\n│ Loaded: 8 │\n│ Disabled: 34 │\n│ Errors: 0 │\n│ │\n├────────────────╯\n│\n◇ Gateway ──────────────╮\n│ │\n│ Gateway not running. │\n│ │\n├────────────────────────╯\n│\n◇ Gateway connection ───────────────────────────────────────────╮\n│ │\n│ Gateway target: ws://127.0.0.1:19031 │\n│ Source: local loopback │\n│ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json │\n│ Bind: loopback │\n│ │\n├────────────────────────────────────────────────────────────────╯\n│\n◇ Gateway ────────────────────────╮\n│ │\n│ Gateway service not installed. │\n│ │\n├──────────────────────────────────╯\nRun \"openclaw doctor --fix\" to apply changes.\n│\n└ Doctor complete.\n\n",
12
+ "stderr": "[plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: openclawbrain (/Users/cormorantai/openclawbrain/index.ts). Set plugins.allow to explicit trusted ids.\n",
13
+ "error": null
14
+ }
@@ -0,0 +1,24 @@
1
+ [plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
2
+
3
+ ◇ Doctor changes ──────────────────────────────╮
4
+ │ │
5
+ │ Telegram configured, enabled automatically. │
6
+ │ │
7
+ ├───────────────────────────────────────────────╯
8
+
9
+ ◇ Doctor ──────────────────────────────────────────────╮
10
+ │ │
11
+ │ Run "openclaw doctor --fix" to apply these changes. │
12
+ │ │
13
+ ├───────────────────────────────────────────────────────╯
14
+ Gateway Status
15
+ Reachable: no
16
+ Probe budget: 3000ms
17
+
18
+ Discovery (this machine)
19
+ Found 4 gateway(s) via Bonjour (local.)
20
+
21
+ Targets
22
+ Local loopback ws://127.0.0.1:19031
23
+ Connect: failed - connect failed: connect ECONNREFUSED 127.0.0.1:19031
24
+
@@ -0,0 +1,31 @@
1
+ [plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
2
+
3
+ ◇ Doctor changes ──────────────────────────────╮
4
+ │ │
5
+ │ Telegram configured, enabled automatically. │
6
+ │ │
7
+ ├───────────────────────────────────────────────╯
8
+
9
+ ◇ Doctor ──────────────────────────────────────────────╮
10
+ │ │
11
+ │ Run "openclaw doctor --fix" to apply these changes. │
12
+ │ │
13
+ ├───────────────────────────────────────────────────────╯
14
+ Service: LaunchAgent (not loaded)
15
+ File logs: /tmp/openclaw/openclaw-2026-03-16.log
16
+
17
+ Config (cli): $OPENCLAW_HOME/openclaw.json
18
+ Config (service): $OPENCLAW_HOME/openclaw.json
19
+
20
+ Gateway: bind=loopback (127.0.0.1), port=19031 (env/config)
21
+ Probe target: ws://127.0.0.1:19031
22
+ Dashboard: http://127.0.0.1:19031/
23
+ Probe note: Loopback-only gateway; only local clients can connect.
24
+
25
+ Runtime: unknown (Bad request.
26
+ Could not find service "ai.openclaw.gateway" in domain for user gui: 501)
27
+
28
+
29
+
30
+ Troubles: run openclaw status
31
+ Troubleshooting: https://docs.openclaw.ai/troubleshooting
@@ -0,0 +1,15 @@
1
+ {
2
+ "command": "node",
3
+ "args": [
4
+ "bin/openclawbrain.js",
5
+ "init",
6
+ "/Users/cormorantai/.openclaw-ocbphase1/workspace-fixture"
7
+ ],
8
+ "cwd": "/Users/cormorantai/openclawbrain",
9
+ "exitCode": 0,
10
+ "signal": null,
11
+ "ok": true,
12
+ "stdout": "{\n \"command\": \"init\",\n \"workspaceRoot\": \"/Users/cormorantai/.openclaw-ocbphase1/workspace-fixture\",\n \"summary\": \"Brain initialized: 3 nodes (3 chunk), 4 edges\",\n \"packVersion\": 12\n}\n",
13
+ "stderr": "[brain] Discovering sources...\n[brain] Found 2 sources\n[brain] Created 3 chunks\n[brain] Computing embeddings...\n[brain] Embedded 3/3 nodes\n[brain] Created 4 edges (2 sibling, 2 semantic)\n[brain] Brain initialized: 3 nodes (3 chunk), 4 edges\n",
14
+ "error": null
15
+ }
@@ -0,0 +1,362 @@
1
+ ## openclaw status --all
2
+
3
+ [plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
4
+ [plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
5
+ OpenClaw status --all
6
+
7
+ Overview
8
+ ┌─────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
9
+ │ Item │ Value │
10
+ ├─────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
11
+ │ Version │ 2026.3.13 │
12
+ │ OS │ macos 26.3 (arm64) │
13
+ │ Node │ 22.22.0 │
14
+ │ Config │ $OPENCLAW_HOME/openclaw.json │
15
+ │ Dashboard │ http://127.0.0.1:19031/ │
16
+ │ Tailscale │ off · Running · cormorantais-mac-mini.tail499c70.ts.net │
17
+ │ Channel │ dev (main) │
18
+ │ Git │ main · @ 66e02b29 │
19
+ │ Update │ git main · ↔ origin/main · behind 618 · npm latest 2026.3.13 · deps ok │
20
+ │ Gateway │ local · ws://127.0.0.1:19031 (local loopback) · unreachable (connect failed: connect ECONNREFUSED │
21
+ │ │ 127.0.0.1:19031) │
22
+ │ Security │ Run: openclaw security audit --deep │
23
+ │ Gateway self │ unknown │
24
+ │ Gateway service │ LaunchAgent not installed │
25
+ │ Node service │ LaunchAgent not installed │
26
+ │ Agents │ 1 total · 0 bootstrapping · 1 active · 1 sessions │
27
+ └─────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
28
+
29
+ Channels
30
+ ┌──────────┬─────────┬────────┬────────────────────────────────────────────────────────────────────────────────────────┐
31
+ │ Channel │ Enabled │ State │ Detail │
32
+ ├──────────┼─────────┼────────┼────────────────────────────────────────────────────────────────────────────────────────┤
33
+ └──────────┴─────────┴────────┴────────────────────────────────────────────────────────────────────────────────────────┘
34
+
35
+ Agents
36
+ ┌────────────┬────────────────┬──────────┬──────────┬──────────────────────────────────────────────────────────────────┐
37
+ │ Agent │ Bootstrap file │ Sessions │ Active │ Store │
38
+ ├────────────┼────────────────┼──────────┼──────────┼──────────────────────────────────────────────────────────────────┤
39
+ │ main │ ABSENT │ 1 │ 1m ago │ $OPENCLAW_HOME/agents/main/sessions/sessions.json │
40
+ └────────────┴────────────────┴──────────┴──────────┴──────────────────────────────────────────────────────────────────┘
41
+
42
+ Diagnosis (read-only)
43
+
44
+ Gateway connection details:
45
+ Gateway target: ws://127.0.0.1:19031
46
+ Source: local loopback
47
+ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
48
+ Bind: loopback
49
+
50
+ ✓ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
51
+ ✓ Restart sentinel: none
52
+ ✓ Port 19031
53
+ ✓ Tailscale: off · Running · cormorantais-mac-mini.tail499c70.ts.net
54
+ ips: 100.73.247.26, fd7a:115c:a1e0::e932:f71a
55
+ ✓ Skills: 9 eligible · 0 missing · /Users/cormorantai/.openclaw-ocbphase1/workspace-fixture
56
+ ! Channel issues skipped (gateway unreachable)
57
+
58
+ Gateway health:
59
+ connect failed: connect ECONNREFUSED 127.0.0.1:19031
60
+
61
+ Pasteable debug report. Auth tokens redacted.
62
+ Troubleshooting: https://docs.openclaw.ai/troubleshooting
63
+
64
+
65
+
66
+ [stderr]
67
+ [plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: openclawbrain (/Users/cormorantai/openclawbrain/index.ts). Set plugins.allow to explicit trusted ids.
68
+ [plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: openclawbrain (/Users/cormorantai/openclawbrain/index.ts). Set plugins.allow to explicit trusted ids.
69
+
70
+
71
+
72
+ ## openclaw gateway probe
73
+
74
+ [plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
75
+
76
+ ◇ Doctor changes ──────────────────────────────╮
77
+ │ │
78
+ │ Telegram configured, enabled automatically. │
79
+ │ │
80
+ ├───────────────────────────────────────────────╯
81
+
82
+ ◇ Doctor ──────────────────────────────────────────────╮
83
+ │ │
84
+ │ Run "openclaw doctor --fix" to apply these changes. │
85
+ │ │
86
+ ├───────────────────────────────────────────────────────╯
87
+ Gateway Status
88
+ Reachable: no
89
+ Probe budget: 3000ms
90
+
91
+ Discovery (this machine)
92
+ Found 4 gateway(s) via Bonjour (local.)
93
+
94
+ Targets
95
+ Local loopback ws://127.0.0.1:19031
96
+ Connect: failed - connect failed: connect ECONNREFUSED 127.0.0.1:19031
97
+
98
+
99
+
100
+ [stderr]
101
+ [plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: openclawbrain (/Users/cormorantai/openclawbrain/index.ts). Set plugins.allow to explicit trusted ids.
102
+
103
+
104
+
105
+ ## openclaw gateway status
106
+
107
+ [plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
108
+
109
+ ◇ Doctor changes ──────────────────────────────╮
110
+ │ │
111
+ │ Telegram configured, enabled automatically. │
112
+ │ │
113
+ ├───────────────────────────────────────────────╯
114
+
115
+ ◇ Doctor ──────────────────────────────────────────────╮
116
+ │ │
117
+ │ Run "openclaw doctor --fix" to apply these changes. │
118
+ │ │
119
+ ├───────────────────────────────────────────────────────╯
120
+ Service: LaunchAgent (not loaded)
121
+ File logs: /tmp/openclaw/openclaw-2026-03-16.log
122
+
123
+ Config (cli): $OPENCLAW_HOME/openclaw.json
124
+ Config (service): $OPENCLAW_HOME/openclaw.json
125
+
126
+ Gateway: bind=loopback (127.0.0.1), port=19031 (env/config)
127
+ Probe target: ws://127.0.0.1:19031
128
+ Dashboard: http://127.0.0.1:19031/
129
+ Probe note: Loopback-only gateway; only local clients can connect.
130
+
131
+ Runtime: unknown (Bad request.
132
+ Could not find service "ai.openclaw.gateway" in domain for user gui: 501)
133
+
134
+
135
+
136
+ Troubles: run openclaw status
137
+ Troubleshooting: https://docs.openclaw.ai/troubleshooting
138
+
139
+
140
+ [stderr]
141
+ [plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: openclawbrain (/Users/cormorantai/openclawbrain/index.ts). Set plugins.allow to explicit trusted ids.
142
+ Service config looks out of date or non-standard.
143
+ Service config issue: Gateway service PATH is not set; the daemon should use a minimal PATH.
144
+ Recommendation: run "openclaw doctor" (or "openclaw doctor --repair").
145
+ RPC probe: failed
146
+ RPC target: ws://127.0.0.1:19031
147
+ gateway url override requires explicit credentials
148
+ Fix: pass --token or --password (or gatewayToken in tools).
149
+ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
150
+ Service unit not found.
151
+ Service not installed. Run: openclaw gateway install
152
+ File logs: /tmp/openclaw/openclaw-2026-03-16.log
153
+ Other gateway-like services detected (best effort):
154
+ - com.openclawbrain.daemon.activation.0ec88212fa7d (user, plist: /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activation.0ec88212fa7d.plist)
155
+ - com.openclawbrain.daemon.activation.546e84bf06ac (user, plist: /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activation.546e84bf06ac.plist)
156
+ - com.openclawbrain.daemon.activation.b3eeb450ca08 (user, plist: /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activation.b3eeb450ca08.plist)
157
+ Cleanup hint: launchctl bootout gui/$UID/ai.openclaw.gateway
158
+ Cleanup hint: rm ~/Library/LaunchAgents/ai.openclaw.gateway.plist
159
+ Recommendation: run a single gateway per machine for most setups. One gateway supports multiple agents (see docs: /gateway#multiple-gateways-same-host).
160
+ If you need multiple gateways (e.g., a rescue bot on the same host), isolate ports + config/state (see docs: /gateway#multiple-gateways-same-host).
161
+
162
+
163
+
164
+ ## openclaw doctor --non-interactive
165
+
166
+ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
167
+ ██░▄▄▄░██░▄▄░██░▄▄▄██░▀██░██░▄▄▀██░████░▄▄▀██░███░██
168
+ ██░███░██░▀▀░██░▄▄▄██░█░█░██░█████░████░▀▀░██░█░█░██
169
+ ██░▀▀▀░██░█████░▀▀▀██░██▄░██░▀▀▄██░▀▀░█░██░██▄▀▄▀▄██
170
+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
171
+ 🦞 OPENCLAW 🦞
172
+
173
+ ┌ OpenClaw doctor
174
+ [plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
175
+
176
+ ◇ Install ─────────────────────────────────────────────────────────╮
177
+ │ │
178
+ │ - package-lock.json present in a pnpm workspace. If you ran npm │
179
+ │ install, remove it and reinstall with pnpm. │
180
+ │ │
181
+ ├───────────────────────────────────────────────────────────────────╯
182
+
183
+ ◇ Doctor changes ──────────────────────────────╮
184
+ │ │
185
+ │ Telegram configured, enabled automatically. │
186
+ │ │
187
+ ├───────────────────────────────────────────────╯
188
+
189
+ ◇ Doctor ──────────────────────────────────────────────╮
190
+ │ │
191
+ │ Run "openclaw doctor --fix" to apply these changes. │
192
+ │ │
193
+ ├───────────────────────────────────────────────────────╯
194
+
195
+ ◇ Gateway auth ──────────────────────────────────────────────────╮
196
+ │ │
197
+ │ Gateway auth is off or missing a token. Token auth is now the │
198
+ │ recommended default (including loopback). │
199
+ │ │
200
+ ├─────────────────────────────────────────────────────────────────╯
201
+
202
+ ◇ State integrity ────────────────────────────────────────────────────────╮
203
+ │ │
204
+ │ - OAuth dir not present ($OPENCLAW_HOME/credentials). Skipping create │
205
+ │ because no WhatsApp/pairing channel config is active. │
206
+ │ - Multiple state directories detected. This can split session history. │
207
+ │ - /Users/cormorantai/.openclaw │
208
+ │ Active state dir: $OPENCLAW_HOME │
209
+ │ │
210
+ ├──────────────────────────────────────────────────────────────────────────╯
211
+
212
+ ◇ Other gateway-like services detected ───────────────────────────────────────╮
213
+ │ │
214
+ │ - com.openclawbrain.daemon.activation.0ec88212fa7d (user, plist: │
215
+ │ /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activat │
216
+ │ ion.0ec88212fa7d.plist) │
217
+ │ - com.openclawbrain.daemon.activation.546e84bf06ac (user, plist: │
218
+ │ /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activat │
219
+ │ ion.546e84bf06ac.plist) │
220
+ │ - com.openclawbrain.daemon.activation.b3eeb450ca08 (user, plist: │
221
+ │ /Users/cormorantai/Library/LaunchAgents/com.openclawbrain.daemon.activat │
222
+ │ ion.b3eeb450ca08.plist) │
223
+ │ │
224
+ ├──────────────────────────────────────────────────────────────────────────────╯
225
+
226
+ ◇ Cleanup hints ─────────────────────────────────────────╮
227
+ │ │
228
+ │ - launchctl bootout gui/$UID/ai.openclaw.gateway │
229
+ │ - rm ~/Library/LaunchAgents/ai.openclaw.gateway.plist │
230
+ │ │
231
+ ├─────────────────────────────────────────────────────────╯
232
+
233
+ ◇ Gateway recommendation ───────────────────────────────────────────────╮
234
+ │ │
235
+ │ Recommendation: run a single gateway per machine for most setups. │
236
+ │ One gateway supports multiple agents. │
237
+ │ If you need multiple gateways (e.g., a rescue bot on the same host), │
238
+ │ isolate ports + config/state (see docs: │
239
+ │ /gateway#multiple-gateways-same-host). │
240
+ │ │
241
+ ├────────────────────────────────────────────────────────────────────────╯
242
+
243
+ ◇ Security ─────────────────────────────────╮
244
+ │ │
245
+ │ - No channel security warnings detected. │
246
+ │ - Run: openclaw security audit --deep │
247
+ │ │
248
+ ├────────────────────────────────────────────╯
249
+
250
+ ◇ Skills status ────────────╮
251
+ │ │
252
+ │ Eligible: 9 │
253
+ │ Missing requirements: 43 │
254
+ │ Blocked by allowlist: 0 │
255
+ │ │
256
+ ├────────────────────────────╯
257
+
258
+ ◇ Plugins ──────╮
259
+ │ │
260
+ │ Loaded: 8 │
261
+ │ Disabled: 34 │
262
+ │ Errors: 0 │
263
+ │ │
264
+ ├────────────────╯
265
+
266
+ ◇ Gateway ──────────────╮
267
+ │ │
268
+ │ Gateway not running. │
269
+ │ │
270
+ ├────────────────────────╯
271
+
272
+ ◇ Gateway connection ───────────────────────────────────────────╮
273
+ │ │
274
+ │ Gateway target: ws://127.0.0.1:19031 │
275
+ │ Source: local loopback │
276
+ │ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json │
277
+ │ Bind: loopback │
278
+ │ │
279
+ ├────────────────────────────────────────────────────────────────╯
280
+
281
+ ◇ Gateway ────────────────────────╮
282
+ │ │
283
+ │ Gateway service not installed. │
284
+ │ │
285
+ ├──────────────────────────────────╯
286
+ Run "openclaw doctor --fix" to apply changes.
287
+
288
+ └ Doctor complete.
289
+
290
+
291
+
292
+ [stderr]
293
+ [plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: openclawbrain (/Users/cormorantai/openclawbrain/index.ts). Set plugins.allow to explicit trusted ids.
294
+
295
+
296
+
297
+ ## openclaw channels status --probe
298
+
299
+ [plugins] [openclawbrain] Plugin loaded (enabled=true, db=/Users/cormorantai/.openclaw-ocbphase1/lcm.db, threshold=0.75)
300
+
301
+ ◇ Doctor changes ──────────────────────────────╮
302
+ │ │
303
+ │ Telegram configured, enabled automatically. │
304
+ │ │
305
+ ├───────────────────────────────────────────────╯
306
+
307
+ ◇ Doctor ──────────────────────────────────────────────╮
308
+ │ │
309
+ │ Run "openclaw doctor --fix" to apply these changes. │
310
+ │ │
311
+ ├───────────────────────────────────────────────────────╯
312
+ Checking channel status (probe)…
313
+ Gateway not reachable; showing config-only status.
314
+ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
315
+ Mode: local
316
+
317
+
318
+ Tip: https://docs.openclaw.ai/cli#status adds gateway health probes to status output (requires a reachable gateway).
319
+
320
+
321
+ [stderr]
322
+ [plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: openclawbrain (/Users/cormorantai/openclawbrain/index.ts). Set plugins.allow to explicit trusted ids.
323
+ Gateway not reachable: Error: gateway closed (1006 abnormal closure (no close frame)): no close reason
324
+ Gateway target: ws://127.0.0.1:19031
325
+ Source: local loopback
326
+ Config: /Users/cormorantai/.openclaw-ocbphase1/openclaw.json
327
+ Bind: loopback
328
+
329
+
330
+
331
+ ## file:/Users/cormorantai/.openclaw-ocbphase1/logs/config-audit.jsonl
332
+
333
+ {"ts":"2026-03-16T04:04:15.354Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":68382,"ppid":68381,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":false,"previousHash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","nextHash":"91f275980114a67741b7f7e76c22409dada3581a5c8b0d901465ee80897e5d3e","previousBytes":null,"nextBytes":693,"changedPathCount":null,"hasMetaBefore":false,"hasMetaAfter":true,"gatewayModeBefore":null,"gatewayModeAfter":null,"suspicious":[],"result":"rename"}
334
+ {"ts":"2026-03-16T04:05:42.764Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":68908,"ppid":68907,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"21f78c45f162e963520a409452bec17e90ecf01601f27cee9a9c80ac60fbf559","nextHash":"755ca625612a011a5343ba5340d2d861956ed45ab6405c64bb7ce8d0ff7bbb0b","previousBytes":983,"nextBytes":1042,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
335
+ {"ts":"2026-03-16T04:24:19.356Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":75699,"ppid":75698,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"755ca625612a011a5343ba5340d2d861956ed45ab6405c64bb7ce8d0ff7bbb0b","nextHash":"b84565773eb916660b513c133b04e179654e5db8162c8005ae2033564a9983f1","previousBytes":1042,"nextBytes":1042,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
336
+ {"ts":"2026-03-16T08:50:19.843Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":46503,"ppid":46502,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"5f67da851cc11886db6edfad4dea3a7e98328ded0336b228995b7c53d6275f69","nextHash":"8e2fea8982b2c60a699277c064b8905e69b25d649a8b46d427f5e8b710edf837","previousBytes":1737,"nextBytes":1737,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
337
+ {"ts":"2026-03-16T08:55:33.959Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":48474,"ppid":48473,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"4e6005203d622e121c9f603884affb7d26f21e67309e691df6e12f11209ecbf9","nextHash":"5fc30857e6d339aa3a1ea454559ec50427df93660c9a415546e96ae1f0175c0c","previousBytes":1693,"nextBytes":1693,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
338
+ {"ts":"2026-03-16T11:33:31.029Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":90752,"ppid":90751,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"5fc30857e6d339aa3a1ea454559ec50427df93660c9a415546e96ae1f0175c0c","nextHash":"14083e3ec990ab864f7f9182a3b7a23df5a9cca5976dfe70b52d25aa461396c4","previousBytes":1693,"nextBytes":1693,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
339
+ {"ts":"2026-03-16T11:45:54.906Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":94719,"ppid":94718,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"14083e3ec990ab864f7f9182a3b7a23df5a9cca5976dfe70b52d25aa461396c4","nextHash":"6be073d7a792a059818194b828a76fd92210d2d15fd7900aebe5c809545d572f","previousBytes":1693,"nextBytes":1693,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
340
+ {"ts":"2026-03-16T11:49:07.300Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":95707,"ppid":95706,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"56b2a60a67d23a24efcea84bd9f14160e21674749bd9bad526ebbac76bdfc66a","nextHash":"d000ea8b43aa3de7a87970304fd47a9c1ef5c39e788d9327f63a59dfdf87cb4e","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
341
+ {"ts":"2026-03-16T15:23:45.483Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":51626,"ppid":51625,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"d000ea8b43aa3de7a87970304fd47a9c1ef5c39e788d9327f63a59dfdf87cb4e","nextHash":"c1e9c0f88699ec6f83b25e55bd97dc7d01de08c4e32c6a381e8a3aad5c301ca1","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
342
+ {"ts":"2026-03-16T15:34:41.982Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":54749,"ppid":54748,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"c1e9c0f88699ec6f83b25e55bd97dc7d01de08c4e32c6a381e8a3aad5c301ca1","nextHash":"8a1bc60fee2dbea652a63c64054345a1d2fd6f0b166b7cc85e69800b5301998d","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
343
+ {"ts":"2026-03-16T15:36:35.162Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":55336,"ppid":55335,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"8a1bc60fee2dbea652a63c64054345a1d2fd6f0b166b7cc85e69800b5301998d","nextHash":"9374c216e4bc0a9e4c848ebde081c17c7473fd789b27f88ed7c88e3f88eed90a","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
344
+ {"ts":"2026-03-16T15:37:54.836Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":55995,"ppid":55994,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"9374c216e4bc0a9e4c848ebde081c17c7473fd789b27f88ed7c88e3f88eed90a","nextHash":"0cb3c14bdc3b214c4efa543532c311f0f9888ee3c63144f6ca3f35ca6daf6abe","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
345
+ {"ts":"2026-03-16T15:40:39.301Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":56839,"ppid":56837,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"0cb3c14bdc3b214c4efa543532c311f0f9888ee3c63144f6ca3f35ca6daf6abe","nextHash":"0583afea64b291e67d6a111f11c75914660d8660c6a28ad556f954415401522a","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
346
+ {"ts":"2026-03-16T15:43:15.788Z","source":"config-io","event":"config.write","configPath":"/Users/cormorantai/.openclaw-ocbphase1/openclaw.json","pid":57902,"ppid":57901,"cwd":"/Users/cormorantai/openclawbrain","argv":["/opt/homebrew/Cellar/node@22/22.22.0/bin/node","/opt/homebrew/bin/openclaw","plugins","install","--link","/Users/cormorantai/openclawbrain"],"execArgv":["--disable-warning=ExperimentalWarning"],"watchMode":false,"watchSession":null,"watchCommand":null,"existsBefore":true,"previousHash":"0583afea64b291e67d6a111f11c75914660d8660c6a28ad556f954415401522a","nextHash":"ea336bd83d2ec2c7062326bb27353f86e371eb075a3fa5dea37b0f7614b4944e","previousBytes":1701,"nextBytes":1701,"changedPathCount":null,"hasMetaBefore":true,"hasMetaAfter":true,"gatewayModeBefore":"local","gatewayModeAfter":"local","suspicious":[],"result":"rename"}
347
+
348
+
349
+
350
+ ## file:/Users/cormorantai/.openclaw-ocbphase1/validation-records/validation-assemble.jsonl
351
+
352
+ {"at":1773635202790,"sessionId":"475abd74-ed4f-4334-a896-8ffd7d81eec7","conversationId":1,"queryText":"open PLAYBOOK.md","mode":"skip_short_static_lookup","footer":"[brain] bypassed: short static lookup.","traceId":null,"episodeId":null,"tokenBudget":262144}
353
+ {"at":1773635212771,"sessionId":"475abd74-ed4f-4334-a896-8ffd7d81eec7","conversationId":1,"queryText":"How do I open a pull request again?","mode":"use_brain","footer":"Brain · 1 seeds · start bn_40502fac-df0 · 4 hops · 4 fired · 0 veto · 391 chars","traceId":"bt_c79a93d6","episodeId":"be_5a29c9cf-99b","tokenBudget":262144}
354
+
355
+
356
+
357
+ ## file:/Users/cormorantai/.openclaw-ocbphase1/validation-records/validation-assemble.jsonl
358
+
359
+ {"at":1773635202790,"sessionId":"475abd74-ed4f-4334-a896-8ffd7d81eec7","conversationId":1,"queryText":"open PLAYBOOK.md","mode":"skip_short_static_lookup","footer":"[brain] bypassed: short static lookup.","traceId":null,"episodeId":null,"tokenBudget":262144}
360
+ {"at":1773635212771,"sessionId":"475abd74-ed4f-4334-a896-8ffd7d81eec7","conversationId":1,"queryText":"How do I open a pull request again?","mode":"use_brain","footer":"Brain · 1 seeds · start bn_40502fac-df0 · 4 hops · 4 fired · 0 veto · 391 chars","traceId":"bt_c79a93d6","episodeId":"be_5a29c9cf-99b","tokenBudget":262144}
361
+
362
+