mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 12:32:43 +00:00
The nearest test enumerated only the schedule under test, and production rows carry no schedule identity. On a medication composed of sibling schedule rows (08:00 daily plus 12:00 daily, the wizard's compose shape) a row snapped exactly to A's 08:00 was also asked about B's 12:00, and B's own occurrences alone never showed that A's 08:00 is nearer: next-due, the display due and the compliance cycle all answered tomorrow's 08:00 at 09:00 local, the same swallow one level up. The neighbour set is now the union of every schedule's occurrences within the radius, memoised per row, since it depends on the row alone and a predicate asks about many slots. The rolling short-circuit still looks at the schedule under test only. The era filter in the next-due predicate compared a field no caller ever populated, so it is gone along with the test that pinned it; the era floor lives in the overdue search's band range and in the forward walk's start at now, as it always did in production. Tests: sibling schedules in both next-due and the compliance cycle, the exact tie between two slots, the 25-hour fall-back day (a pair across the repeated hour, and a row anchored in the old offset), and the ad-hoc epsilon case now stands on the ad-hoc row alone.