docs: log KC-4 (task menu + Live Activity) with test steps

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
kutesir
2026-06-06 19:46:39 +03:00
parent d0d982f4f5
commit 6be52fdac1

View File

@@ -90,4 +90,53 @@ Two changes to the Today view:
Files: `KisaniCal/Views/TodayView.swift`
### Verification
Builds cleanly. Committed in `f66f032`.
Builds cleanly. Committed in `f66f032` (re-authored `a92e9d4`).
---
## KC-4 — Unified task context menu + Live Activity + calendar event actions
**Status:** In Progress (implemented & build-verified; Live Activity pending on-device test)
**Reported by:** User
**Area:** Tasks / Calendar / Widgets
### Description
Long-pressing a task (in any task list) should show a consistent menu:
Pin · Date · Move · Priority · Tags · Add to Live Activity · Delete — and the
actions must actually work. Long-pressing a non-subscription calendar event
should offer Edit / Delete only.
### Fix
- New shared `TaskMenuItems` (KisaniCal/Views/TaskContextMenu.swift) used by the
Today timeline, Matrix (grid + Overdue/Later/Completed lists), and Calendar
day timeline. Added `TaskViewModel.setPriority`.
- Live Activity (ActivityKit): `TaskActivityAttributes` (shared app+widget),
`LiveActivityManager` (start/update/end/toggle, iOS 16.1+), `TaskLiveActivity`
widget (lock screen + Dynamic Island), `NSSupportsLiveActivities` via project.yml.
- Calendar events (non-subscription, writable only): Edit opens the system
`EKEventEditViewController` (`EventEditView`); Delete via `CalendarStore.deleteEvent`.
Files: `TaskContextMenu.swift`, `TaskActivityAttributes.swift`,
`LiveActivityManager.swift`, `TaskLiveActivity.swift`, `TaskItem.swift`,
`MatrixView.swift`, `CalendarView.swift`, `TodayView.swift`,
`KisaniCalWidgets.swift`, `project.yml`. Committed in `d0d982f`.
### How to test
1. **Menu parity** — long-press a task in Today, in a Matrix quadrant, in a
Matrix list (Overdue/Later), and in the Calendar day view. All show the same
7 items.
2. **Each action** — Pin (row pins), Date → Today/Tomorrow/Next Week/Remove
(due date changes), Move (task changes quadrant), Priority (flag changes),
Tags (category changes), Delete (removed).
3. **Live Activity** — tap "Add to Live Activity" → a banner appears on the Lock
Screen / Dynamic Island with the task title + countdown; tap again to end.
**Requires a real iOS 16.1+ device** (not visible in the Simulator).
4. **Calendar events** — long-press a personal (writable) event → Edit opens the
system editor; Delete removes it. A subscribed/RSS event (F1, TV) shows **no**
menu.
### Known limitations
- Live Activity visuals only render on a physical device; the design is a first
pass (orange accent + timer) and can be refined.
- Uses the iOS 16.1 `Activity.request(...contentState:...)` API (deprecation
warning on 16.2+, still functional).