Files
clockula/app
makiolaj 19efb67740 feat(data): timer writes that survive a clock change and a reboot
"+1 min" on a timer that has just rung resumes it with exactly a minute, in
one transaction — the user asked for a minute more than zero, not a minute
more than an anchor that has gone by. M2 left that branch paused with no test
to pin it; this is the gesture a timer app is judged on.

Every running row carries both anchors: the monotonic one it actually runs on,
and a wall-clock fallback for a reboot. A system clock change re-derives the
fallback from the monotonic remainder rather than leaving it stale, because a
stale fallback is how a thirty-minute timer rings twenty-nine minutes early
after a reboot.

Presets are app-wide, sanitised on read as well as on write, and go through
the store's update so two edits cannot swallow each other.
2026-09-12 16:48:21 +02:00
..