38 lines
1.1 KiB
Bash
38 lines
1.1 KiB
Bash
#!/bin/bash
|
|
# SessionStart Hook - Load previous context on new session
|
|
#
|
|
# Runs when a new Claude session starts. Checks for recent session
|
|
# files and notifies Claude of available context to load.
|
|
#
|
|
# Hook config (in ~/.claude/settings.json):
|
|
# {
|
|
# "hooks": {
|
|
# "SessionStart": [{
|
|
# "matcher": "*",
|
|
# "hooks": [{
|
|
# "type": "command",
|
|
# "command": "~/.claude/hooks/memory-persistence/session-start.sh"
|
|
# }]
|
|
# }]
|
|
# }
|
|
# }
|
|
|
|
SESSIONS_DIR="${HOME}/.claude/sessions"
|
|
LEARNED_DIR="${HOME}/.claude/skills/learned"
|
|
|
|
# Check for recent session files (last 7 days)
|
|
recent_sessions=$(find "$SESSIONS_DIR" -name "*.tmp" -mtime -7 2>/dev/null | wc -l | tr -d ' ')
|
|
|
|
if [ "$recent_sessions" -gt 0 ]; then
|
|
latest=$(ls -t "$SESSIONS_DIR"/*.tmp 2>/dev/null | head -1)
|
|
echo "[SessionStart] Found $recent_sessions recent session(s)" >&2
|
|
echo "[SessionStart] Latest: $latest" >&2
|
|
fi
|
|
|
|
# Check for learned skills
|
|
learned_count=$(find "$LEARNED_DIR" -name "*.md" 2>/dev/null | wc -l | tr -d ' ')
|
|
|
|
if [ "$learned_count" -gt 0 ]; then
|
|
echo "[SessionStart] $learned_count learned skill(s) available in $LEARNED_DIR" >&2
|
|
fi
|