BurningTimesAi/scripts/live_session_load.sh

64 lines
2.0 KiB
Bash
Raw Permalink Normal View History

#!/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
feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 PD님 2026-04-21 직접 지시 5개 중 1·2·4 이행. ## 집행 내역 1. git remote: NerdNavisAi.git → BurningTimesAi.git 교체 (BT main + 본 worktree) - E:/NerdNavisAi 레포 원격은 원상 유지 (실측 확인) 2. 중앙 저장소 A안 분리: ~/.claude/burningtimes-{live,memory,audit}/ - nerdnavis-* 중앙 저장소에서 cp -r 복사 (원본 미변경) - .junction-marker 내용 BT로 갱신 3. 본 worktree .live junction 재연결 → burningtimes-live 4. audit junction 3종 신설: .burningtimes_{auditor_calls,warning_ignored,bypass_log} 5. scripts·setup 28파일 하드코딩 일괄 치환 (nerdnavis/NerdNavis/너드나비스/NERDNAVIS → burningtimes/BurningTimes/BURNINGTIMES) 6. paths.local.json.template BT 전용 재작성 (Unity·Framework 경로 __TBD__ placeholder) 7. .gitignore: .live.bak_*/ 패턴 추가 ## 보류 항목 (PD 재논의 예정) - 3. memory/org/ 내용 초기화 (PD 지시) - 5. Unity 프로젝트 경로 (PD 신규 경로 제공 전까지) - SKILL.md·CLAUDE.md 조직명 전환 및 P17·P29 처리 - 프로젝트/수상한잡화점/ 등 수상한잡화점 관련 일괄 정리 - 코어코드/NerdNavis.Framework/ → BT-프레임워크 이름 전환 - 공유/조직공지/ 너드나비스 맥락 공지 처리 - .claude/agents/*.md frontmatter skills 참조명 ## 감사 pm-auditor 사전 감사 통과 (Critical 0건, Major 2건 commit 전 정정 완료). 매니페스트: bt-org-split-phase1 (C35-9 PreToolUse 차단 해제). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
THROTTLE_DIR="$HOME/.claude/.burningtimes_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