Files
true-recall-gems/function_check.md
root 87a390901d Update docs: watcher fix, plugin capture fix (2026-02-25)
- Fixed watcher stuck on old session bug (restarted service)
- Fixed plugin capture 0 exchanges (added extractMessageText for OpenAI content arrays)
- Updated README, session.md, function_check.md, audit_checklist.md
- Verified: 9 exchanges captured per session
2026-02-25 12:45:27 -06:00

5.6 KiB

TrueRecall v2 - Function Check (GENERIC)

Quick validation checklist for TrueRecall v2 setup

For: Generic installation (sanitized)
Version: 2.2


Quick Status Check

cd ~/<PROJECT_PATH>/true-recall-v2

1. Directory Structure

Check Command Expected
Project exists ls ~/<PROJECT_PATH>/true-recall-v2 Files listed
Watcher script ls <SKILL_PATH>/qdrant-memory/scripts/realtime_qdrant_watcher.py File exists

Paths:

  • Project: ~/<PROJECT_PATH>/true-recall-v2/
  • Watcher: <SKILL_PATH>/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://<QDRANT_IP>:6333/collections/memories_tr | jq .result.status green
gems_tr status curl -s http://<QDRANT_IP>:6333/collections/gems_tr | jq .result.status green
memories_tr count curl -s http://<QDRANT_IP>:6333/collections/memories_tr | jq .result.points_count 1000+
gems_tr count curl -s http://<QDRANT_IP>:6333/collections/gems_tr | jq .result.points_count 10+

Qdrant:

  • URL: http://<QDRANT_IP>: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://<QDRANT_IP>:6333/collections/memories_tr | jq .result.points_count
4 Verify memory has user_id user_id: "<YOUR_USER_ID>" in payload
5 Verify memory has curated=false curated: false in payload

Watcher:

  • Script: <SKILL_PATH>/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 <SKILL_PATH>/qdrant-memory/scripts/realtime_qdrant_watcher.py
Curator script <PROJECT_PATH>/true-recall-v2/tr-continuous/curator_timer.py
Config file <PROJECT_PATH>/true-recall-v2/tr-continuous/curator_config.json
Log file /var/log/true-recall-timer.log

9. Quick Commands Reference

# Check all services
systemctl status mem-qdrant-watcher --no-pager
tail -20 /var/log/true-recall-timer.log

# Check Qdrant collections
curl -s http://<QDRANT_IP>:6333/collections/memories_tr | jq '{status: .result.status, points: .result.points_count}'
curl -s http://<QDRANT_IP>:6333/collections/gems_tr | jq '{status: .result.status, points: .result.points_count}'

# Check uncurated memories
curl -s -X POST http://<QDRANT_IP>:6333/collections/memories_tr/points/count \
  -d '{"filter":{"must":[{"key":"user_id","match":{"value":"<YOUR_USER_ID>"}},{"key":"curated","match":{"value":false}}]}}' | jq .result.count

# Run curator manually
cd ~/<PROJECT_PATH>/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
<QDRANT_IP> Your Qdrant IP 10.0.0.40 or localhost
<OLLAMA_IP> Your Ollama IP 10.0.0.10 or localhost
<PROJECT_PATH> Your project path .local_projects or .projects
<SKILL_PATH> Your skills path ~/.openclaw/workspace/skills
<YOUR_USER_ID> 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)