# task: 세션 복원력 시스템 Phase 2 — 전체 봇 실제 연동

## 작업 레벨: Lv.2
## 한정승인: 팀장이 전체 Phase 자율 진행

## 배경
task-1103.1 Phase 1에서 세션 복원력 시스템 코드가 완성되었으나, **실제 봇 세션에 연결되지 않은 상태**.
현재 상태: "엔진은 만들었는데 차에 안 달아놓은 것"

### Phase 1 산출물 (이미 구현됨)
- `utils/session_monitor.py` — SessionMonitor 클래스 (WARNING 70%, CRITICAL 85%)
- `utils/session_auto_compress.py` — 자동 압축 + 세션 요약 저장
- `dispatch.py --resume-from` — 요약 기반 세션 재시작
- 166 테스트 통과

## Phase 2 요구사항: 전체 봇 연동

### 연동 대상 (전체)
- **아누 (Anu)** — 개발실장 (autoset 봇)
- **헤르메스 (Hermes)** — 1팀 봇B
- **오딘 (Odin)** — 2팀 봇C
- **다그다 (Dagda)** — 3팀 봇D
- **비슈누 (Vishnu)** — 4팀 봇E
- **마르둑 (Marduk)** — 5팀 봇F
- **페룬 (Perun)** — 6팀 봇G
- **이참나 (Itzamna)** — 7팀 봇H
- **라 (Ra)** — 8팀 봇I
- **횡단조직 봇들** — 비너스, 아틀라스, 야누스, 마아트, 프로메테우스, 크로노스, 로키

### 구현 항목

#### 1. 봇 세션에 SessionMonitor 훅 연결
- 각 봇 세션이 시작될 때 SessionMonitor 초기화
- 토큰 사용량을 실시간 추적하는 메커니즘 구현
- **분석 필수**: 현재 봇 세션이 어떻게 시작되고 실행되는지 먼저 파악
  - cokacdir --cron으로 스케줄된 봇 세션의 라이프사이클
  - dispatch.py가 봇을 실행하는 방식
  - Claude Code의 토큰 사용량을 외부에서 감지하는 방법

#### 2. CRITICAL 임계값(85%) 도달 시 자동 대응
- 자동 압축: SessionAutoCompress.auto_compress() 호출
- 세션 요약 저장: `memory/sessions/summary-{task_id}-{timestamp}.md`
- 이벤트 로깅: `memory/events/session-compressed-{timestamp}.json`
- 압축 후에도 위험하면: 현재 작업 상태 저장 + 새 세션으로 이어하기 트리거

#### 3. 세션 이어하기 자동화
- CRITICAL에서 세션 종료 시:
  1. 작업 진행 상태 요약 자동 생성
  2. `dispatch.py --resume-from <summary_path>`로 새 세션 자동 시작
  3. 새 세션에서 이전 작업 이어서 진행
- 아누 세션: cokacdir --cron으로 자체 재스케줄

#### 4. 모니터링 & 알림
- 대시보드 연동: 각 봇의 현재 세션 토큰 사용률 표시 (가능하다면)
- WARNING(70%) 도달 시 로그 기록
- CRITICAL(85%) 도달 시 아누에게 이벤트 통보 (memory/events/)

## 참고 파일
- Phase 1 코드: `utils/session_monitor.py`, `utils/session_auto_compress.py`
- Phase 1 보고서: `memory/reports/task-1103.1.md`
- Phase 1 테스트: `tests/test_session_monitor.py`, `tests/test_session_auto_compress.py`, `tests/test_dispatch_resume.py`
- dispatch.py: `--resume-from` 파라미터 이미 구현됨
- 봇 설정: `bot_settings.json`
- 봇 실행 구조: `cokacdir` 명령어, dispatch.py

## 주의사항
- bot_settings.json의 모델 설정 직접 변경 금지
- 기존 Phase 1 테스트 166건 회귀 없어야 함
- 다른 팀 작업 파일 건드리지 말 것