Forcing email context - input requested

I’ve added the ability for users to enable the forcing of email context in their notifications and sent a pull request to Discourse, however it requires more discussion of the feature on meta, the reason for this post.

To answer @sam’s questions on the PR:

I am pretty uneasy with this change, its a very confusing setting to be adding to users.

Personal opinion - I don’t think it’s confusing. The option is labelled “Always include previous posts in notifications” which to me explains the purpose of the setting. Would some clarification text of what happens if the option is unchecked suffice?

also where do you stop? allow them to specify the amount of context? allow them to specify that context is included regardless of what was previously sent? allow them to specify if context goes before or after.

At the moment I just wanted to get the setting in there, but I’m not averse to extending it to a degree, like with the email digest. I could see this working as the same label, and if checked, a dropdown that offers some pre-defined settings (perhaps from 0 to the site configured context?). The site configured context option could then be reworded to imply a maximum amount of email context (which, to be honest, is what it already means currently).

As to where to stop, I don’t see a need to ‘stop’, that’s what software development is about, to me at least. We keep iterating over a feature to improve its use to users.

What are people’s thoughts and suggestions on this feature?

It’s my first time dabbling in Ruby, and first commit to the project, so I’d like to see it in there in some shape or form :smile:

See also:


@codinghorror what are your thoughts here?

We do have at least one customer requesting this so I am inclined to accept.

I don’t really like that it is a per-user preference, adding to the cognitive load of all the other settings that users have to deal with… but I suppose a site-wide default can never be correct either.


What I struggle with is explaining to users what this does:

Does “Always include context” mean that context is always included regardless of it being sent to you in the past?

What does this setting even do if “context” is already set in site settings?

Correct, yes. Always included up to the limit specified in the email posts context global site setting (which defaults to 5).

The thing I find confusing as a users is

I have “always include context” off, but Discourse keeps sending me context, why?

I guess this works for me way better:

Email context: (dropdown) “Always|Auto|Never” (auto being default)

1 Like

Is auto only show what you haven’t seen?

Yes, which is how it works now.

Doesn’t seem to always behave that way. Including the one in the screenshot there are three previous replies and two are from me.



We send you as context up to 5 posts that we did not email you before.

What about “Always / Always (Inverted) / Auto / Auto (Inverted) / Never”?

Because there have been requests to put the context on the top, and as long as we’re experimenting, I want to try out the “context on top” (the “inverted” option).

If people like what I’ve called “inverted” (context on top), then go ahead and swap it to the default.

I strongly oppose all this inversion talk. I like the drop down idea though.

1 Like

I don’t have much opinion on the email context option here.

I do think it would be good to add one piece of context above the post that caused the email, that specifically would be the post it is a reply to.

So if the email notification is due to a reply, you should see the post in question immediately above in the email. This would especially be important when the post is replying to something further than 5 replies back.


True that is also not addressed here. We should probably include the thing it is a direct reply to first, before dropping in the 5 prior unread (or read, if you want that) posts

1 Like

It really depends, in mailing list mode where every reply is in your mailbox you don’t want to duplicate any information. Also if someone is replying to 4000 word post you wrote odds of you figuring out what just happened would approach zero.

Also this is overloading the concept of context with “context type 1” and “context type 2” something that right away makes me uneasy.

It could be treated like a quote would. So it would only show a preview of the content. Having the context is important, many times I’ve got a reply to a post that wasn’t in the 5 before and subsequently I didn’t immediately know what the context was. I had to go to the thread, then click again to get to my post to know the context.

As far as I can tell, part of the reason to have the 5 previous posts for context is for solving the above, but it falls short.

Some examples:

Even with my post in the previous replies, it is hard to see that the reason I got the email is because it was a reply to me. We show that context on the forums, it is one of the core design tenants, I feel it is a shame we don’t show similar context at the least in the emails as well.

1 Like

Does not matter, allowing the user to set user pref for prior posts in emails to none, zero, zilch, zip, nada is a clear win.

It is true that a sane reply to a 4000 word post would quote some context or otherwise carry context. But a small reply to a small post that is number 45 of 100 in the topic… I think the target post should be included in the payload as context, unless user has set email context to zero / never.


But… context is always below, this is setting a new precedent and including context above.

Also, this little twist is complicating the setting being discussed here

Context: None|Auto|5 Previous Posts|5 Previous Posts + Reply

Nah, it would still be below, the heading would say

In Reply To

And then

Previous Replies

As before. And this would ONLY happen for direct replies to stuff more than n posts back anyway.


I am confused, context now include up to 5 last posts unconditionally, it does no offsetting.

would “in reply to” be fished out of the “previous replies” or would it remain and be duplicated.

1 Like