Three new test groups bring the unit-test count from 54 to 57:
- concurrent moves: two simultaneous moveEmail calls complete without
corruption and both changes are enqueued in pending_changes
- SMTP auth failure: sendEmail propagates a 535 authentication error
thrown by a fake smtpConnect
- IMAP UID validity change: a uidValidity mismatch causes a full re-sync
that wipes stale local emails and updates the checkpoint
Also extend _makeRepos() to accept optional imapConnect/smtpConnect
overrides, and import drift without the isNull/isNotNull symbols that
clash with package:matcher.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>