2f1bc5d1c30ee573e1e8fba6e4488f34f50ccf94
Quadrant is now computed (importance x urgency) instead of a fixed assignment. Importance comes from the task's assigned row (Q1/Q2 vs Q3/Q4); urgency is derived from the (next active) due date being within urgentWindowDays (7). So important tasks slide Q2->Q1 as they near, unimportant slide Q4->Q3, and recurring tasks roll forward (a completed occurrence is replaced by the next, never piling up in a quadrant). - VM: displayQuadrant/isUrgent/effectiveDue; matrixTasks groups by the computed quadrant and uses each recurring task's single next occurrence. - MatrixView grid + drill-down (overdue/later/completed) group by it. 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%