# v0.1.535 — QA-119 Save/Load 삭제-재오픈 미복원 fix (soft-delete 복원)

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

---

## 협업자 QA-119 (예시2: 삭제 후 재오픈 미복원) — spec-implementation-judgment
- PM 가설(A: Open이 GameObject.Instantiate 누락)은 현상은 맞으나 **구조상 불가능**: factory00 import-only = mesh 미직렬화 → 단품 Instantiate 불가(mesh 출처 GLB/STEP 재임포트뿐)
- **진짜 root cause(에이전트 심층 조사)**: 삭제(DeleteCommand)=SetActive(false)+Parts 리스트 유지(soft delete) → .twn에 파트 영속 → 재오픈 시 byId 매칭+속성 덮어쓰기는 되나 **비활성 GameObject를 SetActive(true)로 안 되살림**. A는 "재생성"이 아니라 "복원"이 정답.
- **fix**: ApplyTwnPayloadCore 매칭부 — payload에 있는 파트가 비활성이면 SetActive(true)(soft-delete 복원). 숨김(visibility)은 Renderer.enabled 도메인이라 SetActive 무관(parts-visibility 블록 별도) → 숨긴 파트는 활성+Renderer off 유지
- 회귀 최소 옵션(에이전트 4옵션 비교): 재임포트/clear 무변경, 정상 Open(예시3 GLB fallback)·Duplicate 파트 무손상
## PM 확인 필요 (spec 의도)
- 삭제 영속 정책: 현재 삭제/숨김이 _partHidden SSOT 공유라 .twn이 "삭제 vs 숨김" 미구분. 본 fix는 soft(재오픈 복원). 만약 "삭제=영구(.twn에서 제외)" 의도면 별도 데이터 모델(_deletedIds 블록) 신설 필요 — PM 명확화 요청
## 영향 파일
- `Assets/Scripts/Game/Factory00Bootstrap.cs` (ApplyTwnPayloadCore 매칭 루프 SetActive 복원)
## 검증
- 컴파일 + Stage 2: A 추가→Save→삭제→Open → A 복원 확인 / 회귀: 정상 Open·빈씬 Open·Duplicate 무손상
