v0.1.35
v0.1.35 릴리즈 — claudeSessionWatcher scanRange 청크 분할 (main process freeze fix)
배경
- v0.1.33 (renderer 측 batch) + v0.1.34 (Graph2D 노드 재계산 분리) 둘 다로도 3D / 2D 둘 다 먹통 — **메인 프로세스 자체가 정지**. UI 가 OS 레벨 "응답 없음".
근본 원인
- (deeper analysis):
claudeSessionWatcher.scanRange()가 250ms 후 historical 청크 (각 jsonl 의 마지막 256KB) 를 **동기적으로 한 번에** 처리.- 100KB JSON 라인이 수천 줄 → JSON.parse + handleMessage (MCP / Bash / Edit 분류 + emit) 가 메인 프로세스를 수 초간 점유.
- Electron 메인 프로세스가 막히면 BrowserWindow 자체가 응답 안 함 (렌더러뿐 아니라 윈도우 입력도).
- v0.1.33/34 의 fix 는 모두 **렌더러 측** — 메인 프로세스 이슈는 그대로 남아 있었음.
변경 파일
scanRange가 라인을 500개씩 청크로 분할하여setImmediate로 다음 청크 스케줄.- 한 청크 처리 사이에 이벤트 루프가 다른 작업 (IPC, 윈도우 입력) 을 처리할 수 있음 → 메인 프로세스 응답 유지.
generation체크로 탭 전환 시 진행 중인 청크 처리도 즉시 중단.- 결과: 10K+ 라인 historical 도 100ms~ 청크씩 처리되어 UI 멈춤 없음.
시각적 효과
- Electron 앱 실행 + 프로젝트 로드 후 화면 안 사라짐. claude historical 데이터가 백그라운드로 천천히 흘러들어옴.
- 메인 프로세스가 막히지 않아 윈도우 드래그 / 최소화 / 클릭 모두 즉시 응답.
버전
- 0.1.34 → 0.1.35.
검증
npx tsc --noEmitexit=0.
남은 후속
- Supabase WS realtime, Vercel/GA4 분석.
📦 GitHub 릴리스 노트: v0.1.35