# v0.1.371 — QA-105 Gizmo 오프셋 + QA-088 모두접기 재탈락 fix

- 버전: v0.1.371
- 날짜: 2026-05-24
- 다운로드: [factory00-windows-x64-v0.1.371.zip](../../downloads/factory00-windows-x64-v0.1.371.zip) (169 MB)
- 캡처: [qa-screenshots/v0.1.371/](../../qa-screenshots/v0.1.371/)

---

## v0.1.371 핵심 fix
### QA-105 Gizmo 위치 오프셋 (PM v0.1.367 회귀 보고)
- **root cause 확정**: Visualizer GameObject가 Part.cachedTransform 자식 → `ComputePartBounds` 안 `GetComponentsInChildren<Renderer>(true)`이 Visualizer mesh 포함 → bounds center 이동 → Gizmo 위치 오프셋
- **fix**: 신규 marker `Factory00.Core.PartBoundsExclude` (`Assets/Scripts/Core/PartBoundsExclude.cs`, 5라인) + ComputePartBounds 안 `GetComponentInParent<PartBoundsExclude>() != null` skip 가드
- **적용 위치 3건**:
  - `ActuatorDriver.cs` L48 (PneumaticStrokeBar visualizer)
  - `Sensors/PhotoSensorVisualizer.cs` L55 (LineRenderer cone)
  - `Actuators/PneumaticStrokeBarVisualizer.cs` L79 (LineRenderer bar)
### QA-088 모두접기 v0.1.367 재탈락 fix
- **root cause**: v0.1.358 fix `RefreshItems()` 만 호출 → ListView row의 bindItem이 cached `_foldExpanded` state 사용 → fold triangle (▸/▾) visual 갱신 안 됨
- **fix**: `RefreshItems()` → `Rebuild()` 교체 (모든 row 재생성으로 fold triangle 강제 재렌더)
## 영향 파일
- `Assets/Scripts/Core/PartBoundsExclude.cs` 신규 (5라인)
- `Factory00Bootstrap.cs` ComputePartBounds skip 가드 + collapseAllAction Rebuild (~6라인)
- `ActuatorDriver.cs` + `PhotoSensorVisualizer.cs` + `PneumaticStrokeBarVisualizer.cs` AddComponent 3건 (3라인)
## Stage 2 검증 (사용자/PM PC)
1. v0.1.371 zip → factory00.exe
2. **QA-105**: 부품 선택 → 부품/컴포넌트 > Add Sensor (또는 Pneumatic) → Gizmo 위치 정합 확인 (오프셋 0)
3. **QA-088**: 부품 트리 펼친 상태 → 부품 리스트 헤더 모두접기 click → 트리 즉시 collapse + 토스트
