Phase-3 review finding (MEDIUM/data-loss + efficiency). ImapClient.deleteMessage(:357)/moveMessages(:384) flag the target \Deleted then call the untargetedmailbox.expunge(), which permanently removes EVERY \Deleted-flagged message in the folder — not just the intended UIDs (data-loss window with a 2nd client, on Gmail, or after a partial prior move). Also: repo batch paths call single-UID deleteMessage in a loop → N sequential IMAP logins + N expunges for an N-message selection. Fix: add a batch deleteMessages(uids) that opens once, setFlags(msgs, \Deleted), and does a single targetedIMAPFolder.expunge(Message[]) (UID EXPUNGE, RFC 4315); route repo batch deletes/expunge through it. Test via GreenMail. Fixes both the data-loss and the N-login inefficiency.
Phase-3 review finding (MEDIUM/data-loss + efficiency). `ImapClient.deleteMessage`(:357)/`moveMessages`(:384) flag the target `\Deleted` then call the **untargeted** `mailbox.expunge()`, which permanently removes EVERY `\Deleted`-flagged message in the folder — not just the intended UIDs (data-loss window with a 2nd client, on Gmail, or after a partial prior move). Also: repo batch paths call single-UID `deleteMessage` in a loop → **N sequential IMAP logins + N expunges** for an N-message selection. **Fix:** add a batch `deleteMessages(uids)` that opens once, `setFlags(msgs, \Deleted)`, and does a single **targeted** `IMAPFolder.expunge(Message[])` (UID EXPUNGE, RFC 4315); route repo batch deletes/expunge through it. Test via GreenMail. Fixes both the data-loss and the N-login inefficiency.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Phase-3 review finding (MEDIUM/data-loss + efficiency).
ImapClient.deleteMessage(:357)/moveMessages(:384) flag the target\Deletedthen call the untargetedmailbox.expunge(), which permanently removes EVERY\Deleted-flagged message in the folder — not just the intended UIDs (data-loss window with a 2nd client, on Gmail, or after a partial prior move). Also: repo batch paths call single-UIDdeleteMessagein a loop → N sequential IMAP logins + N expunges for an N-message selection. Fix: add a batchdeleteMessages(uids)that opens once,setFlags(msgs, \Deleted), and does a single targetedIMAPFolder.expunge(Message[])(UID EXPUNGE, RFC 4315); route repo batch deletes/expunge through it. Test via GreenMail. Fixes both the data-loss and the N-login inefficiency.