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)
-
Person-level conflict detection
- Events havefamily_membersarray (e.g.,["Sullivan"])
- When event A overlaps with event B, check if any member is in both
- Return conflict list in API response -
Day label auto-recalculation
-day_labelshould be computed fromstartdate on every read
- Not stored statically in JSON
Frontend (Daedalus)
-
Conflict badge on event cards
- Shows "⚠️ Double-booked with: [event names]"
- Different severity: same-person = red, same-day = yellow -
Family member tags
- Small pills showing who's involved:👤 Sullivan,👤 Harper,👤 Aundrea
- Color-coded by person
Integration Checks
- [ ] API returns
conflictsarray with overlapping events - [ ] API computes
day_labeldynamically - [ ] 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_membersfield 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