TrueRecall v2 - Master Audit Checklist (GIT)
For: .git_projects/true-recall-v2/ (Git Repository - Sanitized)
Version: 2.2
Last Updated: 2026-02-25 10:07 CST
Overview
This checklist validates the git repository where all private IPs, absolute paths, and credentials have been sanitized. Use this before pushing to public repositories.
Related Files:
GIT_VALIDATION_CHECK.md - Comprehensive git validation checklist
LOCAL_VALIDATION_CHECK.md - Local dev validation (in .local_projects/)
VALIDATION_NOTES.md - Auto-generated validation findings
Recent Fixes (2026-02-25)
| Issue |
Status |
Fix |
| Embedding model mismatch |
✅ Fixed |
Changed curator to snowflake-arctic-embed2 |
| Gems had no vectors |
✅ Fixed |
Updated store_gem() to use text field |
| JSON parsing errors |
✅ Fixed |
Simplified extraction prompt |
| Watcher stuck on old session |
✅ Fixed 12:22 |
Restarted watcher service |
| Plugin capture 0 exchanges |
✅ Fixed 12:34 |
Added extractMessageText() for array content |
| Plugin exchanges working |
✅ Verified 12:41 |
9 exchanges extracted per session |
| HTML comments in UI |
✅ Fixed 14:02 |
Changed formatRelevantMemoriesContext to clean text format |
| prependContext vs systemPrompt |
✅ Fixed 14:02 |
Changed hook return from prependContext to systemPrompt for hidden injection |
| TypeScript source not updated |
✅ Fixed 14:02 |
Updated .ts file, not just compiled .js |
Today's Issues Found (2026-02-25)
| # |
Issue |
Description |
Status |
Priority |
| 1 |
HTML comments visible in UI |
\u003c!-- relevant-memories-start --\u003e blocks showing in chat |
✅ FIXED |
High |
| 2 |
Memory injection format |
Was using HTML comment format, now clean "Memory Injection:" text |
✅ FIXED |
High |
| 3 |
prependContext vs systemPrompt |
Plugin was using prependContext (visible in user message) instead of systemPrompt (hidden in system prompt) |
✅ FIXED |
High |
| 4 |
TypeScript source not updated |
OpenClaw compiles from .ts, was editing .js only |
✅ FIXED |
High |
| 5 |
Gateway restart issues |
kill/killall not working reliably |
✅ FIXED |
Medium |
| 6 |
README needs update |
TrueRecall v2 is standalone, not addon to Jarvis Memory |
✅ FIXED |
Medium |
Needed Improvements (Carryover)
| Issue |
Description |
Priority |
| Semantic Deduplication |
No dedup between similar gems. Same fact phrased differently creates multiple gems. |
High |
| Search Result Deduplication |
Similar gems both injected, causing redundancy. |
Medium |
| Gem Quality Scoring |
No quality metric for gems. |
Medium |
| Temporal Decay |
All gems treated equally regardless of age. |
Low |
| Gem Merging/Updating |
Old gems not updated when preferences change. |
Low |
| Importance Calibration |
All curator gems marked "medium" importance. |
Low |
SECTION 1: System Requirements
1.1 Python Environment
| # |
Check |
Command |
Expected |
Status |
| 1.1.1 |
Python version |
python3 --version |
3.8+ |
☐ |
| 1.1.2 |
pip available |
pip3 --version |
Working |
☐ |
| 1.1.3 |
curl available |
curl --version |
Working |
☐ |
| 1.1.4 |
jq available |
jq --version |
Working |
☐ |
1.2 Network Services
| # |
Check |
Command |
Expected |
Status |
| 1.2.1 |
Qdrant reachable |
curl -s http://<QDRANT_IP>:6333 |
Returns version |
☐ |
| 1.2.2 |
Ollama reachable |
curl -s http://<OLLAMA_IP>:11434/api/tags |
Returns models |
☐ |
| 1.2.3 |
Redis reachable |
redis-cli -h <REDIS_IP> ping |
PONG |
☐ |
| 1.2.4 |
Kokoro reachable |
curl -s http://<KOKORO_IP>:8880 |
200 OK |
☐ |
1.3 OpenClaw
| # |
Check |
Command |
Expected |
Status |
| 1.3.1 |
Gateway status |
openclaw gateway status |
Active |
☐ |
| 1.3.2 |
Config valid |
openclaw doctor |
No errors |
☐ |
| 1.3.3 |
Plugin loaded |
`openclaw status |
grep memory-qdrant` |
Enabled |
SECTION 2: Project Files (Local)
2.1 Core Files Exist
| # |
File |
Path |
Status |
| 2.1.1 |
README.md |
.local_projects/true-recall-v2/README.md |
☐ |
| 2.1.2 |
session.md |
.local_projects/true-recall-v2/session.md |
☐ |
| 2.1.3 |
checklist.md |
.local_projects/true-recall-v2/checklist.md |
☐ |
| 2.1.4 |
curator-prompt.md |
.local_projects/true-recall-v2/curator-prompt.md |
☐ |
2.2 Scripts Exist
| # |
File |
Path |
Status |
| 2.2.1 |
curator_timer.py |
.local_projects/true-recall-v2/tr-continuous/curator_timer.py |
☐ |
| 2.2.2 |
curator_config.json |
.local_projects/true-recall-v2/tr-continuous/curator_config.json |
☐ |
| 2.2.3 |
install.py |
.local_projects/true-recall-v2/install.py |
☐ |
2.3 Watcher Files
| # |
File |
Path |
Status |
| 2.3.1 |
realtime_qdrant_watcher.py |
skills/qdrant-memory/scripts/realtime_qdrant_watcher.py |
☐ |
| 2.3.2 |
mem-qdrant-watcher.service |
/etc/systemd/system/mem-qdrant-watcher.service |
☐ |
SECTION 3: Configuration Validation
3.1 curator_config.json
| # |
Setting |
Key |
Expected |
Status |
| 3.1.1 |
Timer minutes |
timer_minutes |
5 |
☐ |
| 3.1.2 |
Batch size |
max_batch_size |
100 |
☐ |
| 3.1.3 |
User ID |
user_id |
rob |
☐ |
| 3.1.4 |
Source collection |
source_collection |
memories_tr |
☐ |
| 3.1.5 |
Target collection |
target_collection |
gems_tr |
☐ |
3.2 openclaw.json Plugin Config
| # |
Setting |
Key |
Expected |
Status |
| 3.2.1 |
Qdrant URL |
qdrantUrl |
http://<QDRANT_IP>:6333 |
☐ |
| 3.2.2 |
Ollama URL |
ollamaUrl |
http://<OLLAMA_IP>:11434 |
☐ |
| 3.2.3 |
Embedding model |
embeddingModel |
snowflake-arctic-embed2 |
☐ |
| 3.2.4 |
Capture collection |
captureCollection |
memories_tr |
☐ |
| 3.2.5 |
Recall collection |
collectionName |
gems_tr |
☐ |
| 3.2.6 |
Auto capture |
autoCapture |
true |
☐ |
| 3.2.7 |
Auto recall |
autoRecall |
true |
☐ |
SECTION 4: Qdrant Collections
4.1 Collection Status
| # |
Check |
Command |
Expected |
Status |
| 4.1.1 |
memories_tr exists |
`curl -s http://<QDRANT_IP>:6333/collections/memories_tr |
jq .result.status` |
green |
| 4.1.2 |
gems_tr exists |
`curl -s http://<QDRANT_IP>:6333/collections/gems_tr |
jq .result.status` |
green |
| 4.1.3 |
memories_tr points |
`curl -s http://<QDRANT_IP>:6333/collections/memories_tr |
jq .result.points_count` |
12000+ |
| 4.1.4 |
gems_tr points |
`curl -s http://<QDRANT_IP>:6333/collections/gems_tr |
jq .result.points_count` |
70+ |
4.2 Data Integrity
| # |
Check |
Command |
Expected |
Status |
| 4.2.1 |
Uncurated count |
Count curated: false |
1500+ |
☐ |
| 4.2.2 |
Curated count |
Count curated: true |
11000+ |
☐ |
| 4.2.3 |
Can write points |
Test insert |
Success |
☐ |
| 4.2.4 |
Can read points |
Test query |
Success |
☐ |
SECTION 5: Services
5.1 Watcher Service
| # |
Check |
Command |
Expected |
Status |
| 5.1.1 |
Service loaded |
`systemctl status mem-qdrant-watcher |
grep Loaded` |
loaded |
| 5.1.2 |
Service active |
systemctl is-active mem-qdrant-watcher |
active |
☐ |
| 5.1.3 |
Service enabled |
systemctl is-enabled mem-qdrant-watcher |
enabled |
☐ |
| 5.1.4 |
Process running |
pgrep -f realtime_qdrant_watcher |
PID exists |
☐ |
| 5.1.5 |
Logs available |
journalctl -u mem-qdrant-watcher -n 5 |
Recent entries |
☐ |
5.2 Timer Curator
| # |
Check |
Command |
Expected |
Status |
| 5.2.1 |
Cron job exists |
`crontab -l |
grep true-recall` |
Entry present |
| 5.2.2 |
Cron interval |
Visual check |
*/5 * * * * |
☐ |
| 5.2.3 |
Log file exists |
ls -la /var/log/true-recall-timer.log |
File exists |
☐ |
| 5.2.4 |
Recent activity |
tail -5 /var/log/true-recall-timer.log |
Recent timestamp |
☐ |
| 5.2.5 |
Script executable |
test -x curator_timer.py |
Yes |
☐ |
SECTION 6: Function Tests
6.1 Capture Test
| # |
Step |
Expected |
Status |
| 6.1.1 |
Send test message |
Message captured |
☐ |
| 6.1.2 |
Wait 10 seconds |
Processing time |
☐ |
| 6.1.3 |
Check memories_tr count |
Increased by 2 |
☐ |
| 6.1.4 |
Verify content |
Content matches |
☐ |
6.2 Curation Test
| # |
Step |
Expected |
Status |
| 6.2.1 |
Note uncurated count |
Baseline |
☐ |
| 6.2.2 |
Run curator manually |
Completes |
☐ |
| 6.2.3 |
Check gems_tr |
New gems added |
☐ |
| 6.2.4 |
Verify curated flag |
Marked true |
☐ |
6.3 Recall Test
| # |
Step |
Expected |
Status |
| 6.3.1 |
Start new conversation |
Context loaded |
☐ |
| 6.3.2 |
Send relevant query |
Gems injected |
☐ |
| 6.3.3 |
Verify injection |
Context visible |
☐ |
SECTION 7: Error Checks
7.1 Common Errors
| # |
Error |
Check |
Fix |
Status |
| 7.1.1 |
Qdrant unreachable |
curl http://<QDRANT_IP>:6333 |
Start Qdrant |
☐ |
| 7.1.2 |
Ollama unreachable |
curl http://<OLLAMA_IP>:11434 |
Start Ollama |
☐ |
| 7.1.3 |
Watcher not running |
systemctl status mem-qdrant-watcher |
Restart service |
☐ |
| 7.1.4 |
Curator not running |
tail /var/log/true-recall-timer.log |
Check cron |
☐ |
| 7.1.5 |
No gems extracted |
Check config.json |
Verify model |
☐ |
7.2 Log Analysis
| # |
Log |
Location |
Check For |
Status |
| 7.2.1 |
Watcher log |
journalctl -u mem-qdrant-watcher |
Errors, crashes |
☐ |
| 7.2.2 |
Curator log |
/var/log/true-recall-timer.log |
Failures, 0 gems |
☐ |
| 7.2.3 |
OpenClaw log |
/tmp/openclaw/openclaw-*.log |
Plugin errors |
☐ |
| 7.2.4 |
System log |
journalctl -n 50 |
Service failures |
☐ |
SECTION 8: Security (Local - Expected)
8.1 Private Info (Acceptable in Local)
| # |
Item |
Location |
Expected |
Status |
| 8.1.1 |
Private IPs |
Scripts |
10.0.0.x |
✅ OK |
| 8.1.2 |
Absolute paths |
Scripts |
/root/... |
✅ OK |
| 8.1.3 |
Usernames |
Config |
rob |
✅ OK |
| 8.1.4 |
Internal URLs |
Config |
http://10.0.0.x |
✅ OK |
8.2 Credentials (Should NOT Be in Code)
| # |
Check |
Command |
Expected |
Status |
| 8.2.1 |
No tokens in .py |
grep -r "token" *.py |
Only env vars |
☐ |
| 8.2.2 |
No passwords |
grep -r "password" *.py |
None found |
☐ |
| 8.2.3 |
No API keys |
grep -rE "[a-zA-Z0-9]{32,}" *.py |
None found |
☐ |
| 8.2.4 |
.git/config clean |
`cat .git/config |
grep url` |
No tokens |
SECTION 9: Sync Check (Local vs Git)
9.1 Compare Directories
| # |
Check |
Command |
Expected |
Status |
| 9.1.1 |
File count match |
Compare .local_projects/ vs .git_projects/ |
Similar |
☐ |
| 9.1.2 |
Key files exist |
README, session, checklist in both |
Yes |
☐ |
| 9.1.3 |
Scripts in git |
curator_timer.py in git |
Yes |
☐ |
| 9.1.4 |
Config in git |
curator_config.json in git |
Yes |
☐ |
9.2 Sanitization Verification
| # |
Check |
Local |
Git |
Status |
| 9.2.1 |
IPs in local |
10.0.0.x |
✅ Expected |
- |
| 9.2.2 |
IPs in git |
Placeholders |
✅ Expected |
- |
| 9.2.3 |
Paths in local |
/root/... |
✅ Expected |
- |
| 9.2.4 |
Paths in git |
~/... |
✅ Expected |
- |
10. Recent Fixes to Verify (2026-02-25)
Plugin Memory Format Fix
Status: ✅ FIXED
Summary:
- Changed
formatRelevantMemoriesContext from HTML comment format to clean text
- Changed hook return from
prependContext to systemPrompt (hides from UI)
- Updated both TypeScript source (
.ts) and compiled JavaScript (.js)
Files Modified:
<OPENCLAW_PATH>/extensions/memory-qdrant/index.ts
<OPENCLAW_PATH>/extensions/memory-qdrant/index.js
What Changed:
Verification Checklist:
Pending Updates
| # |
Item |
Description |
Status |
| 1 |
README update |
Clarify v2 is standalone, not addon |
✅ FIXED |
| 2 |
Comparison table |
Update v2 vs Jarvis vs v1 |
✅ FIXED |
Sign-Off
| Role |
Name |
Date |
Signature |
| Auditor |
|
|
|
| Developer |
|
|
|
| Reviewer |
|
|
|
Quick Commands Reference
This checklist is for LOCAL working directory validation only.
For git/public checks, see audit_checklist.md in .git_projects/true-recall-v2/