# v0.1.289 edit-copy-cut-paste P3 — Cut (Ctrl+X) 옵션 B 구현

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

---

## 사이클 요약
자율 모드 사전 분석 (wiki/topics/edit-cut-snapshot-options.md) 기반 옵션 B 채택. DeleteCommand 가 SetActive(false) 패턴이라 cachedTransform 살아있음 -> DuplicateCommand 안 Instantiate 정상 동작. 추가 SetActive(true) 1줄로 Cut 후 Paste 시 새 GameObject active 보장.
## 변경
| 영역 | 변경 | 라인 |
|---|---|---|
| Ctrl+X 단축키 (Update KeyDown) | KeyCode.X -> CutSelected() | +1 || CutSelected 메서드 | Copy + DeleteSelectedPart 직렬 호출 + 토스트 | +18 || Edit 탭 edit-cut 활성화 | silent-button listener -> CutSelected() 호출 | -2 +3 || DuplicateCommand SetActive(true) | Cut 후 Paste 시 inactive 상속 회피 | +2 || 우클릭 메뉴 "잘라내기" 항목 | BuildObjectMenuItems Copy 옆 추가 | +14 |
라인 합계: **~36**. 1000라인 한도 안전.

## 동작 시나리오
`[선택 N] -> Ctrl+X (또는 Edit 탭 Cut)
    ① CopySelected — _clipboard 에 참조 N개 보관
    ② DeleteSelectedPart — DeleteCommand IEditCommand -> UndoStack push
       각 부품 cachedTransform.gameObject.SetActive(false) + _partHidden[id]=true
       Parts list 잔존, cachedTransform null 아님
    ③ FlashToast: "Cut: N개 잘라내기 (Ctrl+V 새 위치 / Ctrl+Z 원본 복원)"
-> Ctrl+V (새 위치 또는 그 자리)
    각 _clipboard Part 마다 DuplicateCommand
    Instantiate(origGo) — origGo inactive 여도 transform 정상 -> 새 GameObject 생성
    SetActive(true) 명시 호출 — Cut 케이스 대응
    +50mm 오프셋 (origId 누적 카운터)
    Material 복사 (QA-021 정책) / 컴포넌트 / 자식 hierarchy 모두 자동
-> Ctrl+Z (Paste undo, N번)
    각 DuplicateCommand undo — 새 GameObject SetActive(false) + Parts.Remove
-> Ctrl+Z (Cut undo)
    DeleteCommand undo — 원본 N개 cachedTransform.SetActive(true) + _partHidden 복원
`
## 변경 영향
- [완료] Cut+Paste = 사용자 의도 Move 패턴 완성- [완료] Material 복사 정책 (QA-021) 자동 유지 (DuplicateCommand 재사용)- [완료] 컴포넌트 (Sensors / Actuators / Pneumatic / Rotary / Vacuum / TowerLamp) 자동 복사- [완료] 자식 hierarchy 자동 (UnityEngine.Object.Instantiate 재귀)- [완료] Undo 통합 — Paste / Cut 모두 독립적 Ctrl+Z 가능
## edit-copy-cut-paste 진행 누적
| 단계 | 버전 | 상태 |
|---|---|---|
| P1 (단축키 + Ribbon) | v0.1.285 | [완료] |
| P2 (씬 우클릭 메뉴) | v0.1.286 | [완료] |
| **P3 (Cut Ctrl+X)** | **v0.1.289** | **[완료]** |
QA-073 인접 spec **100% 완료**. 협업자 spec 진척 75% -> 100%.

## 다음 사이클 후보 (큐)
- studio-hamburger-lnb (사용자 명시 대기 — 사전 분석 완료)- component-scene-inspector-ux (사용자 명시 대기)- tower-lamp Material 풀링 (P3 잔존)
## 자가점검
- spec-vs-codebase-pre-check.md [완료] — DeleteCommand SetActive(false) + DuplicateCommand origGo.transform.parent 패턴 사전 검증- silent-button-toast.md [완료] — edit-cut 정상 활성, listener 등록- cycle-critic-review.md [완료] — 36라인 / 1000라인 한도 안전


---

## 봉인 참조

본 사이클은 **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)
