#!/bin/bash # SessionStart hook — .claude/live/ 전량 로드 + 자동 비우기 (세션 시작 시) # 세션 재시작 시 원본이 새로 로드되므로 더미는 역할 완료 → 비우기 # 흐름: 더미 로드(알림) → 더미 삭제 → 증분 카운터 정리 REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) [ -z "$REPO_ROOT" ] && exit 0 LIVE_DIR="$REPO_ROOT/.live" [ ! -d "$LIVE_DIR" ] && exit 0 THROTTLE_DIR="$HOME/.claude/.nerdnavis_throttle" mkdir -p "$THROTTLE_DIR" 2>/dev/null OUTPUT="" TOTAL_CHARS=0 MAX_CHARS=8000 FILE_COUNT=0 for LIVE_FILE in "$LIVE_DIR"/*.md "$LIVE_DIR"/*.json; do [ ! -f "$LIVE_FILE" ] && continue BASENAME=$(basename "$LIVE_FILE") [ "$BASENAME" = "README.md" ] && continue CONTENT=$(head -c $MAX_CHARS "$LIVE_FILE" 2>/dev/null) CHARS=${#CONTENT} if [ "$CHARS" -gt 0 ] && [ $((TOTAL_CHARS + CHARS)) -lt $MAX_CHARS ]; then OUTPUT="$OUTPUT [LIVE:$BASENAME] $CONTENT " TOTAL_CHARS=$((TOTAL_CHARS + CHARS + 30)) FILE_COUNT=$((FILE_COUNT + 1)) # 증분 카운터를 현재 줄 수로 설정 (다음 턴부터 증분 추적) FILE_HASH=$(echo "$LIVE_FILE" | sha1sum 2>/dev/null | cut -d' ' -f1) TOTAL_LINES=$(wc -l < "$LIVE_FILE" 2>/dev/null || echo 0) echo "$TOTAL_LINES" > "$THROTTLE_DIR/live_lastline_$FILE_HASH" fi done if [ "$FILE_COUNT" -gt 0 ]; then echo "📝 [Live 세션 로드] ${FILE_COUNT}개 더미 파일:$OUTPUT" # 원본이 새로 로드되었으므로 더미 파일 자동 비우기 (README.md 제외) CLEANED=0 for LIVE_FILE in "$LIVE_DIR"/*.md "$LIVE_DIR"/*.json; do [ ! -f "$LIVE_FILE" ] && continue BASENAME=$(basename "$LIVE_FILE") [ "$BASENAME" = "README.md" ] && continue rm -f "$LIVE_FILE" 2>/dev/null && CLEANED=$((CLEANED + 1)) done # 증분 카운터도 정리 rm -f "$THROTTLE_DIR"/live_lastline_* 2>/dev/null if [ "$CLEANED" -gt 0 ]; then echo "🧹 [Live 정리] ${CLEANED}개 더미 파일 자동 삭제 완료 (원본 로드됨)" fi fi exit 0