[Feat] TTS 음성 선택 버전 호환 추가 - #175
Merged
Merged
Conversation
|
Important Review available on request
Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
✨ PR 유형
어떤 변경 사항이 있나요??
🛠️ 작업내용
selectionVersion: Int64?를 추가했습니다.0은 유효하게 보존하고, 필드 누락은nil로 디코딩해 구 서버 응답과 호환되도록 했습니다. 방어적으로 음수 값은 신뢰하지 않습니다.memberID별UserDefaults에 저장합니다. 같은 기기에서는 앱 프로세스 종료·재실행 또는 같은 계정 재로그인 후에도 복원해 버전을 계속 비교합니다.RoutineTTSWarmupCoordinator.serverVoiceSelectionDidChange의 prepared plan 제거, 계정별 캐시 삭제, 재워밍 흐름을 그대로 사용했습니다. UI, SwiftData 스키마, 기존 PENDING/FAILED fallback 정책은 변경하지 않았습니다.feat/#96-tts-selection-version브랜치에서 작업했습니다. 별도 iOS 이슈는 생성하지 않았습니다.🧪 테스트 결과
0, 누락, 음수 방어 및 PATCH 버전 전달 검증UserDefaults버전0영속화와 회원별 격리MoruTests875/875 통과Scripts/check-iphone-functional-gate.shScripts/check-swiftdata-boundary.shCODE_SIGNING_ALLOWED=NO)CODE_SIGNING_ALLOWED=NO)git diff --check, Info.plist/project.pbxprojplutil -lintFinalScreenVisualTests.testMainScreensRenderAtReferenceAccessibilitySizes: golden hash 허용 거리 24 대비 28FinalScreenVisualTests.testSessionEmptyStatesRenderAtReferenceAccessibilitySizes: golden hash 허용 거리 24 대비 50RoutineTTSAudioStorageTests.testPurgeCancelsOldLoadAndDoesNotRemoveSameKeyReplacement: 전체 실행 중 gate 대기에서 멈춰 중단됐고 단독 직렬 실행에서도 같은 기존 timing race를 재현했습니다.RoutineTTSAudioCache구현을 수정하지 않아 세 테스트는 변경하지 않았습니다.📋 추후 진행 상황
GET /routine-tts/{routineGroupId}/tts에 인증 회원의 원자적인 optionalcurrentSelectionVersion: Long을 추가해야 다른 기기에서 바뀐 값을 정확히 알 수 있습니다.📌 리뷰 포인트
0이 유효한 버전으로 처리되는지 확인해 주세요.AccountSessionIdentity에 다시 묶이고 기존 actor 취소/동시성 및 캐시 격리를 유지하는지 확인해 주세요.✅ Checklist
PR이 다음 요구 사항을 충족하는지 확인해주세요!!!