mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 04:32:42 +00:00
nutrient.batch.ingest only reached the durable AuditLog table when inserted + updated > 0, so a batch where every entry was rejected (unit mismatch, out-of-range value, invalid day, a write failure) left the exact same empty trail as a phone that never called the endpoint at all. That made an empty nutrient_intake_days table unanswerable from the durable record - the question this surface exists to answer. Record the call unconditionally, the same shape measurement.batch.ingest and workout.batch.ingest already use (counts only, no per-entry health values, no user-typed content), plus an aggregate skip-reason breakdown so an operator can tell, from the row alone, that the phone posted and why nothing landed. HTTP status and the per-entry response shape are unchanged - a batch endpoint returning 200 with per-entry outcomes on a partial failure is the correct, documented contract and native clients already decode it.