# TrueRecall v2 - Function Check (GENERIC) **Quick validation checklist for TrueRecall v2 setup** **For:** Generic installation (sanitized) **Version:** 2.2 --- ## Quick Status Check ```bash cd ~//true-recall-v2 ``` --- ## 1. Directory Structure | Check | Command | Expected | |-------|---------|----------| | Project exists | `ls ~//true-recall-v2` | Files listed | | Watcher script | `ls /qdrant-memory/scripts/realtime_qdrant_watcher.py` | File exists | **Paths:** - Project: `~//true-recall-v2/` - Watcher: `/qdrant-memory/scripts/realtime_qdrant_watcher.py` - Systemd: `/etc/systemd/system/mem-qdrant-watcher.service` --- ## 2. Services | Check | Command | Expected | |-------|---------|----------| | Watcher running | `systemctl is-active mem-qdrant-watcher` | `active` | | Watcher enabled | `systemctl is-enabled mem-qdrant-watcher` | `enabled` | | Cron job set | `crontab -l \| grep true-recall` | Cron entry present | **Service:** - Service: `mem-qdrant-watcher.service` - Status: `systemctl status mem-qdrant-watcher --no-pager` - Logs: `journalctl -u mem-qdrant-watcher -n 20` - Cron: Configured interval (e.g., `*/5 * * * *`) --- ## 3. Qdrant Collections | Check | Command | Expected | |-------|---------|----------| | memories_tr status | `curl -s http://:6333/collections/memories_tr \| jq .result.status` | `green` | | gems_tr status | `curl -s http://:6333/collections/gems_tr \| jq .result.status` | `green` | | memories_tr count | `curl -s http://:6333/collections/memories_tr \| jq .result.points_count` | `1000+` | | gems_tr count | `curl -s http://:6333/collections/gems_tr \| jq .result.points_count` | `10+` | **Qdrant:** - URL: `http://:6333` - Collections: memories_tr, gems_tr - Embedding Model: Configured in openclaw.json --- ## 4. Curation Status | Check | Command | Expected | |-------|---------|----------| | Uncurated count | See Section 7 | `Number of uncurated` | | Curated count | See Section 7 | `Number of curated` | | Curator config | `cat tr-continuous/curator_config.json` | Valid JSON | **Config:** - Timer: Configured minutes - Batch Size: Configured (e.g., 100) - User ID: Your user ID - Source: memories_tr - Target: gems_tr - Curator Log: `/var/log/true-recall-timer.log` --- ## 5. Capture Test | Step | Action | Check | |------|--------|-------| | 1 | Send a test message | Message received | | 2 | Wait 10 seconds | Allow processing | | 3 | Check memories count increased | `curl -s http://:6333/collections/memories_tr \| jq .result.points_count` | | 4 | Verify memory has user_id | `user_id: ""` in payload | | 5 | Verify memory has curated=false | `curated: false` in payload | **Watcher:** - Script: `/qdrant-memory/scripts/realtime_qdrant_watcher.py` - User ID: Configured (check openclaw.json) - Collection: `memories_tr` - Embeddings: Configured model --- ## 6. Curation Test | Step | Action | Check | |------|--------|-------| | 1 | Note current gems count | Baseline | | 2 | Run curator manually | `cd tr-continuous && python3 curator_timer.py` | | 3 | Check gems count increased | New gems added | | 4 | Check memories marked curated | `curated: true` | | 5 | Check curator log | `tail /var/log/true-recall-timer.log` | --- ## 7. Recall Test | Step | Action | Check | |------|--------|-------| | 1 | Start new conversation | Context loads | | 2 | Ask about previous topic | Gems injected | | 3 | Verify context visible | Relevant memories appear | --- ## 8. Path Validation | Path | Check | Status | |------|-------|--------| | Watcher script | `/qdrant-memory/scripts/realtime_qdrant_watcher.py` | ☐ | | Curator script | `/true-recall-v2/tr-continuous/curator_timer.py` | ☐ | | Config file | `/true-recall-v2/tr-continuous/curator_config.json` | ☐ | | Log file | `/var/log/true-recall-timer.log` | ☐ | --- ## 9. Quick Commands Reference ```bash # Check all services systemctl status mem-qdrant-watcher --no-pager tail -20 /var/log/true-recall-timer.log # Check Qdrant collections curl -s http://:6333/collections/memories_tr | jq '{status: .result.status, points: .result.points_count}' curl -s http://:6333/collections/gems_tr | jq '{status: .result.status, points: .result.points_count}' # Check uncurated memories curl -s -X POST http://:6333/collections/memories_tr/points/count \ -d '{"filter":{"must":[{"key":"user_id","match":{"value":""}},{"key":"curated","match":{"value":false}}]}}' | jq .result.count # Run curator manually cd ~//true-recall-v2/tr-continuous python3 curator_timer.py # Check OpenClaw plugin openclaw status | grep memory-qdrant # Restart watcher (if needed) sudo systemctl restart mem-qdrant-watcher # View watcher logs journalctl -u mem-qdrant-watcher -n 50 --no-pager ``` --- ## Configuration Variables Replace these placeholders with your actual values: | Variable | Description | Example | |----------|-------------|---------| | `` | Your Qdrant IP | `10.0.0.40` or `localhost` | | `` | Your Ollama IP | `10.0.0.10` or `localhost` | | `` | Your project path | `.local_projects` or `.projects` | | `` | Your skills path | `~/.openclaw/workspace/skills` | | `` | Your user ID | `rob` or username | --- ## Sign-Off | Check | Date | Initials | |-------|------|----------| | All services running | | | | Collections healthy | | | | Capture working | | | | Curation working | | | | Recall working | | | --- *Last updated: 2026-02-25* *Version: 2.2 (Generic)*