Files
videorem/CODEX_REPORT.md

55 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Codex Report
## Summary
- Implemented Apple Calendarstyle month + list sync with vertical month paging, unified German locale + Monday-first calendar config, and improved year view behavior.
- Fixed multiple build warnings/errors related to Swift 6 actor isolation and AVAsset deprecation.
- Added dynamic year title that updates based on which year occupies most of the year view.
## Key Behavior Changes
- Month view: vertical paging, large top-left month header (Month + Year), list syncs with calendar selection.
- Year view: top-left large year title follows scroll position; scrolls to selected year on entry.
- “Heute” button added to jump to today.
- Calendar list now scrolls across all entries (not just current month) to enable list-mode feel.
## Major File Changes
- `videorem/ContentView.swift`
- Reworked month view to vertical paging `ScrollView` with `.scrollTargetBehavior(.paging)` and `scrollPosition`.
- Added `monthScrollID`, `yearTitle` tracking, `YearCenterPreferenceKey`, and year title UI logic.
- Added `setupMonthPages(focusDate:)` and ensured month ranges include selected month/year.
- Fixed month view not snapping back to today when coming from year view.
- Adjusted year view to use `viewModel.selectedDate` for scroll anchoring and title.
- `videorem/CalendarConfig.swift` (new)
- Centralized locale/calendar config (`de_DE`, Monday-first) and formatters.
- `videorem/Date+Extensions.swift`
- Switched to shared formatters from `CalendarConfig`.
- `videorem/CalendarViewModel.swift`
- Uses `CalendarConfig.calendar` and starts `selectedDate` at start of month.
- `videorem/MonthCalendarView.swift`
- Accepts `monthDate` and `selectedDay` for correct highlighting across months.
- `videorem/MonthDayCell.swift`, `videorem/YearMonthCell.swift`, `videorem/YearCalendarView.swift`, `videorem/VideoListView.swift`, `videorem/HomeView.swift`
- Unified calendar usage; bumped typography sizes for legibility.
## Build Fixes
- `videorem/VideoListRow.swift`
- Replaced `AVAsset(url:)` with `AVURLAsset(url:)`.
- `videorem/VideoRecorderView.swift`
- Marked `VideoRecorder` as `@MainActor`.
- `captureSession` is `nonisolated`, start running on a dedicated `sessionQueue`.
- Timer updates `currentDuration` on main actor; captured `recordingStartTime` outside Sendable closure.
## Open Issues / Known Follow-Ups
- Confirm year view title updates correctly while scrolling (uses geometry preference).
- Verify month list + calendar sync feels right for months with no entries (current list only shows dates with entries).
- Potential UI polish: sticky year headers, event list density like Apple Calendar.
## Commands Run
- `rg --files`
- `rg -n ...`
- `sed -n '...' ...`
- `xcodebuild` failed due to CoreSimulator/DerivedData permission issues in sandbox.
## Notes for Next Session
- If year view still misaligns, check `YearCenterPreferenceKey` usage and `coordinateSpace("yearScroll")` in `ContentView`.
- If month view still jumps to today, check `setupMonthPages(focusDate:)` and ensure `viewModel.selectedDate` is set before switching modes.
- For builds, run locally with proper permissions or rerun `xcodebuild` with escalated privileges.