aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers
diff options
context:
space:
mode:
Diffstat (limited to 'docs/superpowers')
-rw-r--r--docs/superpowers/specs/2026-09-27-cal-notif-design.md8
1 files changed, 5 insertions, 3 deletions
diff --git a/docs/superpowers/specs/2026-09-27-cal-notif-design.md b/docs/superpowers/specs/2026-09-27-cal-notif-design.md
index 4d02f90..f2bfea1 100644
--- a/docs/superpowers/specs/2026-09-27-cal-notif-design.md
+++ b/docs/superpowers/specs/2026-09-27-cal-notif-design.md
@@ -92,8 +92,9 @@ For each event occurrence, the offsets are the first of:
Every 30 s:
1. **Rescan** the `.ics` files when any calendar directory's mtime changed
- (vdirsyncer rewrites files there), and when the config or overrides file's
- mtime changed.
+ (vdirsyncer rewrites files there), when the config or overrides file's
+ mtime changed, and every hour regardless, so the window keeps moving even
+ when nothing changed.
2. **Expand** events into concrete occurrences within a window
`[now, now + largest offset in use + 1 day]`. The window follows the
largest offset, so a "1 week before" alarm is never dropped.
@@ -104,7 +105,8 @@ Every 30 s:
from there.
- Floating times are local time.
The result is a sorted list of `(fire_time, occurrence, offset)`,
- recomputed only on rescan.
+ recomputed on rescan, which also runs every hour so the window keeps
+ moving.
3. **Fire** every entry with `last_tick < fire_time <= now`, skipping those
older than `now - late` and those whose occurrence already started (except
offset 0, the "now" alarm).