feat: pre-messages / next version of download on demand (#7371)

Closes <https://github.com/chatmail/core/issues/7367>

Co-authored-by: iequidoo <dgreshilov@gmail.com>
Co-authored-by: Hocuri <hocuri@gmx.de>
This commit is contained in:
Simon Laux
2026-01-08 22:14:32 +00:00
committed by GitHub
parent 46bbe5f077
commit 2631745a57
43 changed files with 2843 additions and 1393 deletions

View File

@@ -354,7 +354,17 @@ pub enum Config {
DonationRequestNextCheck,
/// Defines the max. size (in bytes) of messages downloaded automatically.
///
/// For messages with large attachments, two messages are sent:
/// a Pre-Message containing metadata and text and a Post-Message additionally
/// containing the attachment. NB: Some "extra" metadata like avatars and gossiped
/// encryption keys is stripped from post-messages to save traffic.
/// Pre-Messages are shown as placeholder messages. They can be downloaded fully using
/// `MsgId::download_full()` later. Post-Messages are automatically downloaded if they are
/// smaller than the download_limit. Other messages are always auto-downloaded.
///
/// 0 = no limit.
/// Changes only affect future messages.
#[strum(props(default = "0"))]
DownloadLimit,
@@ -438,8 +448,8 @@ pub enum Config {
/// using this still run unmodified code.
TestHooks,
/// Return an error from `receive_imf_inner()` for a fully downloaded message. For tests.
FailOnReceivingFullMsg,
/// Return an error from `receive_imf_inner()`. For tests.
SimulateReceiveImfError,
/// Enable composing emails with Header Protection as defined in
/// <https://www.rfc-editor.org/rfc/rfc9788.html> "Header Protection for Cryptographically