- DataStore: App Group 컨테이너의 HaruDanim.store 사용, 기존 default.store 1회 자동 이관
- 프리미엄 + 동기화 토글 시 CloudKit(.private) 구성으로 컨테이너 생성, 실패하면 로컬 폴백
- CloudKit 요건(모든 관계 optional)에 맞춰 to-many 관계를 optional 저장 + 기존 이름
접근자로 리팩터링 (originalName 매핑으로 기존 데이터 유지)
- Tag/Action/Goal/Quest에 uuid 추가 (시리 단축어·위젯·워치 식별자) + 중복 보정
- 모델 레이어(Models/Settings/DayMath/QuestProgress/Formatters/Theme)를 Shared/로 이동
— 위젯 확장과 공유
- 집계 설정(주 시작 요일·하루 시작 시간·대표 시간·짧은 기록 무시)을 App Group defaults로
이관해 위젯·워치와 공유, 설정의 '기기 간 동기화' 토글 활성화
- Goal.combinedSpanRatio 공용화 (모음 탭 카드·위젯·시리가 동일 산식 사용)
- DEBUG 검증 인자: -cloudSync YES, -settingsScrollPremium YES
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013yKDMhuF39GVYy3FMcGHh7
- Implement drag-and-drop functionality for users to reorder the active goals list
- Ensure the custom order of goals is persistently saved and loaded
- Filter out completed goals from the main active list to reduce visual clutter
- Add a 'View Completed Goals' button to navigate to a dedicated screen for finished items
- Remove the maximum limit for selected goal widgets on the main tab
- Unify the display format (aggregate vs. individual) to apply globally across all selected goals
- Redesign the horizontal scrolling into a full-width snap carousel (pagination style)
- Ensure only one widget is fully visible at a time with no adjacent cards partially showing
- Apply snap scrolling so light swipes firmly transition to the next or previous widget
- Update the goal progress widget in the main tab to support up to 3 selected goals
- Add multi-selection capabilities to the widget settings menu
- Implement a horizontal or scrollable layout for multiple goals to optimize screen space
- Maintain existing routing to specific goal detail screens upon tap
- Add 'View Statistics' option to the context menu when long-pressing an action icon in the main tab
- Route the user directly to the independent Statistics tab upon selection
- Automatically apply the selected action as a filter when entering the Statistics tab, mirroring the 'View Records' behavior
- Enlarge the count number displayed on the main tab action icon
- Enhance the click feedback animation on the main tab for better visibility
- Add an option to toggle memo prompts during action creation
- Conditionally show memo prompts based on settings when stopping a timer or incrementing a count
[Filter UI & Logic]
- feat: implement toggle behavior for the 'Select All' button
- feat: group actions under their respective parent tags in the filter menu
- feat: auto-select all child actions when a parent tag is selected
[Bug Fixes & Calculation]
- fix(records): resolve rendering issue when only partial actions are selected
- fix(stats): calculate tag statistics using only explicitly selected actions instead of all actions
- Remove unnecessary overall totals and general average metrics below weekly and monthly bar charts
- Add detailed summary sections displaying the sum and average calculated for each specific action and tag
- Ensure the new summary metrics dynamically update based on the selected filters
- Fix an issue where navigating to Records via long-press stops at the 'More' tab menu
- Update navigation logic to automatically route through the 'More' tab and land directly on the target screen
- Ensure action filters are correctly applied when deep-linking to nested tabs
[Main Tab & Routing]
- feat(main): add options for goal widget to show aggregate or individual (up to 3) resolutions
- fix(main): route long-press 'view records' directly to the filtered Records tab
[Statistics & Charts]
- feat(stats): separate Statistics into an independent main tab and remove from Records
- feat(stats): add multi-select filters for tags and actions (default: all)
- feat(stats): add daily horizontal bar charts for tag ratio comparison
- feat(stats): add weekly line charts by day and cumulative bar charts
- feat(stats): add monthly line charts (by day and week) and cumulative bar charts
[Core Logic]
- feat(goals): update logic for 'maintain below' targets to show 100% if met, 0% if exceeded
[New Features]
- feat(records): add line charts for weekly/monthly trends and averages
- feat(records): implement multi-select filters for specific tags and actions
- feat(main): add 'view records' option to the action icon long-press menu
- feat(main): display goal progress widget with customizable settings
[UI/UX & Bug Fixes]
- fix(ui): expand touchable areas globally, especially in record lists
- chore(main): rename main tab top title from '하루다님' to '모음'
- feat(nav): route to goal detail screen when tapping the goal widget
- Enlarge the count number displayed on the main tab action icon
- Enhance the click feedback animation on the main tab for better visibility
- Add an option to toggle memo prompts during action creation
- Conditionally show memo prompts based on settings when stopping a timer or incrementing a count
[Bug Fixes]
- fix: correct delete popup positioning
- fix: hide bottom tab bar in detail menus to prevent UI overlap
- fix: expand touchable area for icon selection buttons
- fix: localize date display in the record tab based on device settings
[New Features]
- feat: open calendar popup when clicking the date in the record tab
- feat: add memo option upon timer completion and display in records
- feat: pin favorite actions to top and add tag-based ordering
- feat: allow goal reordering and add collapse/expand toggle for sub-goals
[Refactoring & Settings]
- refactor: streamline bottom navigation to max 4 tabs with a 'More' tab
- feat: allow users to customize visible tabs and count in settings
[Branding]
- chore: update app name to 'Haru Danim' (하루다님)
- chore: add '당신의 하루에 다녀가다' slogan to the splash screen
- Implement Goal(목표) and Quest(다짐) functionality
- Add a new feature for tracking and recording history
- TODO: Fix an issue in 횟수측정 Action(행동) where count and time are recorded but not reflected in the icon