하루 단위 다짐에 '마감 시각까지만 집계' 옵션 추가 (최소판 설계): - 모델: Quest.deadlineMinutes(-1=없음) 필드 1개 — CloudKit 안전(기본값), 주기가 하루 단위가 아니면 값이 남아도 무시(hasDeadline이 주기·범위를 함께 검사) - 의미론: 마감 = 그날 집계 창의 끝. dayMeasurementRange(forKey:) 단일 구현을 주기 범위(current/judgment)·주/월 span 하루 루프(spanValue)·연속 버킷팅 (perDayValues)·위젯 누적 라벨(spanRawValue)·일기 카드가 공유한다. 원본 기록은 불변 — 마감 뒤 기록은 남되 그 다짐에만 미집계. 시간형은 기존 겹침 클리핑이 마감을 걸친 세션을 부분 인정(추가 코드 0). '이하 유지'는 마감까지 한도 안이면 그날 달성으로 고정. - 경계 규칙: 마감은 그 논리적 하루(24h) 안에서 그 시계 시각의 등장 지점 — 하루 시작보다 이른 시각은 다음 달력일 새벽, 시작과 같은 시각은 +24h(온전한 하루)로 0길이 창이 수학적으로 불가능(에디터 검증 불필요, 오류 상태 없음) - 의도된 최소화: '마감 지남' 전용 표시 없음(게이지 값이 마감 시점에 연속이라 위젯 타임라인 마감 경계 불필요 — 위젯·워치·시리는 코드 변경 0으로 자동 일관), 연속 달성은 값 클리핑만(오늘 놓친 끊김 반영은 내일부터 — 유예 규칙 유지), 주간/월간/기간 마감은 미지원 - UI: 다짐 에디터 토글+시간 선택(하루 단위만, footer 설명), 주기 문구에 "· 오전 8:00까지" 표기(목표 탭·시리 요약·CSV 자동 반영), 일기 카드 "하루 목표 · 오전 8:00까지", 도움말 항목 추가, ko/en/ja 번역 - 검증: seedDemo에 마감 다짐 시드(창 안/밖/어제 실패 케이스) — 하루 100% (창 밖 기록 포함 시 200%가 되는 함정 통과), 주간 29%(=2/7)·월간 6%(=2/31) 수기 계산과 정확 일치, streak-dump 연속 1일(어제 실패로 끊김) 확인, 마감 없는 다짐 전부 기존 수치 유지(경로가 hasDeadline 가드로 완전 동일), 일기 카드 1회/1회(원본 합계는 그대로), 영어 로케일 "By 8:00 AM" 렌더, Debug·Store 빌드 성공, 카탈로그 9종 missing/stale 0 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%