ADR 0032: iCloud mailbox writes and two accounts
Status
Accepted
Context
ADR 0031 made iCloud read-write for move and left archive, mark read, and delete off. On 2026-10-08 the owner said preview will not pass with a Read-only label, hidden write actions, or CAPABILITY_NOT_SUPPORTED on mailbox changes. The same user must also keep jskoch67@icloud.com and Jason.s.koch@icloud.com connected at the same time, each with its own app-specific password.
Decision
- The iCloud capability profile enables archive, mark read, flag, move, and delete. Health does not label those rows read-only.
- Accounts and conversation call IMAP for those actions. Archive moves into an Archive mailbox. Delete moves into Deleted Messages, Trash, or Bin when that folder exists, and otherwise removes the message. Mark read sets
\Seen. Flag sets\Flagged. - Folder move and cross-account move stay as in ADR 0031.
- A second iCloud connect inserts or updates only that address. The conflict key remains
(user_id, provider, provider_account_identity). Reconnect does not clear another account'simap_secret. A null secret ref on update keeps the existing ref. - Send stays off.
ENABLE_SENDis not turned on.
Consequences
Preview applies 0023_icloud_mailbox_writes.sql before the owner retries the writes. No new environment variable. The owner connects both Apple addresses from /accounts.
