BurningTimesAi/scripts/live_session_load.sh

48 lines
1.4 KiB
Bash

#!/bin/bash
# SessionStart hook — .claude/live/ 전량 로드 (세션 시작 시)
# 세션 시작 시점에 모든 live 더미 파일을 읽어서 컨텍스트에 주입
# 증분 카운터도 리셋하여 다음 턴부터 증분 추적 시작
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
[ -z "$REPO_ROOT" ] && exit 0
LIVE_DIR="$REPO_ROOT/.claude/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"
fi
exit 0