Rust core: - Cap'n Proto append-only storage (nodes + relations) - Graph algorithms: clustering coefficient, community detection, schema fit, small-world metrics, interference detection - BM25 text similarity with Porter stemming - Spaced repetition replay queue - Commands: search, init, health, status, graph, categorize, link-add, link-impact, decay, consolidate-session, etc. Python scripts: - Episodic digest pipeline: daily/weekly/monthly-digest.py - retroactive-digest.py for backfilling - consolidation-agents.py: 3 parallel Sonnet agents - apply-consolidation.py: structured action extraction + apply - digest-link-parser.py: extract ~400 explicit links from digests - content-promotion-agent.py: promote episodic obs to semantic files - bulk-categorize.py: categorize all nodes via single Sonnet call - consolidation-loop.py: multi-round automated consolidation Co-Authored-By: Kent Overstreet <kent.overstreet@linux.dev>
27 lines
805 B
Bash
Executable file
27 lines
805 B
Bash
Executable file
#!/bin/bash
|
|
# Daily memory metrics check — runs from cron, notifies if attention needed
|
|
#
|
|
# Cron entry (add with crontab -e):
|
|
# 0 9 * * * /home/kent/poc/memory/scripts/daily-check.sh
|
|
|
|
set -euo pipefail
|
|
|
|
REPORT=$(poc-memory daily-check 2>&1)
|
|
|
|
# Always log
|
|
echo "$(date -Iseconds) $REPORT" >> ~/.claude/memory/daily-check.log
|
|
|
|
# Notify if attention needed
|
|
if echo "$REPORT" | grep -q "needs attention"; then
|
|
# Send via telegram
|
|
if [ -x ~/.claude/telegram/send.sh ]; then
|
|
~/.claude/telegram/send.sh "Memory daily check:
|
|
$REPORT"
|
|
fi
|
|
|
|
# Also leave a notification file for the idle timer
|
|
NOTIF_DIR=~/.claude/notifications
|
|
mkdir -p "$NOTIF_DIR"
|
|
echo "$(date -Iseconds) Memory needs consolidation — run poc-memory consolidate-session" \
|
|
>> "$NOTIF_DIR/memory"
|
|
fi
|