Merge main (upstream v0.16.24) into feature/compliance-roles
ci / fork-checks (pull_request) Successful in 15s
ci / build (pull_request) Successful in 7m33s

The schema conflicted as a binary file: taken from main and the one
edit here re-applied (sysComplianceGet after sysLegalHoldExport). The
import kept the permission count at 673, so the new id stays 673.

Retested on the merged tree in its own target directory: the
compliance and system suites pass. One earlier system run failed in
purge.rs (an imported blob not found) and didn't recur.
This commit is contained in:
2026-09-28 09:26:27 -07:00
96 changed files with 4212 additions and 1066 deletions
+2 -2
View File
@@ -18,7 +18,7 @@ use jmap_proto::{
error::set::{SetError, SetErrorType},
method::import::{ImportEmailRequest, ImportEmailResponse},
object::email::EmailProperty,
request::MaybeInvalid,
request::reference::MaybeIdReference,
types::state::State,
};
use mail_parser::{HeaderName, MessageParser};
@@ -128,7 +128,7 @@ impl EmailImport for Server {
}
}
let MaybeInvalid::Value(blob_id) = email.blob_id else {
let MaybeIdReference::Id(blob_id) = email.blob_id else {
response.not_created.append(
id,
SetError::invalid_properties()
+5 -2
View File
@@ -854,8 +854,11 @@ impl EmailSet for Server {
new_data.set_mailboxes(
ids.into_expanded_boolean_set()
.filter_map(|id| {
UidMailbox::new_unassigned(
id.try_into_property()?.try_into_id()?.document_id(),
let mailbox_id =
id.try_into_property()?.try_into_id()?.document_id();
UidMailbox::new(
mailbox_id,
data.inner.message_uid(mailbox_id).unwrap_or(0),
)
.into()
})
@@ -641,6 +641,7 @@ fn map_dns_server(dns_server: &DnsServerBootstrap) -> Option<registry::schema::s
DnsServerBootstrap::Ns1(inner) => DnsServer::Ns1(inner.clone()).into(),
DnsServerBootstrap::OracleCloud(inner) => DnsServer::OracleCloud(inner.clone()).into(),
DnsServerBootstrap::Plesk(inner) => DnsServer::Plesk(inner.clone()).into(),
DnsServerBootstrap::PowerDns(inner) => DnsServer::PowerDns(inner.clone()).into(),
DnsServerBootstrap::Safedns(inner) => DnsServer::Safedns(inner.clone()).into(),
DnsServerBootstrap::Scaleway(inner) => DnsServer::Scaleway(inner.clone()).into(),
DnsServerBootstrap::TencentCloud(inner) => DnsServer::TencentCloud(inner.clone()).into(),