Dashboard symmetry for daily-schedule intake projection
v1.4.39.3 fixed /api/medications/intake?scope=today to project active schedules through the new expandTodayIntakes helper and idempotently backfill missing rows for daily meds (daysOfWeek: null). /api/dashboard/summary reads the same today-window for its compliance tile but had no projection step, so the iOS Dashboard tile fell to "Heute nichts geplant" even when the intake route surfaced the same meds correctly.
Fixed
/api/dashboard/summarycompliance tile now mirrors the intake route's projection. Reuses the canonicalexpandTodayIntakeshelper plus an idempotentcreateMany({ skipDuplicates: true })that survives a concurrent intake-route hit racing the same(userId, medicationId, scheduledFor, REMINDER)row in before the existence probe converges.
Operator notes
- No migration. No env-var change. No API contract break.
- Daily meds with
daysOfWeek: null(DB convention for "every day") now surface in the iOS Dashboard tile + Erfassen sheet the moment the user opens the app, instead of waiting for the reminder worker to enter RED phase at the end of the dose window.
See the CHANGELOG for full history.