v0.1.54
v0.1.54 — 2D 대형 프로젝트 perf 3종 (top-level re-render 차단) + 패치노트 블로그 스타일
요청 1
- "2D 모드가 대형 프로젝트 일수록 버벅거림이 굉장히 심한데, 원활한 구동이 가능하도록 최적화"
요청 2
- "패치노트 페이지는 블로그 글 리스트 처럼 패치노트 리스트와 개별 페이지에서 패치 내역 확인가능하도록 구현"
Perf 핫스팟 (sub-agent 보고)
- 3종 모두 처리 — 근본 원인은 모든 file activity / agent event 가 top-level
Graph2DInner를 re-render 시키던 것: - 1. **Graph2D.tsx 의 activeMap / inUseMap 구독** —
useActivityStore((s) => s.activeMap)가 매 file activity 마다 새 객체 reference → top-level re-render → 5000+ nodes/edges 배열 reconciliation. 수정: length signature 만 구독 (Object.keys(...).length), RAF 안에서getState()단발 read. - 2. **useFlowParticleSpawner subscriptions** —
agentEvents/activeMap/lastTypeMap셋 다 직접 구독. 수정:agentEventsSig(length) /activeMapSig(Object.keys.length) 만 구독, effect 내부에서getState()로 실데이터 read. - 3. **HighlightedEdgesOverlay early-return** —
useRFStore구독이if (!selectedNodeId) return null보다 위에 있어 노드 선택 안 한 상태에서도 매setEdges()마다 5000+ edges 비교. 수정: outer gate 컴포넌트HighlightedEdgesOverlay가 selectedNodeId null 체크 후 innerHighlightedEdgesOverlayInner만 ReactFlow 구독. +connectedfilter useMemo 화.
변경 파일
src/components/Visualizer2D/Graph2D.tsx(3건)src/hooks/useFlowParticleSpawner.ts
패치노트 블로그 스타일
- (별도 web 커밋 + Cloudflare deploy 완료):
scripts/generateReleaseNotes.ts—writeReleaseDetailPages()+updateSitemap()추가web/release/index.html— 카드 리스트 페이지로 재설계web/release/v0.1.34/~v0.1.53/— 20개 개별 페이지 자동 생성 (헤더/네비/이전·다음/GitHub 링크)web/sitemap.xml— 20개 release URL 자동 추가
검증
npx tsc --noEmitexit=0.npm run build성공 — out/renderer/index-dMB59UzR.js 3,113.26kB.
📦 GitHub 릴리스 노트: v0.1.54