fix(reminders): a reminder stays until you've seen it (#338) #352

Merged
jared merged 1 commits from fix/reminders-stick into lotus 2026-10-11 23:22:57 -04:00
Owner

Fixes #338.

ReminderMonitor showed an ordinary toast, which disappears after 4 s, and deleted the reminder immediately, with no system notification. A reminder that came due while the app was in the background, or the user was away, was lost.

Change

  • The reminder toast is sticky. Clicking it opens the message; the ✕ closes it.
  • The reminder is deleted only on that click or dismiss. An unseen one comes back on the next start.
  • When the window isn't focused, it also shows a system notification. It respects "show notifications" and quiet hours, and never includes decrypted E2EE text (N106).

Verified (headless; notifications granted, window unfocused):

  • the reminder fired at t+24 s and the toast stayed up for the remaining 51 s;
  • one system notification: Reminder :: call the dentist before 5;
  • it stayed in io.lotus.reminders until dismissed, then was removed.

tsc clean · unit tests pass · ESLint/Prettier clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5

Fixes #338. `ReminderMonitor` showed an ordinary toast, which disappears after 4 s, and deleted the reminder immediately, with no system notification. A reminder that came due while the app was in the background, or the user was away, was lost. **Change** - The reminder toast is **sticky**. Clicking it opens the message; the ✕ closes it. - The reminder is **deleted only on that click or dismiss**. An unseen one comes back on the next start. - When the window isn't focused, it also shows a **system notification**. It respects "show notifications" and quiet hours, and never includes decrypted E2EE text (N106). **Verified** (headless; notifications granted, window unfocused): - the reminder fired at t+24 s and the toast stayed up for the remaining 51 s; - one system notification: `Reminder :: call the dentist before 5`; - it stayed in `io.lotus.reminders` until dismissed, then was removed. `tsc` clean · unit tests pass · ESLint/Prettier clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
jared added 1 commit 2026-10-11 22:11:35 -04:00
fix(reminders): a reminder stays until you've seen it (#338)
CI / Build & Quality Checks (pull_request) Successful in 3m4s
CI / Trigger Desktop Build (pull_request) Skipped
CI / Docker image build & smoke test (pull_request) Skipped
CI / Secret scan (gitleaks) (pull_request) Successful in 7s
CI / Playwright smoke (e2e) (pull_request) Successful in 13m6s
ddf9da1a55
ReminderMonitor pushed an ordinary toast (auto-dismissed after 4 s) and
deleted the reminder at once, with no OS notification — one that came due
while the app was in the background or the user was away was lost.

Now the reminder toast is sticky; clicking it opens the message and
dismissing it closes it, and only then is the reminder deleted (an unseen
one returns on the next start). When the window isn't focused it also
raises an OS notification (respecting "show notifications" and quiet
hours; no decrypted E2EE text, per N106).

Verified headless (notifications granted, window unfocused): due at
t+24 s, the toast stayed up for the remaining 51 s, one OS notification
"Reminder :: call the dentist before 5", the reminder stayed in
io.lotus.reminders until dismissed, then was removed.

Fixes #338

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
jared merged commit 4736e23400 into lotus 2026-10-11 23:22:57 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#352