- C1: Add onError handlers to dismiss/snooze mutations in useAlerts
- C2: Clear snoozed_until when dismissing via update endpoint
- W1: Handle future dates in getRelativeTime
- W2+S3: Add Escape key, aria-expanded, role=menu to SnoozeDropdown
- W4: Remove redundant field_validator (Literal suffices)
- W7: Validate recurrence_rule with Literal['daily','weekly','monthly']
- S2: Clean up delete confirmation setTimeout on unmount
- S6: Cap AlertBanner height with scroll for many alerts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Compact h-16 header with segmented filter, search input
- Stat cards (Active/Overdue/Dismissed) with semantic colors
- New ReminderItem component: single-line rows with grouped sections
- Optimistic delete, 2-second confirm pattern, dismiss action
- Mark Stage 4 Reminders as completed in ui_refresh.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Already in .gitignore but files were tracked from before.
Local files preserved, just untracked from the repository.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- ui_refresh.md: Stage 3 marked complete with full item list
- progress.md: Added Phase 8-10 milestones, updated file inventory
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>