- 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>
- TodoItem: flatten to single-line row layout — checkbox, title,
pills, date/reset info, actions all inline. Use hover:bg-card-elevated
instead of bordered card with shadow.
- TodoList: tighten spacing from space-y-2 to space-y-0.5
- stylesheet.md: document list-view vs card-view convention —
list pages use single-line rows, grid pages use multi-line cards
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>
- CRIT-1: Add lat/lon validation ([-90,90] and [-180,180]) in Pydantic schema
- WARN-1: Replace deprecated get_event_loop() with get_running_loop()
- SUG-1: Add GeoSearchResult response model to /search endpoint
- SUG-2: Dashboard weather query enables on coordinates too, not just city
- SUG-3: Clean up debounce timer on component unmount
- SUG-4: Fix geocoding URL from HTTP to HTTPS
- SUG-5: Add fallback display when weather_city is null but coords exist
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>