#!/bin/bash # Save session context on stop for restoration in next session # Event: Stop # Saves: branch, modified files, recent commits, phase SESSION_DIR="${CLAUDE_PROJECT_DIR:-.}/.claude/sessions" mkdir -p "$SESSION_DIR" SESSION_FILE="$SESSION_DIR/latest.json" # Gather session state BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown") MODIFIED=$(git diff --name-only 2>/dev/null | head -20 | jq -R -s 'split("\n") | map(select(. != ""))') STAGED=$(git diff --cached --name-only 2>/dev/null | head -20 | jq -R -s 'split("\n") | map(select(. != ""))') RECENT_COMMITS=$(git log --oneline -5 2>/dev/null | jq -R -s 'split("\n") | map(select(. != ""))') PHASE=$(grep -m1 'Current Phase' "${CLAUDE_PROJECT_DIR:-.}/docs/phases-plan.md" 2>/dev/null || echo "unknown") TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ") # Write session file cat > "$SESSION_FILE" << ENDJSON { "timestamp": "$TIMESTAMP", "branch": "$BRANCH", "phase": "$PHASE", "modified_files": $MODIFIED, "staged_files": $STAGED, "recent_commits": $RECENT_COMMITS } ENDJSON exit 0