a5f7bce09fee7fd11f71209c2a7d2c4e8505a7f6
Some checks failed
CI / build-and-test (push) Has been cancelled
Recurring tasks only had Delete (erases the task + its entire completion history) as a way to stop a series -- no in-between option to wind one down while keeping its record. TaskViewModel.completeAndStopSeries(_🔛) marks the occurrence complete and sets recurrenceEnd to that day -- a field that already existed in the model and was already respected by isOccurrence, just had no UI. Task, title, and full completedOccurrences history stay intact; only future occurrences stop. New menu item in the shared TaskMenuItems (Today/Matrix/Calendar), shown only for recurring tasks. Wired through all 8 call sites, several via a new optional closure threaded through intermediate wrapper views (QuadrantCard, DayTimelineView, OverdueCard, UpcomingSection). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
Personal productivity and fitness companion — iOS SwiftUI app
Languages
Swift
99.3%
HTML
0.4%
Shell
0.3%