discourse/lib
Felix Wolfsteller c302c28a7d Switch ids in References-Header field of mails. (#5567)
This change allows email-clients to show threaded views of mails as
expected.  Apparently most algorithms expect the message ids of mails
in the Reference-header-field to be sorted such that they build a
traversal through the thread, so the oldest (original) message being
first, then its child, grandchild and so on until it arrives at the
message id that the "new" mail (that is to be sent) is the reply to.

MSGA [1]
+- Re: MSGA [1-1]
|  +- Re: Re: MSGA [1-2-1]
|  +- Re: Re: MSGA [1-2-2]
+- Re: MSGA [1-1]

If the stuff in brackets would be the message ID, the References-Header
field of a message that is a reply to [1-2-1] should look like:

References: 1, 1-1, 1-2-1

Discussion took place in:
https://meta.discourse.org/t/e-mail-threading-in-ml-mode-does-not-work-in-thunderbird

Main information taken from:
https://www.jwz.org/doc/threading.html
2018-02-22 10:48:23 +01:00
..
active_record/connection_adapters Expose replica_postgresql_connection to ActiveRecord::Base. 2017-11-24 09:35:45 +08:00
auth Add prompt and HD settings to the Google OAuth2 plugin. 2018-02-22 12:29:19 +08:00
autospec Switch to chrome headless mode instead of phantomjs. 2017-12-19 16:00:43 +08:00
backup_restore FIX: stop forking regular backup jobs 2017-12-21 09:00:48 +11:00
common_passwords
demon demo script for demonizing using fork exec 2018-01-11 13:51:52 +11:00
email Switch ids in References-Header field of mails. (#5567) 2018-02-22 10:48:23 +01:00
emoji FIX: correct shushing_face name 2018-01-05 11:01:23 +01:00
es6_module_transpiler FEATURE: Use Glimmer compiler for widget templates 2017-09-01 09:28:16 -04:00
file_store FIX: cache_file storage cleanup logic was wrong 2018-01-18 17:00:04 +01:00
freedom_patches FEATURE: Allow plugins to register a new locale 2018-01-25 14:57:41 +01:00
guardian FEATURE: Implement 2factor login TOTP 2018-02-21 09:04:07 +08:00
highlight_js update highlight.js to 9.12.0 2017-07-05 11:12:10 +02:00
i18n FEATURE: Allow plugins to register a new locale 2018-01-25 14:57:41 +01:00
import Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
import_export FEATURE: add category suppress from latest 2018-02-22 09:56:35 +11:00
javascripts Correct Arabic month names 2018-01-14 20:01:45 +01:00
middleware FEATURE: add instrumentation for all external net calls 2018-02-21 15:20:29 +11:00
onebox SECURITY: correct local onebox category checks 2018-02-14 10:40:46 +11:00
plugin FEATURE: Allow plugins to register a new locale 2018-01-25 14:57:41 +01:00
pretty_text Add quote and mention support for username formatters 2017-11-20 16:28:03 -05:00
rate_limiter FIX: regression around rate limiter 2017-12-04 21:44:16 +11:00
scheduler PERF: stop running background work between requests 2017-11-23 15:48:47 +11:00
search FEATURE: show tags in search results 2017-08-25 11:52:59 -04:00
sidekiq FEATURE: raise an event when a sidekiq job runs 2017-10-23 17:30:17 +11:00
site_settings deprecate existing site settings 2018-02-01 13:25:29 +05:30
stylesheet FIX: Stylesheet::Manager.stylesheet_link_tag cache should account for Discourse.current_hostname. 2018-02-20 09:53:15 +08:00
tasks FEATURE: search within title using in:title 2018-02-20 14:41:21 +11:00
validators New setting: minimum trust level to embed images in a post 2018-02-20 20:00:06 -05:00
wizard FIX: staff count on invites step of wizard should only include real users 2017-08-14 22:17:41 -04:00
admin_confirmation.rb SECURITY: Confirm new administrator accounts via email 2017-04-04 15:59:01 -04:00
admin_constraint.rb Add extensibility to admin constraints 2018-01-25 13:56:08 -05:00
admin_user_index_query.rb UX: Display lock icon in admin user lists when user has 2FA enabled. 2018-02-22 09:00:09 +08:00
age_words.rb
archetype.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
auth.rb
avatar_lookup.rb Remove irrelevant comment. 2017-09-08 14:07:24 +08:00
badge_queries.rb FEATURE: Support an end date for user silencing 2017-11-14 13:20:19 -05:00
base62.rb remove constant warning in base62 file 2018-01-19 19:52:42 +01:00
cache.rb Fix all the errors to get our tests green on Rails 5.1. 2017-09-25 13:48:58 +08:00
canonical_url.rb
category_badge.rb FIX: Category badge style of none was causing errors when rendering 2017-08-24 13:45:32 -04:00
column_dropper.rb FIX: Use CASCADE when dropping function. 2017-08-30 15:54:27 +08:00
comment_migration.rb Fix all the errors to get our tests green on Rails 5.1. 2017-09-25 13:48:58 +08:00
composer_messages_finder.rb improve reviving_old_topic education message 2018-01-26 00:06:53 +05:30
configurable_urls.rb
content_buffer.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
cooked_post_processor.rb SECURITY: correct local onebox category checks 2018-02-14 10:40:46 +11:00
crawler_detection.rb correct specs, ensure crawler layout only applies to html 2018-01-16 16:28:11 +11:00
current_user.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
custom_renderer.rb
custom_setting_providers.rb Plugins can register providers for global settings 2017-01-09 17:18:58 -05:00
db_helper.rb
directory_helper.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
discourse_cookie_store.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
discourse_diff.rb UX: Adding a sticky footer to the post history modal, removing bootstrap columns 2018-01-29 15:15:50 -05:00
discourse_event.rb Remove stubs on DiscourseEvent in tests. 2017-06-01 16:21:00 +09:00
discourse_hub.rb DEV: private means nothing for class methods 2017-11-01 16:43:19 +11:00
discourse_iife.rb Allow the loader to understand when files are moved 2016-11-15 11:41:16 -05:00
discourse_logstash_logger.rb FIX: severity_name was being logged incorrectly. 2017-11-17 08:55:21 +08:00
discourse_plugin_registry.rb FEATURE: Allow plugins to register a new locale 2018-01-25 14:57:41 +01:00
discourse_plugin.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
discourse_redis.rb FIX: in readonly mode don't double count pages 2017-10-25 13:19:43 +11:00
discourse_tagging.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
discourse_updates.rb REFACTOR: Avoid duplicated logic on server and client. 2017-11-21 17:10:04 +08:00
discourse.rb SECURITY: correct local onebox category checks 2018-02-14 10:40:46 +11:00
disk_space.rb
distributed_cache.rb Allow DistributedCache#delete to not publish changes. 2017-10-20 23:03:42 +08:00
distributed_memoizer.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
distributed_mutex.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
edit_rate_limiter.rb
email_backup_token.rb FEATURE: further restrict downloading of backups 2017-03-01 08:28:34 -07:00
email_cook.rb replace indentation with non-breaking spaces when cooking emails 2017-11-18 17:16:44 +01:00
email_updater.rb FIX: Don't skip validations when updating user's email. 2017-11-08 11:38:51 +08:00
email.rb UX: display text & html parts alongside raw email in incoming email modal 2017-03-08 23:15:42 +01:00
enum_site_setting.rb
enum.rb
excerpt_parser.rb FIX: support for generating excerpt when nesting <details> blocks 2018-01-22 19:17:35 +01:00
feed_element_installer.rb FEATURE: Replace SimpleRSS with Ruby RSS module (#5311) 2017-12-06 10:45:09 +11:00
feed_item_accessor.rb FEATURE: Replace SimpleRSS with Ruby RSS module (#5311) 2017-12-06 10:45:09 +11:00
file_helper.rb FinalDestination should only log when verbose is enabled 2017-10-31 17:16:59 +01:00
filter_best_posts.rb PERF: Remove Object#present? check introduced in e0d5d9670a. 2017-09-07 21:36:27 +08:00
final_destination.rb FIX: Cookies header didn't have the right format 2018-02-19 12:46:57 +01:00
flag_query.rb Many enhancements to the flagging / suspending interface. 2018-02-01 17:13:02 -05:00
flag_settings.rb Refactor flag types for more customization 2017-10-19 13:55:23 -04:00
gaps.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
git_importer.rb FEATURE: support uploads for themes 2017-05-10 15:47:11 -04:00
global_path.rb FEATURE: allow specifying s3 config via globals 2017-10-06 16:20:01 +11:00
guardian.rb rename 'enable_private_email_messages' to 'enable_personal_email_messages' 2018-02-01 13:25:29 +05:30
has_errors.rb
headless-ember.js
hijack.rb allow for no lograge 2018-02-21 15:40:37 +11:00
homepage_constraint.rb FEATURE: Allow the user to select a custom home page (#5268) 2017-11-10 06:45:19 +11:00
html_prettify.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
html_to_markdown.rb FIX: Remove other whitespaces except the line intents 2017-12-09 02:36:27 +05:30
image_sizer.rb
inline_oneboxer.rb FIX: inline oneboxer min title length of 2 2018-01-30 08:40:04 +11:00
introduction_updater.rb
ip_addr.rb
js_locale_helper.rb FEATURE: Allow plugins to register a new locale 2018-01-25 14:57:41 +01:00
json_error.rb FEATURE: View flags grouped by topic 2017-09-25 12:25:14 -04:00
letter_avatar.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
markdown_linker.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
mem_info.rb
memory_diagnostics.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
message_bus_diags.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
method_profiler.rb PERF: run post timings in background 2018-01-19 08:27:29 +11:00
mobile_detection.rb
new_post_manager.rb Rename "Blocked" to "Silenced" 2017-11-10 14:10:27 -05:00
new_post_result.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
notification_levels.rb
oneboxer.rb FIX: use the avatar of the post rather than the topic in local oneboxes 2018-02-20 19:49:39 +01:00
onpdiff.rb
pbkdf2.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
permalink_constraint.rb
pinned_check.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
plain_text_to_markdown.rb FEATURE: convert plain text emails to markdown 2017-12-06 01:47:51 +01:00
plugin_gem.rb Add some more debugging information when a plugin can't find a gem 2017-08-02 14:00:18 -04:00
post_action_creator.rb PERF: Avoid calling expensive PostGuardian#can_see_post? multiple times. 2017-09-08 14:07:24 +08:00
post_creator.rb FEATURE: Allow posting via email to read-only mailing list mirror category 2018-01-05 11:21:53 +01:00
post_destroyer.rb FIX: be consistent with how first posts in topics are counted. do like DirectoryItem.refresh_period :all 2017-11-10 12:18:25 -05:00
post_enqueuer.rb
post_jobs_enqueuer.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
post_locker.rb FEATURE: Staff members can lock posts 2018-01-26 14:01:30 -05:00
post_merger.rb
post_revisor.rb FIX: system user edits should not generate notifications 2018-01-30 22:21:07 +01:00
pretty_text.rb FEATURE: allow better fidelity for auto linkify, disable most tlds based linkify 2018-02-01 13:22:38 +11:00
primary_group_lookup.rb PERF: Remove N+1 query when generating posters summary. 2017-09-14 12:07:35 +08:00
promotion.rb REFACTOR: Track manual locked user levels separately from groups 2017-11-27 11:23:44 -05:00
rate_limiter.rb FEATURE: optional default off global per ip rate limiter 2017-12-11 17:52:57 +11:00
retrieve_title.rb FIX: inline oneboxer min title length of 2 2018-01-30 08:40:04 +11:00
route_format.rb FIX: RouteFormat is a better class name than RouteFormats 2017-12-21 15:30:32 -05:00
rtl.rb DEV: Move RTL into lib where it belongs 2017-07-03 15:26:57 -04:00
s3_helper.rb FIX: error setting tombstone bucket when set to old version 2017-11-13 15:36:45 +11:00
score_calculator.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
screening_model.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
search.rb FEATURE: search within title using in:title 2018-02-20 14:41:21 +11:00
secure_session.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
single_sign_on.rb Fix "duplicate method" issue 2017-11-02 12:33:35 +01:00
site_setting_extension.rb FIX: bypass all site setting work for shadowed method 2017-10-27 11:12:44 +11:00
slug.rb FIX: Topic#title were being parameterized when encoded slug is 2017-10-27 11:02:47 +08:00
socket_server.rb Merge pull request #4870 from tgxworld/fix_cleanup_sockets_servers 2017-05-24 12:33:34 -04:00
source_url.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
spam_handler.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
sql_builder.rb Fix all the errors to get our tests green on Rails 5.1. 2017-09-25 13:48:58 +08:00
staff_constraint.rb FIX: Return 404 if API access is invalid. 2017-08-10 18:27:01 +09:00
staff_message_format.rb More extensibility for custom silence/suspend messages 2018-01-19 11:35:19 -05:00
stats_socket.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
suggested_topics_builder.rb Avoid allocating an extra array. 2017-09-08 14:07:24 +08:00
system_message.rb Convert server side paths to use /u/ 2017-03-30 10:23:24 -04:00
table_migration_helper.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
text_cleaner.rb FIX: strip zero width spaces from topic title 2018-02-21 00:12:39 +05:30
text_sentinel.rb rename 'min_private_message_{post/title}_length' to 'min_personal_message_{post/title}_length' 2018-02-01 13:25:29 +05:30
timeline_lookup.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
topic_creator.rb FEATURE: Allow users to disable new PMs. 2017-10-19 12:32:55 +08:00
topic_list_responder.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
topic_query_sql.rb
topic_query.rb correct search in topic list 2018-02-20 20:47:44 +11:00
topic_retriever.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
topic_subtype.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
topic_view.rb FEATURE: log private message views 2018-01-29 08:08:08 +05:30
topics_bulk_action.rb Use PostDestroyer to delete topics when performing bulk operation (#5202) 2017-09-28 14:22:49 +02:00
trust_level.rb
twitter_api.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
unread.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
upload_creator.rb FIX: catch all server-side error when uploading a file 2017-12-27 16:33:25 +01:00
url_helper.rb Move escape_uri method to a more suitable place 2017-12-12 20:17:46 +01:00
user_name_suggester.rb FIX: suggested username should not be more than setting max_username_length 2017-03-29 18:19:28 +05:30
version.rb Version bump to v2.0.0.beta3 2018-02-15 17:48:34 -05:00
wizard.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00