# Build: Conflict Detection & Family Member Tags ## Status: 🟡 IN PROGRESS ## Problem Statement Matt rescheduled "Sullivan Dentist Appt" to Sat May 02 — same day as "Family Movie Night" — but no warning appeared. Also, day label didn't update (still showed "Fri May 01"). ## What We Need ### Backend (Socrates) 1. **Person-level conflict detection** - Events have `family_members` array (e.g., `["Sullivan"]`) - When event A overlaps with event B, check if any member is in both - Return conflict list in API response 2. **Day label auto-recalculation** - `day_label` should be computed from `start` date on every read - Not stored statically in JSON ### Frontend (Daedalus) 1. **Conflict badge on event cards** - Shows "⚠️ Double-booked with: [event names]" - Different severity: same-person = red, same-day = yellow 2. **Family member tags** - Small pills showing who's involved: `👤 Sullivan`, `👤 Harper`, `👤 Aundrea` - Color-coded by person ## Integration Checks - [ ] API returns `conflicts` array with overlapping events - [ ] API computes `day_label` dynamically - [ ] Event cards show conflict warnings - [ ] Event cards show family member pills - [ ] HTMX swap preserves conflict state ## File Mapping | Agent | File | Destination | |-------|------|-------------| | Socrates | backend/event_conflict.py | Logic for conflict detection | | Socrates | backend/router_patch.py | Updated `/api/events-dashboard` endpoint | | Daedalus | frontend/events.html | Updated template with pills + warnings | | Daedalus | frontend/style_patch.css | CSS for pills and conflict badges | ## Notes - Test data needs `family_members` field added - Conflict detection: naive date overlap (same day = potential conflict) - Future: time-based overlap, not just date --- *Build started: 2026-04-29 16:43 UTC*