# v0.1.252 — DeleteCommand 다중 선택 풀 처리

- 버전: v0.1.252
- 분류: 48th stable seal (v0.1.366) 일괄 봉인 사이클
- 다운로드: [factory00-windows-x64-v0.1.252.zip](../../downloads/archive/factory00-windows-x64-v0.1.252.zip) (archive 보존)
- 캡처: [qa-screenshots/v0.1.252/](../../qa-screenshots/v0.1.252/)

---

## critic 중간-2 완전 fix
v0.1.250에서 정직 토스트 안내만 추가했으나, 본 사이클은 **풀 처리** — DeleteCommand 자체를 List로 확장하여 다중 선택 일괄 삭제 + 일괄 Undo.
## 설계

### 단일 vs 다중 통합
DeleteCommand(Factory00Bootstrap, List) — 단일은 List.Count=1로 wrap. VisibilityCommand 미러 (List 패턴).
### Execute
`csharpforeach (var p in _targets)
{
    p.cachedTransform.gameObject.SetActive(false);
    _host._partHidden[p.id] = true;
}
// selection 일괄 해제
foreach (var p in _targets)
{
    if (_host._selectedPart == p) _host._selectedPart = null;
    _host._selectedParts.RemoveAll(x => x == p);
}
// UI 1회 갱신 (RebuildVisibleParts / Rebuild / Gizmo)
`
### Undo
`csharpforeach (var p in _targets)
{
    p.cachedTransform.gameObject.SetActive(true);
    _host._partHidden[p.id] = _wasHiddenBefore[p.id];
}
_host._selectedPart = _selectedBefore;
_host._selectedParts.AddRange(_selectedListBefore);
`선택 상태 복원 완전 — _selectedPart + _selectedParts List 모두 이전 snapshot.

## 보존 정책 일관
DeletePart() 기존 정책 미러:
- SetActive(false) 직접 호출 — 물리·이벤트·폴링 모두 disable (visibility만 토글하는 SetPartVisible과 의도적 차이)- _partHidden[id]=true — 트리 표시 hidden- .glb 원본 불변 (Parts 리스트 보존)자식 cascade 처리는 leaf-only P1 정책 일관 (어셈블리 부모 삭제 시 자식 별도 처리 필요는 v0.1.253+ BatchDelete 확장).

## 토스트 메시지
| 케이스 | 메시지 |
|---|---|
| 단일 | "삭제 (워크스페이스): {name}" |
| 다중 | "삭제: {N}개 일괄 (Ctrl+Z 복원)" |
| Undo 단일 | "Undo 삭제: {name}" |
| Undo 다중 | "Undo 삭제: {N}개 일괄 복원" |

## 변경 파일
- Assets/Scripts/Game/Factory00Bootstrap.cs (~90라인 -> DeleteCommand class 일괄 재작성 + DeleteSelectedPart 헬퍼 확장)- ProjectSettings/ProjectSettings.asset — bundleVersion 0.1.251 -> 0.1.252
## 검증 시나리오

### 단일 (회귀 없음)
1. 부품 1개 선택 -> Edit Delete (또는 Delete 키) -> 사라짐
2. Ctrl+Z -> 복원

### 다중 (신규)
1. Ctrl+A -> 모든 부품 선택 -> Delete -> 모두 일괄 삭제 (토스트 "N개 일괄")
2. Ctrl+Z -> 모두 일괄 복원 + selection 복원
3. Shift-click 3개 선택 -> Delete -> 3개만 삭제 + 나머지 유지
4. Ctrl+Z -> 3개 복원

### Description (UndoStack 표시)
- 단일: "삭제: {name}"- 다중: "삭제: {N}개 일괄"
## 다음 사이클
- v0.1.253 — 협업자 잔존 QA 일괄 (QA-034 Present Tab 위치 / QA-040 Signal Simulator UX / QA-053 Add Rotary)- v0.1.254 — QA-014 Persp/Ortho (PM 회신 받으면)


---

## 봉인 참조

본 사이클은 **48th stable seal (v0.1.366, 2026-05-24)** 일괄 봉인에 포함됨.

- journal: [2026-05-24-v0.1.298-366-48th-stable-seal.md](../../journal/2026-05-24-v0.1.298-366-48th-stable-seal.md)
- alias zip: [factory00-windows-x64-v0.1.366-stable.zip](../../downloads/factory00-windows-x64-v0.1.366-stable.zip) (170 MB)
