# v0.1.283 tower-lamp critic fix (치명 2 + 중대 3 + 중간 2)

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

---

## 사이클 요약
v0.1.282 critic CONDITIONAL -> 치명·중대 모두 본 사이클에서 fix -> PASS 전환. tower-lamp 4 사이클 (v0.1.279~v0.1.283) **43rd stable seal 후보**.

## critic 결함 처리표
| 등급 | 결함 | 파일 | fix |
|---|---|---|---|
| 치명 #1 | Material cache stale -> MissingReferenceException | TowerLampEmissionDriver.cs:114-133 | cache valid check (m == null) + stale 시 Destroy + 재생성 || 치명 #2 | r.materials 반복 호출 + OnDestroy 누락 -> Material instance 누수 | 동상 L125-129 | 한 번만 fetch + OnDestroy 안 _matCache 전 Destroy || 중대 #1 | LampCount 변경 시 _blinkOn stale | Factory00Bootstrap.cs:5833 LampCount 슬라이더 | InvalidateLamp(DriverInstanceId) 호출 추가 (cache + blink phase 정리) || 중대 #2 | Bridge ch.IsOn vs Sim 토글 SSOT 충돌 | Factory00Bootstrap.cs:5912-5928 | Sim 토글 SetEnabled(ModbusCoilBase  + tooltip 명시 || 중대 #3 | URP _EMISSION 키워드 불충분 -> 렌더 반영 안 됨 | TowerLampEmissionDriver.cs:128 | globalIlluminationFlags = RealtimeEmissive 추가 || 중간 #1 | Update 매 프레임 Parts 순회 -> GC 압력 | TowerLampEmissionDriver.cs Update() | 100ms throttle (k_UpdateInterval = 0.1f) — blink 정확도 OK || 중간 #3 | "채널 4" 라벨 의미 불명확 | Factory00Bootstrap.cs:5852 | "채널 (LampCount색등)" |
## 신규 공개 API
TowerLampEmissionDriver.InvalidateLamp(string driverInstanceId) — lamp 제거 / 재구성 시 Material instance Destroy + cache + blink phase 정리. RemoveTowerLampFromPart + LampCount 슬라이더 양쪽에서 호출.
## 사용자 UX 변경 (중대 #2)
- **Modbus 연결 (CoilBase>0)**: Sim 토글 회색 비활성. tooltip = "Modbus 코일 N+i 가 SSOT — Sim 무력. Coil Base = 0 으로 설정하면 활성"- **Modbus 미연결 (CoilBase=0)**: Sim 토글 정상 동작 (시연 모드)비코딩 사용자가 "누르는데 안 켜진다" 혼란 해소.

## deferred -> 후속 사이클
| 등급 | 결함 | 처리 시점 |
|---|---|---|
| 중간 #2 | ModbusCoilBase sentinel  vs == 0 의도 명시 | v0.1.284 코멘트 || 사소 #1 | TowerLampEmissionDriver "Driver" 명명 충돌 | rename은 다음 P2 사이클 |
| 사소 #2 | TowerLampComponent.Id vs DriverInstanceId 이중 GUID | 사용처 정리 후 단일화 |

## 사이클 종료 라인 합계
| 파일 | 변경량 |
|---|---|
| TowerLampEmissionDriver.cs | ~95 -> ~210 (+115, 치명 2 + 중대 3 + 중간 1 fix) |
| Factory00Bootstrap.cs | +12 (LampCount + Remove + Sim 토글 + chHeader) |
본 사이클 = ~127라인 / 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)
