Problem
When viewing a conversation with multiple messages, the archive button only archives the single selected message rather than the entire thread. This leaves other messages from the same conversation in the inbox, which is unexpected — most email clients (Gmail, HEY, Apple Mail) archive the full conversation.
Expected behavior
Clicking the archive button (or pressing e) while viewing a conversation should move all messages in the thread to the Archive folder, not just the currently displayed message.
Current behavior
Only the individual message is moved via Email/set → mailboxIds. The other messages in the thread remain in the Inbox.
Suggested implementation
When archiving, resolve the full thread via Thread/get for the message's threadId, then batch-update all message IDs in a single Email/set call:
["Email/set", {
"accountId": "...",
"update": {
"<msg1>": { "mailboxIds": { "<archiveId>": true } },
"<msg2>": { "mailboxIds": { "<archiveId>": true } },
...
}
}, "0"]
This keeps it as a single JMAP round-trip.
Problem
When viewing a conversation with multiple messages, the archive button only archives the single selected message rather than the entire thread. This leaves other messages from the same conversation in the inbox, which is unexpected — most email clients (Gmail, HEY, Apple Mail) archive the full conversation.
Expected behavior
Clicking the archive button (or pressing
e) while viewing a conversation should move all messages in the thread to the Archive folder, not just the currently displayed message.Current behavior
Only the individual message is moved via
Email/set→mailboxIds. The other messages in the thread remain in the Inbox.Suggested implementation
When archiving, resolve the full thread via
Thread/getfor the message'sthreadId, then batch-update all message IDs in a singleEmail/setcall:This keeps it as a single JMAP round-trip.