I recently encountered a problematic combination of features:
Discourse sends e-mail notifications, and allows people to reply the thread by replying to the notification e-mail.
Discourse allows people to edit postings right after posting them.
Discourse does not re-send updated notifications when there’s an edit.
Unfortunately these features can cause a problematic interaction like this:
User A posts something, immediately sees they forgot something and edits to add the missing thing.
User B gets notification containing the original post, and replies by e-mail some hours later, condescendingly pointing out the missing thing.
User A sees user B as having complained about something that was actually posted, and concludes that user B didn’t bother to read before replying.
Result: Thread derails in acrimony, civilized discussion ends.
I think if you’re going to allow people to reply by e-mail, you need to make a best effort at ensuring that the thread they see in their e-mail resembles the thread on the web as closely as possible in content — even if that means sending more than one notification message.
Either that, or web edit should be disabled when e-mail reply to notifications is enabled.
This is already more or less handled since email notifications by default don’t send for 5-10 minutes after posting to give the poster time to edit. If edits occur way after the fact, I don’t see any way around this, I would classify it as human error.
Also note that (by default), the ninja edit window is shorter than the delay for sending out mail notifications, so any edits made after mail notifications have been sent will be recorded in the edit history (for public posts at least).
What is wrong with setting email_time_window_mins to a large enough number?
You know, you’ll eventually need to send out the email. You can’t wait forever. And theoretically it is possible that the original poster will edit his post 1 year after he posted and had some new thoughts. However, you’re unlikely to want to wait that long. You’re likely to want to set some reasonable time limit.
So just increase email_time_window_mins to a value you are comfortable with.
If you set post_edit_time_limit to be shorter than email_time_window_mins, then you effectively disallow editing the post after the email is sent.