docs: log KC-13 (recurrence redesign + classic Matrix)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
kutesir
2026-06-10 10:09:55 +03:00
parent 2f1bc5d1c3
commit c0eb1ffa23

View File

@@ -399,3 +399,33 @@ Files: `TaskItem.swift`, `CalendarView.swift`.
with Clear) whenever a recurrence is selected. with Clear) whenever a recurrence is selected.
Files: `TaskItem.swift`, `CalendarView.swift`, `TodayView.swift`, `MatrixView.swift`. 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).