- Show vaccine reminder banner on home page
- Link to medical page for details
- Show due/overdue status
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- API endpoint /api/notifications returns due/overdue vaccines
- Checks child's birthDate to calculate due dates
- Returns notifications with type, status, days overdue
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Calculate schedule from child's DOB
- Add tab navigation for vaccines
- Show days overdue for missed vaccines
- Visual indicators (opacity for completed, red border for overdue)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add PATCH endpoint to set user passwords
- Add password modal UI in admin panel
- Update CLAUDE.md with latest features
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Families: add "New Family" button
- Users: add "Add User" form with family selector
- Add delete user option
- Include member_id for proper removal
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- View members per family
- Add new member by email
- Remove member from family
- Simple password auth migration file
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add password_hash to users table
- New login flow: email + password
- Sign up / Sign in toggle
- Simple password hashing (upgrade to bcrypt in prod)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add dark mode support throughout
- Add consistent header with back button
- Add modal dark mode styling
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Single JOIN query instead of N+1 selects for sessions
- Auto-create session when sending without one
- Send button enabled when typing
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add error state to display API errors
- Safe guard sessions.map with (sessions || [])
- Show error message on API failure
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Use sql template literals instead of unsafe queries
- Handle UUID child_id requirement properly
- Fetch messages separately to avoid GROUP BY issues
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add back link (←) to /menu in header
- Send button: gray out while loading to prevent double-click
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Header: align with Growth page pattern (p-4, back button left)
- Link: / → /menu
- Rename: Medical 💊 → Medical
- Fix: TT/Td → Tetanus and adult diphtheria (Td) to avoid Turbopack SWC parser error
Note: Apply fixes one change at a time between builds to avoid Turbopack caching issues.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Remove display_name from query (column doesn't exist in DB)
- Use sql template literals instead of unsafe()
- Fix settings page to show member.name properly
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Settings: Merge Family Settings + Family + Family Members into one Family section
- Add familyName to FamilyProvider from session API
- Show family name, plan, members count, children count in one place
- Show members list with roles
- Remove redundant sections
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add signout button to menu (below Settings)
- Fix profile API to fetch user from database session
- Fix profile page to save name to database
- Fix settings page to use familyId from FamilyProvider
- Fix family page to use FamilyProvider
- Fix activity, ai, medical, memories pages to use FamilyProvider
- Remove all hardcoded "default" familyId and childId values
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add API error handling when fetching children
- Set loading to false on API errors to prevent infinite loading state
- Fix pnpm-workspace.yaml for build approval
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>