Add email signatures, as Spark has them

Signatures are HTML, kept in the store with a default per sending address:
Most recent (the one it last sent, else the newest), No signature, or a
particular one. A reply takes the signature the user signed with last in
that conversation.

Settings → Signatures lists each address's default and every signature;
the editor takes pasted rich text or HTML, inline images (made smaller when
they're big) and Reset fonts. In the composer the signature sits between the
body and a forward's original, edited in a sandboxed frame for that one
email, with a picker at its left edge (switch, Hide Signature, settings) and
Add Signature in the footer.

Mail with a signature goes out as text and HTML (multipart/alternative, the
signature's images as related parts, Graph's HTML body with inline
attachments), in body/signature/reply sections. Saved drafts keep the HTML,
so one reopened from its server copy gets its signature and a forward's
original back. HTML is cleaned with ammonia before it's kept or sent.

AI drafting leaves the sign-off to the signature, and agents' send_email adds
the account's signature unless told not to; list_accounts shows it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
e0f21e9ad1Michael Rodriguez committed on 10/23/2026, 9:53:05 PMparent87c2da3
29 files changedLine totals unavailable