# v0.1.524 — S0048/S0012 C6b 드래그 할당 (재critic 중대 정리, 클린 마감)

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

---

## 핵심 변경 (C6b = v0.1.522~524 누적)
- 4탭 매핑 에디터 드래그앤드롭 할당 — 좌측 미할당 포트 드래그 → 우측 활성 탭 → 다음 빈 주소 자동 연속 할당
- 역기록 영속 `PlcAddressMigration.Apply`(5종, Register 거울상) → 옛 필드 write(옛 필드 SSOT, 다음 로드 재생산, 소실 0)
- AddressMappingChangedEvent 발행 + box-select decouple + 드래그 5-핸들러(S0055 CapturePointer/pointerId 가드)
## 재critic 중대 정리 (CONDITIONAL → PASS)
- dc/dp 캡처를 release/ClearDrag 이전으로 이동 (동기 PointerCaptureOut 시 할당 소실 방지 — correctness)
- ClearDrag idempotent 가드 (release→CaptureOut 연쇄 이중 호출 → OnDragStateChanged 이중 발화 차단)
- AssignPort Float 포트 가드 (PortTab<0 시 잘못된 device 등록 차단)
- 직전 치명#1(TowerLamp 소실)·치명#2(capture leak) 해소 확인 + Apply↔Register 6/5/4/4/1 전수 대칭 확인
## 영향 파일
- `Assets/Scripts/Plc/PlcAddressMappingPanel.cs` (드래그+좌측+할당 + critic 2-pass fix)
- `Assets/Scripts/Plc/PlcAddressMigration.cs` (Apply 역기록)
- `Assets/Scripts/Game/Factory00Bootstrap.cs` (wiring + box-select 가드)
## S0048 진행
- C1~C5 + C6a(표시) + **C6b**(드래그 할당, critic 치명 0 중대 0) 완료. 다음 C6c(수동입력/자동수동토글/충돌모달/DWord 2행/TowerLamp base+offset)
- 드래그 시각검증 = Stage 2 사용자 PC 마우스 (헤드리스 자동화 외 — qa-standard-workflow §3)
