Repository navigation
[fix] #751 날짜 파싱 실패를 오늘 날짜로 덮지 않는다 - #908
Merged
Merged
Conversation
`parseLocalDateOrNull(raw) ?: LocalDate.now()` 라, 서버가 형식을 바꾸면 지난 주 답변이 오늘 날짜로 표시됐다. 네트워크는 성공했고 값만 못 읽은 상황인데 화면에는 틀린 날짜가 정상처럼 앉고, 로그도 남지 않아 제보를 받아도 재현 지점을 찾을 수 없다. 같은 파일의 `Diary.toUi()` 가 이미 쓰는 규칙을 따른다 — 날짜를 못 정하면 `null` 을 돌리고 호출부가 그 항목을 뺀다. 그 KDoc 이 "오늘 날짜로 폴백하지 않는다" 를 이미 적어 두었는데 데일리질문 경로만 규약을 어기고 있었다. 실패 지점에 `Log.w` 를 남겨 추적할 수 있게 한다. 두 곳을 함께 고친다 — `MindRecordUiMapper.DailyQuestionDomain.toUi()`(목록·임시저장)와 `WeeklyReportViewModel.WeeklyReportDailyQuestion.toUi()`(HISTORY 카드). Closes #751 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
OnlyReadOneBook
approved these changes
Aug 23, 2026
OnlyReadOneBook
left a comment
Collaborator
There was a problem hiding this comment.
승인합니다. 지적 없습니다.
검증:
- PR head 55105838에서
:feature:mindrecord:presentation:testDebugUnitTest로컬 통과 — CI "Run Unit Tests"는 develop의 lint.yml 캐싱 정책테스트 모순으로 Kotlin 테스트 도달 전에 실패 중이라(전 PR 공통) 로컬로 실측했습니다 LocalDate.now()폴백이 저장소에 정확히 2곳(MindRecordUiMapper·WeeklyReportViewModel)뿐이었고 둘 다 제거됨을 확인toUi()nullable 전환의 호출부 전수 조사 — DailyQuestionListViewModel:140·DraftListViewModel:141·WeeklyReportViewModel:227 전부 mapNotNull 전환, DiaryScreen·DiaryWriteViewModel 무영향, 기존 MindRecordUiMapperTest는 diary 픽스처만 써서 안 깨짐- "항목 제외" 정책은 이슈가 제시한 선택지 중 하나이고 같은 파일
Diary.toUi()의 문서화된 기존 규약과 일치 — recordedDays 집계(원래 mapNotNull)와 HISTORY 카드 목록이 오히려 일관돼짐 createdAt이 non-null 필수 필드라 "필드 누락"은 역직렬화 실패(별개 경로)로 빠지고 이 코드는 형식 어긋남만 처리함을 확인 — 임시저장 증발 우려는 제한적이며 이슈가 승인한 정책DailyQuestionDateFallbackTest는 폴백을 복원하면 확실히 실패하는 구성(assertNull)임을 확인. robolectric + isIncludeAndroidResources는 매퍼의 Log 실호출에 필요(timeletter 모듈 선례 동일)- "Review dependency changes" 실패는 base 스냅샷 0건 인프라 문제 — robolectric은 develop 카탈로그에 이미 있는 의존
- 참고: #898과 build.gradle.kts 같은 줄을 각각 추가해 나중 머지 쪽에서 충돌 1회 예상(본문 공지대로 내용 동일, 한쪽만 남기면 됨)
Merged
# Conflicts: # feature/mindrecord/presentation/build.gradle.kts # feature/mindrecord/presentation/src/main/kotlin/com/afternote/feature/mindrecord/presentation/viewmodel/DraftListViewModel.kt
# Conflicts: # feature/mindrecord/presentation/src/test/kotlin/com/afternote/feature/mindrecord/presentation/viewmodel/DraftListDeleteTest.kt
# Conflicts: # feature/mindrecord/presentation/build.gradle.kts
Contributor
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.
📌𝘐𝘴𝘴𝘶𝘦𝘴
Closes #751
📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯
이슈가 제시한 세 선택지 중 "그 항목을 목록에서 제외" 를 골랐습니다. 같은 파일의
Diary.toUi()가 이미 그 규칙을 쓰고 있고, KDoc 에 근거까지 적혀 있어서입니다.규약은 이미 문서화돼 있었고 데일리질문 경로만 그것을 어기고 있었습니다. 새 정책을 만든 게 아니라 갈라진 쪽을 맞춘 것입니다.
두 곳을 함께 고쳤습니다.
MindRecordUiMapper.DailyQuestionDomain.toUi()WeeklyReportViewModel.WeeklyReportDailyQuestion.toUi()이슈가 요구한 로그도 실패 지점에 남겼습니다 (
Log.w).🧪 검증 — 수정 전 실패 · 수정 후 통과
오늘 폴백으로 되돌리면 앞의 두 건이 FAILED 로 떨어지는 것까지 확인했습니다.
앱 실측 — 정상 데이터가 그대로 보이는지도 확인했습니다.
💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴
:feature:mindrecord:presentation:testDebugUnitTest+ktlintCheck+:app:assembleDebugBUILD SUCCESSFUL.android.util.Log를 타서 순수 JVM 테스트로는 돌지 않습니다. fix(mindrecord): 주간리포트 요약 문구 공백 소실 — '이번 주,이름님은N일의…'로 붙어 표시 #732 브랜치도 같은 의존을 추가하므로, 두 PR 이 함께 들어가면build.gradle.kts에서 같은 줄이 겹칠 수 있습니다(충돌 시 한쪽만 남기면 됩니다).DailyQuestion.date를 nullable 로 바꾸는 방향으로 다시 잡겠습니다.