#!/bin/bash # ============================================================================ # capture-session.sh — Neural Memory Hook # # Spara varje Claude Code/OpenClaw session automatiskt. # Körs efter varje session (manuellt eller via cron). # ============================================================================ VAULT="/workspace/second-brain" SESSIONS_DIR="$VAULT/09-sessions/raw" SUMMARY_DIR="$VAULT/09-sessions/summarized" REGISTRY="$VAULT/11-registry" # Skapa datumstruktur DATE=$(date +%Y-%m-%d) TIME=$(date +%H-%M-%S) SESSION_ID="${DATE}_${TIME}_$(openssl rand -hex 4)" SESSION_FILE="$SESSIONS_DIR/$DATE/$SESSION_ID.md" mkdir -p "$SESSIONS_DIR/$DATE" mkdir -p "$SUMMARY_DIR/$DATE" mkdir -p "$REGISTRY" echo "📡 Neural Memory: Capturing session $SESSION_ID..." # ============================================================================ # 1. EXTRAHERA SESSION-DATA (från Claude Code history) # ============================================================================ cat > "$SESSION_FILE" << 'HEADER' --- id: SESSION_ID date: DATE time: TIME type: session_capture agents: [] topics: [] decisions: [] --- # Session: DATE TIME ## Sammanfattning *(Fylls i av Claude vid bearbetning)* ## Beslut tagna *(Lista med beslutsnummer)* ## Kod ändrad *(Filändringar)* ## Lärdomar *(Nya insikter)* ## Frågor obesvarade *(Blockers, TODOs)* ## Rå data ``` $(cat /tmp/claude-session-$SESSION_ID.log 2>/dev/null || echo "No raw log found") ``` HEADER # Ersätt placeholders sed -i "s/SESSION_ID/$SESSION_ID/g" "$SESSION_FILE" sed -i "s/DATE/$DATE/g" "$SESSION_FILE" sed -i "s/TIME/$TIME/g" "$SESSION_FILE" # ============================================================================ # 2. UPPDATERA REGISTRY (Index över senaste aktivitet) # ============================================================================ echo "📝 Uppdaterar registry..." # Hitta alla sessionsfiler för idag LATEST_SESSIONS=$(find "$SESSIONS_DIR/$DATE" -name "*.md" -mmin -60 | sort | tail -5) # Uppdatera "hot cache" — vad som hände nyligen cat > "$REGISTRY/hot-cache.md" << EOF --- updated: $(date -Iseconds) --- # 🔥 Hot Cache — Senaste aktivitet ## Sessioner idag ($DATE) EOF for session in $LATEST_SESSIONS; do basename "$session" >> "$REGISTRY/hot-cache.md" done cat >> "$REGISTRY/hot-cache.md" << EOF ## Öppna frågor / blockers *(Uppdateras från session-sammanfattningar)* ## Nyligen lärda koncept *(Dras från semantic graph)* EOF # ============================================================================ # 3. NOTIFIERA OM VARNING # ============================================================================ SESSION_COUNT=$(find "$SESSIONS_DIR/$DATE" -name "*.md" | wc -l) if [ "$SESSION_COUNT" -gt 10 ]; then echo "⚠️ Många sessioner idag ($SESSION_COUNT). Kör dream-sync för att organisera." fi echo "✅ Session sparad: $SESSION_FILE" echo "📊 Registry uppdaterad: $REGISTRY/hot-cache.md"