'하루 시작 시간'이 자정보다 늦게 설정된 경우의 논리적 하루 경계 버그 2건:
- 달력: monthAnchor(자정 키)를 monthRange(containing:)에 그대로 넣어
매달 1일에 이전 달 그리드가 그려지고 헤더(현재 달)와 불일치했다.
키를 dayRange(forKey:).lowerBound로 실제 시각으로 변환해 전달
(기록·통계 탭이 쓰는 기존 패턴). monthSummary 카운트도 동일 수정.
- 내보내기: '날짜 지정'(MultiDatePicker)의 선택일(자정 Date)을 dayKey(for:)에
넣어 전날 일기가 내보내졌다. DiaryEntry.dayKey가 "달력일의 자정"이므로
선택 달력일의 startOfDay를 키로 직접 사용 — 하루 시작 시간이 몇 시든 안전.
'구간 지정'도 같은 원리로 통일(표시된 달력일 = 내보내는 일기 날짜 보장).
CLAUDE.md §4.1에 재발 방지 규칙 추가: 자정 키를 dayKey(for:)/~Range(containing:)에
재투입 금지, 달력 UI 선택일은 startOfDay를 키로 직접 사용.
검증: 하루 시작 00:00/06:00/18:00 전부 수치 검증(수정 전 06:00에서 이전 달·전날
재현 확인), Debug·Store 빌드 성공, iPad 시뮬레이터에 하루 시작 06:00 주입 후
달력(7월 헤더·그리드 일치, 마커 2건)과 내보내기 시트("일기를 쓴 날 2일") 확인.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013yKDMhuF39GVYy3FMcGHh7
Description
This is a repository where I have collected my study codes, project codes I have worked on so far, and setting files.
Languages
Swift
78.6%
Python
6.7%
C
6%
Java
4.4%
TypeScript
3%
Other
1.3%