fix(alarms): keep a skip on the next ring after any edit, and say when a pause ends

Moving the time or changing the days left a pending skip pointing at the
old sequence, so the skipped day could ring at its new time. Every editor
change that can move a fire time now re-arms the skip.

A pause under way now reads "Paused, back on Thu, Oct 29" instead of
naming its last day, which read as the day it ends before. Reopening a
begun pause keeps its start, the date pickers take their bounds from the
clock when they open, and the dismiss chooser shows the scheduled date and
pause like the list does.
This commit is contained in:
makiolaj committed 2026-10-22 07:43:30 +02:00
1 parent 471cbdabd8
commit 1dcd743e5b
11 files changed
+101 -53

No files matched your search

+6 -5
View File
@@ -1329,11 +1329,12 @@ occurrence ring late through the grace window. The resolver reports
and the engine writes them as column-targeted `UPDATE`s conditional on the
stored value still being the one it resolved, so a pause the editor has just
picked is never cleared by a resolution of the old one, and no other column is
rewritten. Changing a pause calls `AlarmEngine.onPauseChanged`, which drops a
skip watermark still in the future so the resolver re-arms it on the new
sequence: removing a pause must not leave the skip on the first ring after the
old one, and adding a pause over the skipped day must not spend the skip on a
day already silent.
rewritten. Every editor write that can move a fire time (time, days, date,
pause) goes through `AlarmEngine.onScheduleEdited`, which drops a skip
watermark still in the future so the resolver re-arms it on the new sequence:
removing a pause must not leave the skip on the first ring after the old one,
adding a pause over the skipped day must not spend the skip on a day already
silent, and moving the time must not let the skipped day ring at the new time.
The surfaces never show a stale one in the meantime: `AlarmSchedule` shows a
date only while its occurrence is still ahead and a pause only while its last