From c0eb1ffa23a3c9d6128a6f80e1db077b8377fa56 Mon Sep 17 00:00:00 2001 From: kutesir Date: Wed, 10 Jun 2026 10:09:55 +0300 Subject: [PATCH] docs: log KC-13 (recurrence redesign + classic Matrix) Co-Authored-By: Claude Opus 4.8 --- KisaniCal/ISSUES.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/KisaniCal/ISSUES.md b/KisaniCal/ISSUES.md index ecbc1bc..3ca3ddb 100644 --- a/KisaniCal/ISSUES.md +++ b/KisaniCal/ISSUES.md @@ -399,3 +399,33 @@ Files: `TaskItem.swift`, `CalendarView.swift`. with Clear) whenever a recurrence is selected. Files: `TaskItem.swift`, `CalendarView.swift`, `TodayView.swift`, `MatrixView.swift`. + +--- + +## KC-13 — Recurrence redesign: single occurrence, new sections, classic Matrix + +**Status:** In Progress (implemented & build-verified, pending device build) +**Reported by:** User +**Area:** Tasks / Calendar / Matrix + +### Description +The first recurrence pass used calendar-expansion in lists — a daily task showed +in Today, Tomorrow, Next 7 Days, and Upcoming simultaneously (planning noise). +Should behave like TickTick: one task, one next occurrence, one source of truth. + +### Fix +- **Single active occurrence (P1/P5):** `nextActiveOccurrence` + `activeRows` — each + recurring task contributes ONE row (its next un-completed occurrence). Completing + rolls forward; no future duplicates in lists. Calendar grid still shows per-date. +- **Sections (P2):** replaced Today / Next 3 Days / Upcoming with + **Today / Tomorrow / Next 7 Days / Later** (`todayTasks`/`tomorrowTasks`/ + `next7DaysTasks`/`laterTasks`; `UpcomingSection` gained a `title`). +- **Icons (P3):** ⏰ reminder + 🔁 recurring on the right of each row; fixed the + hardcoded "Annual" label to show the real frequency. +- **Matrix (P4):** classic Eisenhower — importance is user-assigned (row), urgency is + derived from the deadline (within `urgentWindowDays` = 7). `displayQuadrant` + + `matrixTasks` group by the computed quadrant; recurring rolls forward. Chosen over + the fully-auto "far = Q4" model so the user keeps control of importance. + +Files: `TaskItem.swift`, `TodayView.swift`, `MatrixView.swift`. +Commits: `b4e36db` (lists + icons), `2f1bc5d` (Matrix).