5.4 KiB
5.4 KiB
추천 서브 배너 통합 리뷰
1. 리뷰 정보
| 항목 | 내용 |
|---|---|
| 대상 | P1-T1 구현 및 P2-GATE 증거 |
| 기준 | 미커밋 working tree, 신규 production 3파일 포함 |
| 일자 | 2026-10-30 |
| 리뷰어 | Oracle, 단일 독립 읽기 전용 리뷰 |
| 기준 문서 | ../prd.md, ../plan-task.md |
| 상태 | 수정 검증 완료: APPROVE, 남은 차단 항목 없음 |
2. 목적과 범위
두 추천 GET/auth/status, DTO/precision/filter, opener, 실제 View composition/캐러셀, CLI checks 및 native 캡처/geometry를 검토했다. 기존 인증 plugin·main banner와 인접 경로도 읽었다. reviewer는 제품이나 보고서 파일을 수정하지 않았으며 이 문서는 상위 실행자가 반환 판정을 기록한 것이다.
3. 판정 기준
확정 요구사항 위반 또는 현재 checkout을 검증했다는 주장을 성립시키지 못하는 증거 문제를 차단한다. 공개된 physical tap/swipe·실서비스 미검증 범위 자체를 새로운 제품 요구사항으로 추가하지 않는다.
4. 검토 근거와 결과
- HTTP200와 success 확인, 익명 헤더 생략, follow/auth 보존, 기존 데이터 유지가 코드와 tests에 부합한다.
- Int 직접 디코딩, enum placement, 순서 보존 및 콘텐츠 isEmpty, 날짜/20개 cap 없음 확인.
- 원문 URI/scheme/host 검증 및 iOS 우선/웹 1회 대체, Android 실행 없음 확인.
- 두 화면의 지정 위치/조건부 삽입, 캐러셀 안전 index/현재 URL 비율/task 취소/swipe 흐름 확인.
- native contact sheet 4개와 양 화면 first/second/empty/single/OS 및 부모 PNG를 읽었다. 기존 이미지의 폭375, 높이125→187.5, s24, empty 추가 gap0 관측 자체는 유효하다.
- 두 build log의 BUILD SUCCEEDED 확인. 전체16개 check 단일 루프 PASS는 리뷰 dispatch 이후 상위 실행자가 추가 확인했고 evidence/parent-verification.md에 기록했다.
5. 발견 사항
| ID | 심각도 | 상태 | 제목 | 후속 Task |
|---|---|---|---|---|
| REV-P1-001 | High, 검증 Gate | 수정 완료 | 현재 캐러셀과 native 캡처 소스 해시 불일치 | P2-R1 |
확정된 제품 기능·보안 결함은 없음. 검증 증거 불일치 1건.
6. REV-P1-001 상세
- 기존 native/source-hashes-final.json의 캐러셀 SHA256:
1bf03b8b1e05310acce09f12b2f09b35af3587f4a7d486b22945ec502cfb506d. - 현재 production 캐러셀 SHA256:
7e25db3076d545ffc61ea3a1c5585e7b8a617964ef406d7570286d75a75e010a. - 기존 native 최종 해시 기록 이후 캐러셀에 제스처 처리가 변경됐다.
unchanged=true는 당시 실행 전후만 증명하며 현재 checkout까지 증명하지 않는다. - 부모 smoke는 현재 코드 이후 실행됐지만 전체 matrix와 소스 해시 연결이 부족하다. 과거 해시/증거를 덮어쓰지 않고 최신 소스 재검증 증거를 별도로 추가한다.
- 관련 기준: PRD SB-013/014/019, plan P2-GATE 현재 코드 native 검증.
7. 후속 작업
P2-R1에 현재 소스 snapshot/hash와 변경 범위를 기록하고 native matrix 재실행 및 SodaLive build 재확인을 수행한다. 제품 수정은 필요하지 않다.
8. 종료 판정
초기 판정 REQUEST_CHANGES. P2-R1 증거를 같은 reviewer에게 제한된 재검토로 제출한다. 잔여 한계: physical tap/swipe/세로 scroll 공존, 실제 UIApplication.open/OS background, Reduce Motion ON, 실서비스·전체 앱 UI는 미검증이다.
9. 후속 검증 기록
- 상위 실행자도 현재 해시와 수정 시각(2026-10-29 23:53:09)을 확인했다. parent smoke/final PNG는 2026-10-30 00:03:26/00:06:28, SodaLive-dev build 완료는 2026-10-29 23:58:03으로 이후 실행이다.
- 다음 재검증은 별도
evidence/native-final/에 보존하고 기존native/는 변경하지 않는다. - 변경 대조: 이전에 읽은 캐러셀은
highPriorityGesture, 드래그 방향 구분 없는 offset/onEnded, 드래그 중 자동 진행 허용이었다. 현재는@GestureState isSwiping·tap guard를 추가하고simultaneousGesture및 수평 우세 조건을 사용하며 드래그 중 자동 진행을 건너뛴다. 이는 동작 변경이므로 단순 공백 변경으로 증거를 승계하지 않는다. 배치·이미지 비율·DTO/opener 변경은 없다. - 2026-10-30 상위 재검증: 현재 SHA256
7e25db3076d545ffc61ea3a1c5585e7b8a617964ef406d7570286d75a75e010a를 출력하며 SodaLive Debug simulator build exit0, 집중 production checks 5개 PASS/exit0. 기록build-sodalive-final.log; 최신 native matrix는 별도 실행 중. - 2026-10-30 최종 Oracle delta 재검토: REV-P1-001 ADDRESSED, APPROVE, 남은 차단 항목 없음. 현재 source/snapshot/전후최종 manifest의 동일 해시, 원본 production 경로 컴파일, 최신42PNG·시나리오·cleanup, 최종 build의 BUILD SUCCEEDED를 reviewer가 직접 확인했다. 기존 기능 리뷰를 반복하거나 범위를 확대하지 않았다.
- 최신 증거: native-final/README.md, source-hashes-final.json, provenance-after.json. 이전 native 증거는 보존한다.
- 상위 실행자도 현재 source와 snapshot cmp PASS 및 최종 build log를 확인했고, 소유 simulator/root/cache를 정리했다. 실기기·physical tap/swipe·실서비스 등 기존 공개 한계는 그대로다.