Files
videorem/CODEX_REPORT.md

3.1 KiB
Raw Permalink Blame History

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.