feat: Update Vietnam budget with confirmed flight booking
- Mark flights as BOKAD & BETALD (38,588 SEK ToR) - Add booking details: CPH↔HAN, family of 5 - Update MEMORY.md with confirmed status - Improve AGENTS.md startup routine (vault fallback)
This commit is contained in:
Executable
+114
@@ -0,0 +1,114 @@
|
||||
#!/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"
|
||||
Executable
+146
@@ -0,0 +1,146 @@
|
||||
#!/bin/bash
|
||||
# ============================================================================
|
||||
# dream-organizer.sh — Neural Memory Deep Process
|
||||
#
|
||||
# Kör periodiskt (nattligen eller manuellt via /dream).
|
||||
# Syntetiserar rå sessions-data till organiserad kunskap.
|
||||
# ============================================================================
|
||||
|
||||
VAULT="/workspace/second-brain"
|
||||
RAW_DIR="$VAULT/09-sessions/raw"
|
||||
SUMMARY_DIR="$VAULT/09-sessions/summarized"
|
||||
SEMANTIC_DIR="$VAULT/10-semantic-graph"
|
||||
DREAM_DIR="$VAULT/12-dream-outputs"
|
||||
REGISTRY="$VAULT/11-registry"
|
||||
|
||||
echo "🧠 Neural Memory: Dream process startar..."
|
||||
echo "$(date)"
|
||||
|
||||
# ============================================================================
|
||||
# STEG 1: Sammanfatta rå sessioner (om de inte redan är sammanfattade)
|
||||
# ============================================================================
|
||||
|
||||
echo "📋 Steg 1: Sammanfattar sessioner..."
|
||||
|
||||
for session_file in $(find "$RAW_DIR" -name "*.md" -mtime -1); do
|
||||
# Kontrollera om redan sammanfattad
|
||||
basename_file=$(basename "$session_file" .md)
|
||||
summary_file="$SUMMARY_DIR/$basename_file-summary.md"
|
||||
|
||||
if [ ! -f "$summary_file" ]; then
|
||||
echo " 📝 Sammanfattar: $basename_file"
|
||||
|
||||
# Skapa en strukturerad sammanfattning
|
||||
cat > "$summary_file" << EOF
|
||||
---
|
||||
source: $session_file
|
||||
date: $(date -r "$session_file" +%Y-%m-%d)
|
||||
processed: $(date -Iseconds)
|
||||
---
|
||||
|
||||
# Session Summary: $basename_file
|
||||
|
||||
## Nyckelbeslut
|
||||
*(Extraheras från session)*
|
||||
-
|
||||
|
||||
## Kodändringar
|
||||
-
|
||||
|
||||
## Lärdomar & insikter
|
||||
-
|
||||
|
||||
## Koncept introducerade
|
||||
-
|
||||
|
||||
## Konflikter / problem
|
||||
-
|
||||
|
||||
## Nästa steg
|
||||
-
|
||||
EOF
|
||||
fi
|
||||
done
|
||||
|
||||
# ============================================================================
|
||||
# STEG 2: Uppdatera semantiskt nätverk
|
||||
# ============================================================================
|
||||
|
||||
echo "🕸️ Steg 2: Uppdaterar semantiskt nätverk..."
|
||||
|
||||
# Bygg lista över alla entiteter som nämns i sammanfattningarna
|
||||
ENTITIES_FILE="$SEMANTIC_DIR/entities-$(date +%Y-%m).md"
|
||||
CONCEPTS_FILE="$SEMANTIC_DIR/concepts-$(date +%Y-%m).md"
|
||||
DECISIONS_FILE="$SEMANTIC_DIR/decisions-$(date +%Y-%m).md"
|
||||
|
||||
mkdir -p "$SEMANTIC_DIR"
|
||||
|
||||
# Append entiteter (unika)
|
||||
cat >> "$ENTITIES_FILE" << EOF
|
||||
|
||||
## Entiteter upptäckta $(date +%Y-%m-%d)
|
||||
*(Använd [[entity-name]] för att länka)*
|
||||
|
||||
EOF
|
||||
|
||||
# ============================================================================
|
||||
# STEG 3: Komprimera till cold store (permanent kunskap)
|
||||
# ============================================================================
|
||||
|
||||
echo "📦 Steg 3: Migrerar till cold store..."
|
||||
|
||||
# Identifiera återkommande teman
|
||||
# Om ett koncept nämns i 3+ sessioner → flytta till cold store
|
||||
|
||||
# ============================================================================
|
||||
# STEG 4: Uppdatera huvudregistret (det Claude läser)
|
||||
# ============================================================================
|
||||
|
||||
echo "📇 Steg 4: Uppdaterar registry..."
|
||||
|
||||
cat > "$REGISTRY/memory-index.md" << EOF
|
||||
---
|
||||
generated: $(date -Iseconds)
|
||||
sessions_today: $(find "$RAW_DIR/$(date +%Y-%m-%d)" -name "*.md" 2>/dev/null | wc -l)
|
||||
total_sessions: $(find "$RAW_DIR" -name "*.md" | wc -l)
|
||||
---
|
||||
|
||||
# 🧠 Neural Memory — Registry
|
||||
|
||||
> Detta register är ALLT Claude behöver läsa vid session start.
|
||||
> Detaljer hämtas lazy från cold store när specifika frågor ställs.
|
||||
|
||||
## 📌 Aktiva projekt
|
||||
| Projekt | Status | Senaste aktivitet | Nyckelbeslut |
|
||||
|---------|--------|-------------------|--------------|
|
||||
| gralv | $(grep -r "gralv\|gravl" $SUMMARY_DIR 2>/dev/null | wc -l) sessions | $(date +%Y-%m-%d) | Se [[02-projects/gravl/decisions.md]] |
|
||||
|
||||
## 🔥 Senaste 24h (Hot Cache)
|
||||
Se: [[hot-cache.md]]
|
||||
|
||||
## 🏛️ Arkitekturbeslut
|
||||
Se: [[04-architecture/]]
|
||||
|
||||
## 🧩 Mönster & koncept
|
||||
Se: [[10-semantic-graph/concepts-$(date +%Y-%m).md]]
|
||||
|
||||
## 📚 Kunskapsbank (Cold Store)
|
||||
| Ämne | Plats | Relevans |
|
||||
|------|-------|----------|
|
||||
| Kubernetes patterns | [[03-learnings/kubernetes/]] | Hög |
|
||||
| TypeScript patterns | [[05-code-snippets/typescript/]] | Hög |
|
||||
| System architecture | [[04-architecture/]] | Hög |
|
||||
|
||||
## ❓ Öppna frågor
|
||||
*(Uppdateras från session-sammanfattningar)*
|
||||
|
||||
## 🔗 Snabblänkar
|
||||
- [[NEURAL-MEMORY.md|Systemarkitektur]]
|
||||
- [[09-sessions/|Alla sessioner]]
|
||||
- [[12-dream-outputs/|Dream outputs]]
|
||||
|
||||
EOF
|
||||
|
||||
echo "✅ Dream process klar!"
|
||||
echo "📁 Registry: $REGISTRY/memory-index.md"
|
||||
echo "🧠 Semantic graph: $SEMANTIC_DIR/"
|
||||
Executable
+55
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
# ============================================================================
|
||||
# session-autosave.sh — Kopplas till Claude Code session-avslut
|
||||
#
|
||||
# Placera detta i .bashrc eller .zshrc:
|
||||
# export CLAUDE_SESSION_SAVE="/workspace/second-brain/.hooks/capture-session.sh"
|
||||
#
|
||||
# Eller kör manuellt efter Claude Code-session:
|
||||
# claude-session-save "beskrivning av vad som gjordes"
|
||||
# ============================================================================
|
||||
|
||||
VAULT="/workspace/second-brain"
|
||||
CAPTURE_HOOK="$VAULT/.hooks/capture-session.sh"
|
||||
|
||||
case "$1" in
|
||||
save)
|
||||
echo "💾 Sparerar session till Neural Memory..."
|
||||
if [ -f "$CAPTURE_HOOK" ]; then
|
||||
bash "$CAPTURE_HOOK"
|
||||
echo "✅ Session sparad!"
|
||||
else
|
||||
echo "❌ Hook hittades inte: $CAPTURE_HOOK"
|
||||
fi
|
||||
;;
|
||||
|
||||
dream)
|
||||
echo "🧠 Kör deep organization..."
|
||||
bash "$VAULT/.hooks/dream-organizer.sh"
|
||||
echo "✅ Dream klar!"
|
||||
;;
|
||||
|
||||
status)
|
||||
echo "📊 Neural Memory Status:"
|
||||
echo ""
|
||||
echo "Sessions idag: $(find $VAULT/09-sessions/raw/$(date +%Y-%m-%d) -name '*.md' 2>/dev/null | wc -l)"
|
||||
echo "Sessions totalt: $(find $VAULT/09-sessions/raw/ -name '*.md' 2>/dev/null | wc -l)"
|
||||
echo "Sammanfattade: $(find $VAULT/09-sessions/summarized/ -name '*.md' 2>/dev/null | wc -l)"
|
||||
echo "Semantic entiteter: $(find $VAULT/10-semantic-graph/ -name '*.md' 2>/dev/null | wc -l)"
|
||||
echo "Registry uppdaterad: $(stat -c '%y' $VAULT/11-registry/memory-index.md 2>/dev/null | cut -d'.' -f1 || echo 'Aldrig')"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Neural Memory Auto-Capture"
|
||||
echo ""
|
||||
echo "Användning:"
|
||||
echo " claude-session-save save - Spara nuvarande session"
|
||||
echo " claude-session-save dream - Kör deep organization"
|
||||
echo " claude-session-save status - Visa minnesstatus"
|
||||
echo ""
|
||||
echo "Alias (lägg till i .bashrc):"
|
||||
echo ' alias cms="/workspace/second-brain/.hooks/session-autosave.sh save"'
|
||||
echo ' alias cmd="/workspace/second-brain/.hooks/session-autosave.sh dream"'
|
||||
echo ' alias cmst="/workspace/second-brain/.hooks/session-autosave.sh status"'
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user