Open drafts that have no attachments

Opening a draft from Drafts blanked the window. Draft serialized its
attachments with skip_serializing_if = Vec::is_empty, so a draft without
any reached the frontend with no attachments field. savedDraft copied that
undefined over the composer's empty list, the Composer's
attachments.reduce threw while rendering, and with no error boundary React
unmounted the whole app.

Draft now always writes attachments. Saved drafts and queued mail written
without it still read, through #[serde(default)].

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
8b12f9f147Michael Rodriguez committed on 10/23/2026, 8:15:24 PMparent175f896
1 file changedLine totals unavailable