v0.1.40
v0.1.40 — React #310 hooks 위반 fix (AgentRoster/AgentFollowPanel/PortsPanel)
배경
- v0.1.39 의 AppErrorBoundary 가 처음으로 에러를 catch —
Minified React error #310("Rendered more hooks than during the previous render"). 사용자 보고: "프로젝트 불러온 후 오류". 스택 trace 가AgentRoster→App→AppErrorBoundary.
근본 원인
- 컴포넌트 세 곳에서 **early return 이후에 hook 호출** — React Rules of Hooks 위반. 데이터가 비어있다가 채워지는 순간 hook 카운트가 바뀜.
AgentRoster.tsxline 96:if (avatars.length === 0) return null;→ line 101:useViewStore((s) => s.setAgentRosterAsTab).AgentFollowPanel.tsxline 213:if (!followedAgent || !last) return null;→ line 227:useViewStore((s) => s.setWorkTrackingAsTab).PortsPanel.tsxline 106:if (!snapshot) return null;→ line 111:useViewStore((s) => s.setPortsAsTab).
변경 파일
- 세 컴포넌트 모두 hook 을 early return 위로 이동. 주석으로 이유 명시.
src/components/Avatars/AgentRoster.tsxsrc/components/Avatars/AgentFollowPanel.tsxsrc/components/Layout/PortsPanel.tsx
검증 후속
- 자동 검색으로 다른 위반 케이스 추가 발견 없음 (sub agent 가 src/ 전체
.tsx45개 스캔). AppErrorBoundary가 정상 발화 + Discord webhook 로react-error-boundary트리거 전송 확인 — v0.1.39 인프라가 의도대로 동작.
검증
npx tsc --noEmitexit=0.npm run build성공.
📦 GitHub 릴리스 노트: v0.1.40