security: Remove private IPs and paths from repository
- Replace all 10.0.0.x IPs with placeholders - Replace absolute paths with ~/ shorthand - Replace specific timestamps with placeholders - No sensitive data in public repo
This commit is contained in:
38
README.md
38
README.md
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
**Project:** Gem extraction and memory recall system
|
**Project:** Gem extraction and memory recall system
|
||||||
**Status:** ✅ Active & Verified
|
**Status:** ✅ Active & Verified
|
||||||
**Location:** `/root/.openclaw/workspace/.projects/true-recall-v2/`
|
**Location:** `~/.openclaw/workspace/.projects/true-recall-v2/`
|
||||||
**Last Updated:** 2026-02-24 19:02 CST
|
**Last Updated:** 2026-02-24 19:02 CST
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -30,10 +30,10 @@ openclaw status
|
|||||||
sudo systemctl status mem-qdrant-watcher
|
sudo systemctl status mem-qdrant-watcher
|
||||||
|
|
||||||
# View recent captures
|
# View recent captures
|
||||||
curl -s http://10.0.0.40:6333/collections/memories_tr | jq '.result.points_count'
|
curl -s http://<QDRANT_IP>:6333/collections/memories_tr | jq '.result.points_count'
|
||||||
|
|
||||||
# Check collections
|
# Check collections
|
||||||
curl -s http://10.0.0.40:6333/collections | jq '.result.collections[].name'
|
curl -s http://<QDRANT_IP>:6333/collections | jq '.result.collections[].name'
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -138,7 +138,7 @@ TrueRecall v2 extracts "gems" (key insights) from conversations and injects them
|
|||||||
**File:** `skills/qdrant-memory/scripts/realtime_qdrant_watcher.py`
|
**File:** `skills/qdrant-memory/scripts/realtime_qdrant_watcher.py`
|
||||||
|
|
||||||
**What it does:**
|
**What it does:**
|
||||||
- Watches `/root/.openclaw/agents/main/sessions/*.jsonl`
|
- Watches `~/.openclaw/agents/main/sessions/*.jsonl`
|
||||||
- Parses each turn (user + AI)
|
- Parses each turn (user + AI)
|
||||||
- Embeds with `snowflake-arctic-embed2`
|
- Embeds with `snowflake-arctic-embed2`
|
||||||
- Stores to `memories_tr` instantly
|
- Stores to `memories_tr` instantly
|
||||||
@@ -288,8 +288,8 @@ python3 clean_memories_tr.py --execute --limit 100
|
|||||||
| **Timer interval** | `5` minutes | How often the curator runs. `5 min` = fast backlog clearing. `30 min` = balanced. `60 min` = minimal overhead. |
|
| **Timer interval** | `5` minutes | How often the curator runs. `5 min` = fast backlog clearing. `30 min` = balanced. `60 min` = minimal overhead. |
|
||||||
| **Batch size** | `100` | Max memories sent to curator per run. Higher = fewer API calls but more memory usage. |
|
| **Batch size** | `100` | Max memories sent to curator per run. Higher = fewer API calls but more memory usage. |
|
||||||
| **Max gems per run** | *(unlimited)* | Hard limit on gems extracted per batch. Not set by default — extracts all found gems. |
|
| **Max gems per run** | *(unlimited)* | Hard limit on gems extracted per batch. Not set by default — extracts all found gems. |
|
||||||
| **Qdrant URL** | `http://10.0.0.40:6333` | Vector database endpoint. Change if Qdrant runs on different host/port. |
|
| **Qdrant URL** | `http://<QDRANT_IP>:6333` | Vector database endpoint. Change if Qdrant runs on different host/port. |
|
||||||
| **Ollama URL** | `http://10.0.0.10:11434` | LLM endpoint for gem extraction. Change if Ollama runs elsewhere. |
|
| **Ollama URL** | `http://<OLLAMA_IP>:11434` | LLM endpoint for gem extraction. Change if Ollama runs elsewhere. |
|
||||||
| **Curator LLM** | `qwen3:30b-a3b-instruct` | Model for extracting gems. `30b` = best quality (~3s). `4b` = faster but needs JSON fallback. |
|
| **Curator LLM** | `qwen3:30b-a3b-instruct` | Model for extracting gems. `30b` = best quality (~3s). `4b` = faster but needs JSON fallback. |
|
||||||
| **User ID** | `rob` | Owner identifier for memories. Used for filtering and multi-user setups. |
|
| **User ID** | `rob` | Owner identifier for memories. Used for filtering and multi-user setups. |
|
||||||
| **Source collection** | `memories_tr` | Qdrant collection for raw captured memories. |
|
| **Source collection** | `memories_tr` | Qdrant collection for raw captured memories. |
|
||||||
@@ -324,7 +324,7 @@ python3 clean_memories_tr.py --execute --limit 100
|
|||||||
|
|
||||||
### 6. memory-qdrant Plugin
|
### 6. memory-qdrant Plugin
|
||||||
|
|
||||||
**Location:** `/root/.openclaw/extensions/memory-qdrant/`
|
**Location:** `~/.openclaw/extensions/memory-qdrant/`
|
||||||
|
|
||||||
**Config (openclaw.json):**
|
**Config (openclaw.json):**
|
||||||
```json
|
```json
|
||||||
@@ -347,7 +347,7 @@ python3 clean_memories_tr.py --execute --limit 100
|
|||||||
### Core Project
|
### Core Project
|
||||||
|
|
||||||
```
|
```
|
||||||
/root/.openclaw/workspace/.projects/true-recall-v2/
|
~/.openclaw/workspace/.projects/true-recall-v2/
|
||||||
├── README.md # This file
|
├── README.md # This file
|
||||||
├── session.md # Detailed notes
|
├── session.md # Detailed notes
|
||||||
├── curator-prompt.md # Extraction prompt
|
├── curator-prompt.md # Extraction prompt
|
||||||
@@ -377,8 +377,8 @@ python3 clean_memories_tr.py --execute --limit 100
|
|||||||
|
|
||||||
| File | Purpose |
|
| File | Purpose |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| `/root/.openclaw/extensions/memory-qdrant/` | Plugin code |
|
| `~/.openclaw/extensions/memory-qdrant/` | Plugin code |
|
||||||
| `/root/.openclaw/openclaw.json` | Configuration |
|
| `~/.openclaw/openclaw.json` | Configuration |
|
||||||
| `/etc/systemd/system/mem-qdrant-watcher.service` | Service file |
|
| `/etc/systemd/system/mem-qdrant-watcher.service` | Service file |
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -387,7 +387,7 @@ python3 clean_memories_tr.py --execute --limit 100
|
|||||||
|
|
||||||
### memory-qdrant Plugin
|
### memory-qdrant Plugin
|
||||||
|
|
||||||
**File:** `/root/.openclaw/openclaw.json`
|
**File:** `~/.openclaw/openclaw.json`
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@@ -400,8 +400,8 @@ python3 clean_memories_tr.py --execute --limit 100
|
|||||||
"embeddingModel": "snowflake-arctic-embed2",
|
"embeddingModel": "snowflake-arctic-embed2",
|
||||||
"maxRecallResults": 2,
|
"maxRecallResults": 2,
|
||||||
"minRecallScore": 0.7,
|
"minRecallScore": 0.7,
|
||||||
"ollamaUrl": "http://10.0.0.10:11434",
|
"ollamaUrl": "http://<OLLAMA_IP>:11434",
|
||||||
"qdrantUrl": "http://10.0.0.40:6333"
|
"qdrantUrl": "http://<QDRANT_IP>:6333"
|
||||||
},
|
},
|
||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
@@ -430,11 +430,11 @@ python3 clean_memories_tr.py --execute --limit 100
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Count points
|
# Count points
|
||||||
curl -s http://10.0.0.40:6333/collections/memories_tr | jq '.result.points_count'
|
curl -s http://<QDRANT_IP>:6333/collections/memories_tr | jq '.result.points_count'
|
||||||
curl -s http://10.0.0.40:6333/collections/gems_tr | jq '.result.points_count'
|
curl -s http://<QDRANT_IP>:6333/collections/gems_tr | jq '.result.points_count'
|
||||||
|
|
||||||
# View recent captures
|
# View recent captures
|
||||||
curl -s -X POST http://10.0.0.40:6333/collections/memories_tr/points/scroll \
|
curl -s -X POST http://<QDRANT_IP>:6333/collections/memories_tr/points/scroll \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"limit": 3, "with_payload": true}' | jq '.result.points[].payload.content'
|
-d '{"limit": 3, "with_payload": true}' | jq '.result.points[].payload.content'
|
||||||
```
|
```
|
||||||
@@ -456,7 +456,7 @@ openclaw gateway status
|
|||||||
Send a message, then check:
|
Send a message, then check:
|
||||||
```bash
|
```bash
|
||||||
# Should increase by 1-2 points
|
# Should increase by 1-2 points
|
||||||
curl -s http://10.0.0.40:6333/collections/memories_tr | jq '.result.points_count'
|
curl -s http://<QDRANT_IP>:6333/collections/memories_tr | jq '.result.points_count'
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -470,8 +470,8 @@ curl -s http://10.0.0.40:6333/collections/memories_tr | jq '.result.points_count
|
|||||||
sudo journalctl -u mem-qdrant-watcher -f
|
sudo journalctl -u mem-qdrant-watcher -f
|
||||||
|
|
||||||
# Verify dependencies
|
# Verify dependencies
|
||||||
curl http://10.0.0.40:6333/ # Qdrant
|
curl http://<QDRANT_IP>:6333/ # Qdrant
|
||||||
curl http://10.0.0.10:11434/api/tags # Ollama
|
curl http://<OLLAMA_IP>:11434/api/tags # Ollama
|
||||||
```
|
```
|
||||||
|
|
||||||
### Plugin Not Loading
|
### Plugin Not Loading
|
||||||
|
|||||||
42
session.md
42
session.md
@@ -20,9 +20,9 @@
|
|||||||
**Next session start:** Read this file, then check:
|
**Next session start:** Read this file, then check:
|
||||||
```bash
|
```bash
|
||||||
# Quick status
|
# Quick status
|
||||||
python3 /root/.openclaw/workspace/.projects/true-recall-v2/tr-continuous/curator_by_count.py --status
|
python3 ~/.openclaw/workspace/.projects/true-recall-v2/tr-continuous/curator_by_count.py --status
|
||||||
sudo systemctl status mem-qdrant-watcher
|
sudo systemctl status mem-qdrant-watcher
|
||||||
curl -s http://10.0.0.40:6333/collections/memories_tr | jq '.result.points_count'
|
curl -s http://<QDRANT_IP>:6333/collections/memories_tr | jq '.result.points_count'
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -130,12 +130,12 @@ TrueRecall v2 is a complete memory system with real-time capture, daily curation
|
|||||||
|
|
||||||
### 1. Real-Time Watcher (Primary Capture)
|
### 1. Real-Time Watcher (Primary Capture)
|
||||||
|
|
||||||
**Location:** `/root/.openclaw/workspace/skills/qdrant-memory/scripts/realtime_qdrant_watcher.py`
|
**Location:** `~/.openclaw/workspace/skills/qdrant-memory/scripts/realtime_qdrant_watcher.py`
|
||||||
|
|
||||||
**Function:**
|
**Function:**
|
||||||
- Watches `/root/.openclaw/agents/main/sessions/*.jsonl`
|
- Watches `~/.openclaw/agents/main/sessions/*.jsonl`
|
||||||
- Parses every conversation turn in real-time
|
- Parses every conversation turn in real-time
|
||||||
- Embeds with `snowflake-arctic-embed2` (Ollama @ 10.0.0.10)
|
- Embeds with `snowflake-arctic-embed2` (Ollama @ <OLLAMA_IP>)
|
||||||
- Stores directly to `memories_tr` (no Redis)
|
- Stores directly to `memories_tr` (no Redis)
|
||||||
- **Cleans content:** Removes markdown, tables, metadata, thinking tags
|
- **Cleans content:** Removes markdown, tables, metadata, thinking tags
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ TrueRecall v2 is a complete memory system with real-time capture, daily curation
|
|||||||
|
|
||||||
### 2. Content Cleaner (Existing Data)
|
### 2. Content Cleaner (Existing Data)
|
||||||
|
|
||||||
**Location:** `/root/.openclaw/workspace/skills/qdrant-memory/scripts/clean_memories_tr.py`
|
**Location:** `~/.openclaw/workspace/skills/qdrant-memory/scripts/clean_memories_tr.py`
|
||||||
|
|
||||||
**Function:**
|
**Function:**
|
||||||
- Batch-cleans existing `memories_tr` points
|
- Batch-cleans existing `memories_tr` points
|
||||||
@@ -175,7 +175,7 @@ python3 clean_memories_tr.py --execute --limit 100
|
|||||||
|
|
||||||
**Replaces:** Daily curator (2:45 AM batch) and turn-based curator
|
**Replaces:** Daily curator (2:45 AM batch) and turn-based curator
|
||||||
|
|
||||||
**Location:** `/root/.openclaw/workspace/.projects/true-recall-v2/tr-continuous/curator_timer.py`
|
**Location:** `~/.openclaw/workspace/.projects/true-recall-v2/tr-continuous/curator_timer.py`
|
||||||
|
|
||||||
**Schedule:** Every 30 minutes (cron)
|
**Schedule:** Every 30 minutes (cron)
|
||||||
|
|
||||||
@@ -231,7 +231,7 @@ python3 curator_timer.py --config curator_config.json
|
|||||||
|
|
||||||
### 6. memory-qdrant Plugin
|
### 6. memory-qdrant Plugin
|
||||||
|
|
||||||
**Location:** `/root/.openclaw/extensions/memory-qdrant/`
|
**Location:** `~/.openclaw/extensions/memory-qdrant/`
|
||||||
|
|
||||||
**Config:**
|
**Config:**
|
||||||
```json
|
```json
|
||||||
@@ -256,7 +256,7 @@ python3 curator_timer.py --config curator_config.json
|
|||||||
### Core Project Files
|
### Core Project Files
|
||||||
|
|
||||||
```
|
```
|
||||||
/root/.openclaw/workspace/.projects/true-recall-v2/
|
~/.openclaw/workspace/.projects/true-recall-v2/
|
||||||
├── README.md # Architecture docs
|
├── README.md # Architecture docs
|
||||||
├── session.md # This file
|
├── session.md # This file
|
||||||
├── curator-prompt.md # Gem extraction prompt
|
├── curator-prompt.md # Gem extraction prompt
|
||||||
@@ -292,8 +292,8 @@ python3 curator_timer.py --config curator_config.json
|
|||||||
|
|
||||||
| File | Purpose |
|
| File | Purpose |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| `/root/.openclaw/extensions/memory-qdrant/` | Plugin code |
|
| `~/.openclaw/extensions/memory-qdrant/` | Plugin code |
|
||||||
| `/root/.openclaw/openclaw.json` | Plugin configuration |
|
| `~/.openclaw/openclaw.json` | Plugin configuration |
|
||||||
| `/etc/systemd/system/mem-qdrant-watcher.service` | Systemd service |
|
| `/etc/systemd/system/mem-qdrant-watcher.service` | Systemd service |
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -328,7 +328,7 @@ python3 curator_timer.py --config curator_config.json
|
|||||||
|
|
||||||
### memory-qdrant Plugin
|
### memory-qdrant Plugin
|
||||||
|
|
||||||
**File:** `/root/.openclaw/openclaw.json`
|
**File:** `~/.openclaw/openclaw.json`
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
@@ -341,8 +341,8 @@ python3 curator_timer.py --config curator_config.json
|
|||||||
"embeddingModel": "snowflake-arctic-embed2",
|
"embeddingModel": "snowflake-arctic-embed2",
|
||||||
"maxRecallResults": 2,
|
"maxRecallResults": 2,
|
||||||
"minRecallScore": 0.7,
|
"minRecallScore": 0.7,
|
||||||
"ollamaUrl": "http://10.0.0.10:11434",
|
"ollamaUrl": "http://<OLLAMA_IP>:11434",
|
||||||
"qdrantUrl": "http://10.0.0.40:6333"
|
"qdrantUrl": "http://<QDRANT_IP>:6333"
|
||||||
},
|
},
|
||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
@@ -371,11 +371,11 @@ python3 curator_timer.py --config curator_config.json
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Points count
|
# Points count
|
||||||
curl -s http://10.0.0.40:6333/collections/memories_tr | jq '.result.points_count'
|
curl -s http://<QDRANT_IP>:6333/collections/memories_tr | jq '.result.points_count'
|
||||||
curl -s http://10.0.0.40:6333/collections/gems_tr | jq '.result.points_count'
|
curl -s http://<QDRANT_IP>:6333/collections/gems_tr | jq '.result.points_count'
|
||||||
|
|
||||||
# Recent points
|
# Recent points
|
||||||
curl -s -X POST http://10.0.0.40:6333/collections/memories_tr/points/scroll \
|
curl -s -X POST http://<QDRANT_IP>:6333/collections/memories_tr/points/scroll \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"limit": 5, "with_payload": true}' | jq '.result.points[].payload.content'
|
-d '{"limit": 5, "with_payload": true}' | jq '.result.points[].payload.content'
|
||||||
```
|
```
|
||||||
@@ -402,8 +402,8 @@ openclaw status
|
|||||||
**Check:**
|
**Check:**
|
||||||
1. Service running? `systemctl status mem-qdrant-watcher`
|
1. Service running? `systemctl status mem-qdrant-watcher`
|
||||||
2. Logs: `journalctl -u mem-qdrant-watcher -f`
|
2. Logs: `journalctl -u mem-qdrant-watcher -f`
|
||||||
3. Qdrant accessible? `curl http://10.0.0.40:6333/`
|
3. Qdrant accessible? `curl http://<QDRANT_IP>:6333/`
|
||||||
4. Ollama accessible? `curl http://10.0.0.10:11434/api/tags`
|
4. Ollama accessible? `curl http://<OLLAMA_IP>:11434/api/tags`
|
||||||
|
|
||||||
### Issue: Cleaner Fails
|
### Issue: Cleaner Fails
|
||||||
|
|
||||||
@@ -416,7 +416,7 @@ openclaw status
|
|||||||
|
|
||||||
**Check:**
|
**Check:**
|
||||||
1. `openclaw.json` syntax valid? `openclaw config validate`
|
1. `openclaw.json` syntax valid? `openclaw config validate`
|
||||||
2. Plugin compiled? `cd /root/.openclaw/extensions/memory-qdrant && npx tsc`
|
2. Plugin compiled? `cd ~/.openclaw/extensions/memory-qdrant && npx tsc`
|
||||||
3. Gateway logs: `tail /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log`
|
3. Gateway logs: `tail /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log`
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -486,7 +486,7 @@ If starting fresh:
|
|||||||
1. Read `README.md` for architecture overview
|
1. Read `README.md` for architecture overview
|
||||||
2. Check service status: `sudo systemctl status mem-qdrant-watcher`
|
2. Check service status: `sudo systemctl status mem-qdrant-watcher`
|
||||||
3. Check timer curator: `tail /var/log/true-recall-timer.log`
|
3. Check timer curator: `tail /var/log/true-recall-timer.log`
|
||||||
4. Verify collections: `curl http://10.0.0.40:6333/collections`
|
4. Verify collections: `curl http://<QDRANT_IP>:6333/collections`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user