handoff fixes

This commit is contained in:
debu-2 2026-10-06 03:17:45 +05:30
parent 8d5e9712a6
commit 83f0eba64d

View file

@ -48,15 +48,29 @@ class ExternalReplyPlan:
def internet_message_id_of(message: dict) -> str | None: def internet_message_id_of(message: dict) -> str | None:
stored = canonical_message_id( return internet_message_id_of_message(message)
message.get("internet_message_id") or message.get("message_id")
)
raw_header = (message.get("raw_headers") or {}).get("message_id") async def resolve_internet_message_id(database, message: dict) -> str | None:
raw_canonical = canonical_message_id(raw_header) """Resolve parent Message-ID, recovering Gmail case from stored raw MIME when needed."""
if raw_canonical and stored: resolved = internet_message_id_of_message(message)
if folded_message_id(raw_canonical) == folded_message_id(stored): if resolved:
return raw_canonical return resolved
return stored or raw_canonical
raw_mime = message.get("raw_mime")
if not raw_mime:
return None
try:
raw = await get_raw_mime_storage().get(raw_mime)
parsed = parse_mime(raw)
return first_message_id(parsed.get("message_id"))
except Exception:
logger.exception(
"failed_to_resolve_message_id_from_raw_mime message_id=%s",
message.get("_id"),
)
return None
async def resolve_external_reply_parent( async def resolve_external_reply_parent(