# v0.1.108 — Lit SSOT PlayerPrefs 통일 (critic 치명 #1 처리)

날짜: 2026-05-11
빌드: `factory00-windows-x64-v0.1.108.zip` (50.3 MB)

## 변경 사항

critic backlog 치명 #1 — Lit 상태 SSOT 3분열 해결:

| 분열 지점 | 기존 | v0.1.108 |
|---|---|---|
| `Bootstrap.useLitShader = false` | 시작 import 옵션 (Unlit) | 동일 (import path만 결정) |
| `MainHUD.uxml:88` `<Toggle value="true"/>` | UXML default true | 동일 (UI 기본값만) |
| `BindLitToggle` hardcode | `SetValueWithoutNotify(true) + SetLitMode(true)` | `SetValueWithoutNotify(GetLitMode())` (SSOT sync) |
| `Awake` _litMode 초기화 | 항상 false | `PlayerPrefs.GetInt(LitModePref, 0) == 1` |
| `SetLitMode` persistence | 없음 | `PlayerPrefs.SetInt(LitModePref, lit?1:0)` |

**핵심 SSOT**: `PlayerPrefs.factory00.lit_mode` (default 0 = Unlit). _litMode 와 UI toggle 모두 PlayerPrefs 값으로 1:1 동기화.

## 자동화 검증

| Step | 동작 | 결과 |
|---|---|---|
| A_fresh_launch_lit_OFF | 빌드 launch 직후 캡처 (PlayerPrefs 0) | Unlit 모드 정상 — 부품 vertex color 그대로 표시 |
| B_settings_open | ESC keydown -> 설정 패널 open | 패널 출현, Lit toggle off 표시 |
| C_after_L_lit_ON | L keydown -> Lit 토글 ON | Lit 모드 음영 적용 + PlayerPrefs.SetInt(1) 저장 |

캡처: `wiki/qa-screenshots/v0.1.108/{A,B,C}.png` 외부 URL HTTP/2 200 PASS.

## 영향

- 사용자가 Lit 토글 ON -> 앱 재시작 -> 자동으로 Lit ON 복원 (이전 분열 시 reset)
- 사용자가 Lit 토글 OFF -> 재시작 -> OFF 유지
- 좌측 패널 width / parts/inspector section height 와 동일한 PlayerPrefs persistence 패턴 적용

## 룰 / 메모리 변경

- `qa-real-input-only.md`: 변경 없음 (v0.1.106 [NEW] 절 정책 그대로 적용)
- `cycle-critic-review.md`: 본 사이클 변경량 ~35라인 (200 미만) — critic 호출 면제

## 사용자 명시 인용

없음 (자율 진행). critic backlog 치명 #1 처리.
