Mail: Apple Mail move/delete receipts remain incomplete #1032

Open
opened 2026-10-04 05:16:37 +00:00 by kayg · 1 comment
Owner

Real Apple Mail acceptance for #486, server code 393c7ca9b, isolated Dovecot fixture, macOS 27.0.

Moving Weekend walking plan from the new account's INBOX to its Archive created upstream Archive UID 2, but the source INBOX UID 12659 remained with \Seen and \Flagged. Deleting Community garden schedule through the same targeted Mail account produced no Trash copy; upstream INBOX UID 12660 remained with \Seen. The open production web Inbox continued to show both source messages.

The actions used Apple Mail's own move/delete operations through AppleScript, pinned to the newly generated account ID. No raw IMAP mutation replaced them. At the first check, the local transfer job completed and its receipt journal was empty. Later checks after Mail's #1031 crash and restart still showed both sources and no matching Trash copy. The crash may have interrupted the remaining client commands, so this does not establish a separate server root cause.

Relevant source-review lead: MailProxy::mutate rejects source flag edits while a COPY/MOVE journal entry is pending with Message has a pending move or copy. A client that implements move as COPY then STORE \Deleted may encounter this boundary. That is an inference to investigate, not a captured command transcript. Keep the exact receipt and authorization invariants; do not relax existing tests to make the client pass.

Retest normal Mail UI archive and delete, observe bounded command categories without logging LOGIN or MIME, and confirm source removal and correct-account Trash routing in both web and Dovecot. Complete #486 acceptance remains failed. No production mailbox or credentials were used.

Real Apple Mail acceptance for #486, server code 393c7ca9b, isolated Dovecot fixture, macOS 27.0. Moving Weekend walking plan from the new account's INBOX to its Archive created upstream Archive UID 2, but the source INBOX UID 12659 remained with \Seen and \Flagged. Deleting Community garden schedule through the same targeted Mail account produced no Trash copy; upstream INBOX UID 12660 remained with \Seen. The open production web Inbox continued to show both source messages. The actions used Apple Mail's own move/delete operations through AppleScript, pinned to the newly generated account ID. No raw IMAP mutation replaced them. At the first check, the local transfer job completed and its receipt journal was empty. Later checks after Mail's #1031 crash and restart still showed both sources and no matching Trash copy. The crash may have interrupted the remaining client commands, so this does not establish a separate server root cause. Relevant source-review lead: `MailProxy::mutate` rejects source flag edits while a COPY/MOVE journal entry is pending with `Message has a pending move or copy`. A client that implements move as COPY then STORE \Deleted may encounter this boundary. That is an inference to investigate, not a captured command transcript. Keep the exact receipt and authorization invariants; do not relax existing tests to make the client pass. Retest normal Mail UI archive and delete, observe bounded command categories without logging LOGIN or MIME, and confirm source removal and correct-account Trash routing in both web and Dovecot. Complete #486 acceptance remains failed. No production mailbox or credentials were used.
Author
Owner

Repair acceptance on native server 197e38295: source removal, correct Connected Account Trash and live web updates passed. Archive selected the Inbox original plus its Sent reply; both sources disappeared and Archive retained exactly one copy each. Delete removed its Inbox source and delivered exactly one copy to this account's Trash. Bodies were intact. Native command completions used UID COPY → UID STORE → UID EXPUNGE, all OK; COPY returned COPYUID. No new Mail crash occurred.

Bounded native command transcript: 50 mutation completion events contains connection numbers, tags, verbs, status and static response-code names only. No LOGIN, mailbox names, flags, UID maps or message bytes. Archive and delete captures are attached to #486. Full acceptance report is on #486. Provider retries remain tracked separately in #1037; no latency pass claimed.

Repair acceptance on native server `197e38295`: source removal, correct Connected Account Trash and live web updates passed. Archive selected the Inbox original plus its Sent reply; both sources disappeared and Archive retained exactly one copy each. Delete removed its Inbox source and delivered exactly one copy to this account's Trash. Bodies were intact. Native command completions used UID COPY → UID STORE → UID EXPUNGE, all OK; COPY returned COPYUID. No new Mail crash occurred. [Bounded native command transcript: 50 mutation completion events](https://git.kayg.org/attachments/8c96ff75-b611-480d-b20d-34e915e2a70e) contains connection numbers, tags, verbs, status and static response-code names only. No LOGIN, mailbox names, flags, UID maps or message bytes. Archive and delete captures are attached to #486. Full acceptance report is on #486. Provider retries remain tracked separately in #1037; no latency pass claimed.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#1032
No description provided.