# v0.1.493 — QA-126 R-7 PhotoSensor Raw 감지 이벤트 분리 (딜레이 무관 즉시 발화)

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

---

## 핵심 변경
- **QA-126 R-7 (OnDelay/OffDelay가 씬 이벤트까지 지연)**: JP 명시 "딜레이는 센서 출력 변경만 지연시키고, 씬에서 오브젝트를 검출한 이벤트는 딜레이와 무관하게 즉시 발생해야 함." 기존 코드는 raw 감지 → 딜레이 게이트 → FinalOutput → `SensorStateChangedEvent` 단일 사슬이라 씬 검출 이벤트 자체가 딜레이됨.
- **fix = 이벤트 2단계 분리** (S0005 summary r004 §8):
  - `SensorDetectedEvent` 신규 — Raw 감지 edge 변화 시 **딜레이 무관 즉시 발행**. 씬 시각화·인디케이터·디버그 구독용.
  - `SensorStateChangedEvent` 유지 — FinalOutput edge(딜레이+ContactType 반영 후). PLC 출력용.
- **PhotoSensorComponent.UpdateSensor**: raw 감지 확정 직후(딜레이 블록 앞) `_lastPublishedRaw` edge 비교로 즉시 발행. 초기 raw=false 정합으로 시작 spurious 이벤트 없음.
## 협업자 spec 정합 (룰 spec-implementation-judgment)
- S0005 summary r005 §8 이벤트 목록 + §11 결정 이력 + 위임 브리프 확정 사양 채택.
- QC 체크리스트 r155 "§7 확정 대기" 표기는 stale — 실제 summary는 이벤트 목록을 §8에 확정(§7=시각화 명세). summary SSOT 직접 검증으로 확정 확인.
- 타임스탬프 필드명: spec 원문 `Timestamp` 대신 코드베이스 형제 이벤트(`SensorStateChangedEvent`) 컨벤션 `TimestampSec` 채택(내부 일관성 우선). 구독 코드는 factory00 내부 작성이므로 영향 없음.
- 구독자 미배선: R-7 위임 브리프는 이벤트 발행 분리만 요구. 씬 시각화·인디케이터 구독자 배선은 PM 명시 시 후속.
## 검증
- critic PASS (치명 0 / 중대 0). SoC(UpdateSensor 전용, ContactType 토글 시 미발화) + 생명주기(EventBus.Reset null) + 회귀(SensorPlcBridge 무관) 모두 정합.
## 영향 파일
- `Assets/Scripts/Events/SensorDetectedEvent.cs` — 신규 이벤트 struct (SensorId/PartId/RawValue/TimestampSec)
- `Assets/Scripts/Events/EventBus.cs` — OnSensorDetected event + Publish overload + Reset null
- `Assets/Scripts/Sensors/PhotoSensorComponent.cs` — `_lastPublishedRaw` 필드 + Initialize + UpdateSensor 즉시 발행
- `Assets/Scripts/Sensors/ISensor.cs` — doc 주석 (이벤트 2종 분리 명시)
