mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-10 05:12:14 +00:00
The Today hero stayed on its all-clear line while a dose was actually due: the dose-window item only fired once the slot was already overdue, so a dose the user could take right now produced no rail item at all. Emit the item from the moment the dose becomes takeable — the on-time window's lead plus the early grace, the same instant logging it starts crediting the slot — and give the two faces distinct wording and status: a due dose reads calm and informational, an overdue one keeps the warning. A settled day still emits nothing, and a cached block whose anchor has since passed keeps rendering neither face. Push reminders are untouched; they still fire only on overdue. The briefing grounding gate discarded the whole block over one number it could not verify, and it could not verify plenty of legitimate ones: the allow-set was a hand-maintained list of feature blocks that had already drifted from the prompt three times, and still omitted medication compliance, the context counters, the correlation coefficients, every coverage object and the comparison snapshot — all of which the prompt hands the model verbatim. Derive the allow-set by walking the prompt payload instead, so grounded means exactly what it says: a figure the server gave the model. A fabricated number still matches nothing. Fix the disposal to match. A content-failed retry left a hole while a transport-failed one fell back to the previous cached briefing, though in both cases the rejected text is discarded and the previous briefing passed this same gate when it was written. Fall back on both paths, and only report the briefing as withheld when there is genuinely nothing to show. The on-demand route had no fallback at all; it now mirrors the background generator that writes the same cached payload.