fix(agenda): stop yesterday's all-day event surfacing under today (#65) #85
Reference in New Issue
Block a user
Delete Branch "fix/agenda-allday-today"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes an all-day event (e.g. a birthday) set for one day also appearing under the next day's "today" heading in the Agenda and the agenda widget, in time zones east of UTC. Reported as Codeberg #65 and verified on-device.
Cause
The agenda window starts at the anchor's local midnight, which east of UTC is the previous day's 22:00 UTC. All-day events live at UTC midnights with an exclusive next-midnight end, so yesterday's all-day event still overlaps today's window start and is returned by the provider.
groupAgendaDaysclamped its first day up to the anchor and — via a trailingcoerceAtLeast(firstDay)on the last day — pulled it onto the anchor's "today" section. The earlier multi-day fix (!83) only stopped the forward leak on interior days; this is the backward pull at the anchor, which is why it showed up only in the today section.Fix
Drop instances whose true last day (resolved in UTC for all-day events) falls before the anchor, or whose first day falls past the window end — they occupy no visible day and must not be clamped onto an edge.
Tests
Adds two eastern-zone (Europe/Berlin) regression tests to GroupAgendaDaysTest. Full agenda + unit suites green; assembleDebug built and installed on-device for verification.
Closes #65 (Codeberg).
🤖 Generated with Claude Code