# v0.1.549 — QA-116 반복 STEP import 부모 Part id 충돌 fix (import 세션 unique prefix)

- 버전: v0.1.549
- 날짜: 2026-06-04
- 다운로드: [factory00-windows-x64-v0.1.549.zip](../../downloads/factory00-windows-x64-v0.1.549.zip) (170 MB)
- 캡처: [qa-screenshots/v0.1.549/](../../qa-screenshots/v0.1.549/)

---

## 협업자 QA-116 (STEP import 반복 시 부모 중복 등록 + 부모 선택 시 동일 도면 전체 기즈모 동조 — v0.1.389 발견, 진짜 미처리)
- root cause(코드 확정): GltfPartImporter.MakeId 는 계층 경로 `name#siblingIndex` 로 id 생성 — 단일 import 내에서만 unique. ImportGlbAsync 가 `BuildParts(root.transform)` 를 idPrefix="" 기본값으로 호출 → 같은 도면 재import 시 root=`new GameObject(fileName)`(동일 fileName) → 부모 Part id 충돌. 증상 1=Parts.AddRange 중복 등록 / 증상 2=같은 parentId 로 자식 묶여 부모 선택 시 전체 동조.
- fix: ImportGlbAsync 에 idPrefix 파라미터 추가(L162) + BuildParts 전파(L195). cmdImportStep(L1972)이 PlayerPrefs 영속 카운터 `factory00.import_seq` 로 import 세션마다 unique prefix(`imp{seq}`) 전달 → 같은 도면 재import 도 id 분리(앱 재시작에도 단조 증가). OpenTwnPath 재import(L3211)는 직후 payload id 로 교체(L3216)라 idPrefix 무관 — 영향 0.
## 영향 파일
- `Assets/Scripts/Importers/StepImportService.cs` — ImportGlbAsync idPrefix 파라미터 + BuildParts 전파
- `Assets/Scripts/Game/Factory00Bootstrap.cs` — cmdImportStep PlayerPrefs 카운터 unique prefix
## 검증
- 정적: BuildParts 호출처 cascade 점검 — L312 부팅 번들 import 는 1회(반복 없음, idPrefix "" 안전) / L195 fix 적용 / L3211 payload 교체로 무관. prefix 다르면 id 분리(L107-108 명확).
- 빌드: 컴파일 검증.
- Stage 2 PM QC: 같은 STEP 도면 2회 import → 부모 중복 없음 + 각 부모 선택 시 해당 도면만 이동(전체 동조 소멸). 반복 import 마우스 트리거(파일 피커) → autoQA 제거로 자체 헤드리스 불가.
