Date: April 7, 2026 Current Phase: Phase 8 (Testing & Bug Fixes) — Continued Previous Log: Day 10 (Upsert support + full test suite)


✅ Phase 8 Progress

Task Description Status
Backend upsert verification Confirmed confirm/skip upsert behavior ✅ Done
Weekly schedule save fix Backend PATCH now updates schedules table ✅ Done
Weekly home screen filter Only show medications on matching weekdays ✅ Done
Edit screen weekday highlight Selected weekdays now highlighted on entry ✅ Done
History date tap detail view Tap date to see individual medication logs ✅ Done
History stats accuracy fix Fixed total count (was including inactive schedules) ✅ Done
History log sort order Done → Skipped → Missed ✅ Done
History instant sync History updates immediately after confirm/skip ✅ Done
Signup redirect fix After signup, navigate to login screen ✅ Done
DB cleanup All test users and data deleted ✅ Done

1. Backend Upsert Verification

Confirmed dose_service.py confirm / skip correctly performs upsert:


2. Weekly Schedule Save Fix

Problem

medication_service.update() only updated the medications table and completely ignored schedule changes. Weekly day selections were lost on save.

Root Cause

Fix — schemas/medication.py

Added ScheduleUpdate model and schedules field to MedicationUpdate:

class ScheduleUpdate(BaseModel):
    scheduled_time: str
    cycle_type: str
    cycle_value: Optional[dict | list] = None

class MedicationUpdate(BaseModel):
    name: Optional[str] = None
    dosage: Optional[str] = None
    color_tag: Optional[str] = None
    memo: Optional[str] = None
    schedules: Optional[list[ScheduleUpdate]] = None  # Added