# 상위 실행자 검증 기록 ## 직접 실행 결과 - `bash work/tests/check-sub-banners.sh`: exit 0. 실제 API/repository/VM/DTO/opener 검사 5개 PASS 출력 확인. - `bash work/tests/check-sub-banners.sh --ui`: exit 0. 실제 Kingfisher/UIKit/SwiftUI 및 iOS16.6 대상 타입 검사 통과. - `for script in work/tests/check-*.sh; do bash "$script" || exit "$?"; done`: 600초 제한 내 exit 0. 신규 검사 포함 16개 스크립트가 한 루프에서 모두 통과했다. 마지막 검사 `PASS: 113 assertions` 확인. - 양 앱 Debug 시뮬레이터 빌드 exit 0. `SodaLive` 로그의 `** BUILD SUCCEEDED **`도 확인했다. 최초 격리 DerivedData의 전체 SDK 재빌드는 600초 timeout으로 중단되어 성공으로 계산하지 않았다. 이후 기존 Xcode 캐시를 사용했으며 공유 캐시는 삭제하지 않는다. ```bash xcodebuild -workspace SodaLive.xcworkspace -scheme SodaLive -configuration Debug \ -sdk iphonesimulator -destination 'platform=iOS Simulator,id=482F7827-2E3A-4559-BAF4-48B68CC5725B' \ -disableAutomaticPackageResolution CODE_SIGNING_ALLOWED=NO ONLY_ACTIVE_ARCH=YES build # 동일 명령의 scheme만 SodaLive-dev로 바꾼 빌드도 exit 0 ``` ## 직접 Native 재실행 - QA worker의 원본 `native/source/Doubles.swift`, `Harness.swift`와 현재 production View/캐러셀/DTO/opener/테마를 직접 `xcrun --sdk iphonesimulator swiftc`로 컴파일했다. 별도 product 수정이나 웹 모사는 없다. - 부모 소유 앱 `qa.sodalive.subbanner.parent.x6gleo`, PID 4387을 소유 simulator에서 설치·실행했다. - `xcrun simctl io 482F7827-2E3A-4559-BAF4-48B68CC5725B screenshot ...`으로 [parent-native-smoke.png](parent-native-smoke.png), [parent-native-final.png](parent-native-final.png)를 직접 캡처했다. smoke에서 home-single-wide, 01/01, active creators 아래 전체 폭 이미지를 직접 읽어 확인했다. - 실행 중 생성된 actions.json에서 home-first/home-second/content-first/content-second 이벤트를 확인했다. 전체 worker matrix를 재검증했다고 주장하지 않으며 상세 42장/geometry 판정은 [native/README.md](native/README.md)를 따른다. - 부모 smoke 앱은 terminate/uninstall 후 `ps -p 4387` 부재를 확인했다: `Parent native app teardown: PASS`. ## 범위와 한계 - 실제 배너/두 View composition은 production 소스이며 주변 섹션과 VM은 명시 QA 대역이다. live 추천 API, 전체 앱의 손가락 탭·swipe/외부 앱 이동, 실기기 검증은 수행하지 않았다. - `lsp_diagnostics` 도구가 제공되지 않아 LSP 실행 대신 실제 Swift 타입 검사와 두 전체 앱 빌드를 수행했다. 이를 LSP PASS로 바꾸어 보고하지 않는다. - 저장소 diff, 신규 production 3파일, CLI tests, harness Swift와 실행 스크립트 및 native 보고서를 읽었다. 기존 main BannerCarousel와 공유 AuthPlugin은 diff에 없다. - 독립 리뷰 및 최종 root/device 정리 결과는 후속 기록으로 추가한다. ## 후속 확인 - 두 추천 진입 경로를 추가 확인했다. `MainView.swift:204`의 home/content 분기는 직접 화면을 구성하고, `MainHomeView.swift:67`과 `MainContentView.swift:45`의 추천 탭에도 로그인 차단이 없다. 기존 following/detail 전용 로그인 guard는 변경하지 않았다. - 부모의 final smoke PNG는 21개 목록 중 19/21이 자동으로 표시된 시점이다. worker의 21번째/순환 증거와 구분한다. - 부모 소유 실패 build DerivedData, smoke app bundle, native module cache는 제거 후 부재 확인했다. 리뷰가 읽는 diff/log는 최종 리뷰가 끝날 때까지 보존한다. - REV-P1-001 대응: 마지막 제스처 변경의 SHA256 `7e25db3076d545ffc61ea3a1c5585e7b8a617964ef406d7570286d75a75e010a`로 SodaLive scheme을 위 명령 그대로 재빌드하여 exit0을 확인했다. 집중 production checks도 5개 PASS/exit0 재확인했다. 기존 42장의 캡처는 이전 버전 증거로 보존하고 최신 native matrix는 별도 `native-final/`에 기록한다. - 최종 동일 reviewer가 현재 source/snapshot 해시 및 native-final 전후/최종 manifest, 원본 경로 컴파일·42PNG·cleanup을 검토하여 REV-P1-001 ADDRESSED / APPROVE 판정했다. 추가 제품 수정은 없었다. - 최종 소유 자원 정리: parent simulator shutdown/delete 및 device 디렉터리 부재, own root `sub-banner-ios-run.x6GLEo` 삭제 및 부재, 임시 note 삭제를 확인했다. `Owned run root/cache and simulator absent: PASS`. 임시 build 로그는 reviewer 확인 뒤 삭제했으며 명령·exit·검토 결과는 이 문서에 보존한다. shared Xcode cache와 다른 simulator는 삭제하지 않았다.