#!/bin/bash
# Session end: log end time + preserve session state
# NOTE: This script needs chmod +x to be executable
PROJECT_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
DATE=$(date +%Y-%m-%d)
TIME=$(date +%H:%M:%S)

# Log session end
echo "[$DATE $TIME] Session ended" >> "$PROJECT_DIR/agent-reports/.session-log"

# Mark session state as ended (if .session/ exists)
if [ -f "$PROJECT_DIR/.session/state.md" ]; then
    # Update status from active to ended
    # macOS sed requires '' after -i, Linux sed does not
    if [[ "$OSTYPE" == "darwin"* ]]; then
        sed -i '' "s/\*\*Status:\*\* active/**Status:** ended ($DATE $TIME)/" "$PROJECT_DIR/.session/state.md" 2>/dev/null
    else
        sed -i "s/\*\*Status:\*\* active/**Status:** ended ($DATE $TIME)/" "$PROJECT_DIR/.session/state.md" 2>/dev/null
    fi
fi

# Update checkpoint with end time
if [ -f "$PROJECT_DIR/.session/checkpoint.md" ]; then
    if [[ "$OSTYPE" == "darwin"* ]]; then
        sed -i '' "s/\*\*Last updated:\*\*.*/\*\*Last updated:\*\* $DATE $TIME (session ended)/" "$PROJECT_DIR/.session/checkpoint.md" 2>/dev/null
    else
        sed -i "s/\*\*Last updated:\*\*.*/\*\*Last updated:\*\* $DATE $TIME (session ended)/" "$PROJECT_DIR/.session/checkpoint.md" 2>/dev/null
    fi
fi

# NOTE: .session/ is NOT deleted on clean end.
# It persists so the next session can check for unfinished work.
# The next session-start.sh will archive it to .session.bak.<timestamp>/
