From eba39b04759df9c2733759458d0468f83bcefd5e Mon Sep 17 00:00:00 2001 From: kutesir Date: Wed, 8 Jul 2026 10:44:31 +0300 Subject: [PATCH] fix(analytics): mark WorkoutSnapshot.init(vm:) @MainActor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Build error (Xcode, Swift 6 strict concurrency): WorkoutSnapshot.init(vm:) read history/workoutDates/schedule/missedDates from @MainActor WorkoutViewModel in a nonisolated init. The init is only ever called from AnalyticsService.reconcile (@MainActor) — mark it @MainActor to match its actual call site. Co-Authored-By: Claude Opus 4.8 --- KisaniCal/Analytics/AnalyticsService.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/KisaniCal/Analytics/AnalyticsService.swift b/KisaniCal/Analytics/AnalyticsService.swift index 5cc39f4..decc80e 100644 --- a/KisaniCal/Analytics/AnalyticsService.swift +++ b/KisaniCal/Analytics/AnalyticsService.swift @@ -36,7 +36,7 @@ final class AnalyticsService: ObservableObject { var healthByDate: [String: RawHealthDay] = [:] // HealthKit reference init() {} - init(vm: WorkoutViewModel) { + @MainActor init(vm: WorkoutViewModel) { self.logByDate = Dictionary(vm.history.map { ($0.date, $0) }, uniquingKeysWith: { a, _ in a }) self.workoutDates = Set(vm.workoutDates) self.scheduledWeekdays = Set(vm.schedule.keys)