--- name: 2차 마루이동 ridge 클릭불가 보강 description: useMovementSetting [type] effect 에서 roof.innerLines 외에 canvas 레벨 ridge 직접 조회로 selectable=true 보강 type: project --- 증상: 1차 마루이동 성공 → 2차 팝업 오픈 시 ridge 클릭해도 선택 안됨. mouseMove 마다 `[MV-TRACE] selectedObject.current=null → skip` 무한 발생. 원인: useMovementSetting `useEffect [type]` 에서 `roof.innerLines.forEach` 로 ridge selectable=true 설정. drawHelpLine 으로 ridge 재생성된 후 innerLines 가 stale 인 케이스에서 새 ridge 가 selectable=false 로 남음 → fabric selection:created 미발화 → currentObjectState/selectedObject.current null 유지. 수정: 기존 roof.innerLines 반복 경로는 그대로 두고(정상 케이스 유지), 그 직후 `canvas.getObjects().filter(name===RIDGE)` 로 ridge 직접 조회 → selectable=true 보강. 누락 시만 효과, 정상 시 동일 set 재호출로 부작용 없음. **Why:** 사용자 보고 "두번째는 마우스로 아무리 움직여도 마루이동이 안되는 경우가 있다". roof.innerLines 동기화 타이밍이 깨지는 케이스를 canvas 레벨 fallback 으로 흡수. **How to apply:** ridge 클릭→선택 동작이 다시 안되면 `useMovementSetting.js [type] useEffect` 의 canvas 레벨 ridge selectable 보강 블록 확인. 추가 라인 (onesideFlowRidge/yosemune) 도 마루이동 대상이라면 같은 자리에 추가.