mirror of
https://github.com/warmbly/warmbly.git
synced 2026-09-10 00:04:27 +00:00
imapStore fell back to Reply-To as the thread parent whenever a message carried no In-Reply-To. Reply-To is an address header -- send replies to this mailbox -- not a message identifier, so the thread key became a person's address and every message that sender ever sent collapsed into one strand. Measured on a production instance with 38 IMAP mailboxes: 484 of 1431 stored messages sat in 62 threads. One reporter's 76 unrelated DMARC aggregate reports arrived as a single 76-message conversation, and one mailbox's sequence tests, compose tests and live outreach merged into another. The remaining 947 messages, which did carry In-Reply-To, were threaded correctly. Sequence safety was never affected: stop_on_reply matches In-Reply-To against the task rather than the thread. The damage is to the unibox, where replies are triaged. A message that answers nothing now has no parent and roots its thread on its own Message-ID, which is what the existing else branch already does. The test fails if the fallback is reintroduced. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>