# Improvements & Known Issues ## Critical Bugs - [x] **Photos 404 in Docker** — serve via `/api/photos/[filename]` from `UPLOAD_DIR=/data/uploads` - [x] **WHO curves invisible when baby has measurements** — `connectNulls` on percentile Lines - [x] **Symptom icon missing** — `Activity` not in event-icon map - [x] **Default duration missing** — events saved without timer now get per-type default duration ## UI/UX Improvements ### Dashboard - [x] **Empty state for new users** — onboarding callout when no events today - [ ] **Active timers show which baby** — add baby name badge if multiple babies in family ### Growth - [x] **Single-measurement chart** — shows point + WHO curves (was blank until 2+ points) - [x] **"PC" label** — expanded to "PC — Périmètre crânien (cm)" - [x] **WHO percentile ⓘ tooltip** — explains P50/P3-P97 - [x] **Date field defaults to today** in add-measurement form - [ ] **PDF export percentile rank** — show WHO band (e.g. P25–P50) per row in PDF table ### Stats - [x] **Heatmap legend** — shows actual counts (0 1 2 3 4+) - [x] **Sleep timeline label** — "Fenêtre 19h – 11h" - [ ] **Chart zero-data gaps** — distinguish "no data" vs "zero events" visually ### Timeline - [x] **Filter state sticky** — persisted in URL param `?type=...` - [x] **Inline note save feedback** — ✓ flash after blur - [x] **Photo thumbnail clickable** — opens in new tab - [ ] **Select mode indicator** — show "3 sélectionnés · Supprimer" counter badge ### Photos - [x] **Lightbox wraps** — next on last → first, prev on first → last - [ ] **Delete from lightbox** — trash icon removes photo from event metadata ### Search - [x] **Results clickable** — events link to `/timeline?date=...`, notes to `/notes?date=...` - [x] **Result count header** — "X événements · Y notes" - [ ] **Date/type filter chips** on search results ### Notes - [x] **Unsaved indicator** — amber dot while dirty, green ✓ after save - [ ] **Date jump input** — calendar picker to jump to any date (not just nav arrows) ### Milestones - [x] **Sort by date** within month group ### Settings - [x] **Pushover key eye toggle** — show/hide pasted key - [x] **API key delete confirmation** — shows key name in confirm dialog - [x] **Sections collapsible** — SectionCard accordion - [ ] **Invite link TTL** — show expiry date next to copy-link button ### Event Modal - [x] **Timer resume indicator** — "Reprise du chronomètre" when loaded from localStorage - [x] **Milk lot hint** — "Sélectionnez un lot — il sera marqué comme utilisé" - [x] **Photo size client-side validation** — 5MB guard before upload ### Navigation - [ ] **Baby switcher `aria-label`** — accessibility label on select - [ ] **Unsaved state warning** — prompt before leaving dirty notes page ## Remaining (8 items) | # | Item | Effort | |---|------|--------| | 1 | Active timers show baby name | Small | | 2 | PDF export percentile rank | Small | | 3 | Timeline select mode counter badge | Small | | 4 | Photo delete from lightbox | Medium | | 5 | Notes date-jump calendar picker | Small | | 6 | Search date/type filter chips | Medium | | 7 | Settings invite link TTL | Small | | 8 | Nav baby switcher aria-label | Trivial | ## Feature Backlog - [ ] **Vaccination tracker** — dates, vaccine name, lot, next-due reminder + push alert - [ ] **Doctor visit log** — notes, prescriptions, next appointment date - [ ] **Teeth tracker** — visual mouth diagram, mark appearance date - [ ] **Baby schedule prediction** — "usually naps around 14h30" from historical patterns - [ ] **Growth chart in PDF** — embed chart image (jsPDF canvas) not just table - [ ] **Natural language digest** — "Emma feeds every 2h45 on average" weekly push - [ ] **Wellness check-in** — parent self-reports sleep/mood for postpartum monitoring - [ ] **Weight gain on-track indicator** — projected line on growth chart - [ ] **Contraction timer** — repurpose timer infra for pre-birth use