Keep an open message unread after Mark as unread #30

Merged
jcoffey-dev merged 1 commits from fix/mark-unread-sticks into main 2026-10-05 03:48:28 +00:00
1 Commits
Author SHA1 Message Date
jcoffey-dev 290cce571a Keep an open message unread after Mark as unread
ci / node (pull_request) Skipped
ci / version (pull_request) Skipped
ci / docker-build (pull_request) Skipped
ci / publish (pull_request) Skipped
github/ci (branch) GitHub Actions
ci / github (pull_request) Successful in 2m14s
Marking the open message unread re-ran the mark-read-after-delay timer,
which found an expanded unread message and marked it read again: the
unread count showed 1 for a moment, then dropped back. With the default
delay of 0 it was re-read before the reader could leave the message.

ThreadView now remembers which messages have been read while the
conversation is open, and the timer leaves those alone until it is
opened again. A message that was read here and is unread now was made so
on purpose, by this reader or on another device. Mail that arrives
unread while the thread is open is still marked read as before.

Verified on the mock: on main the unread count never rises after Mark as
unread; with this change it rises and stays. The new component test
fails on main in both the reported case and after the timer has read the
message once. No new strings.

Not changed: the report also suggests going back to the folder after
Mark as unread. That is a behavior change, left for a separate decision.

Fixes #25. Reported by @mbjboon82.
2026-10-04 20:31:37 -07:00