v1.13.0
Note: the .dxt in this release has a configuration bug — CalDAV/WebDAV credentials entered at install are not passed to the server. Desktop-extension users should install v1.13.1 instead.
v1.13.0 — Feature release: contacts write, attachments on send, WebDAV cloud save
Three new capability areas, taking the tool surface from 48 to 52. Verified with 443 unit tests and a 65-check non-destructive live integration pass (account restored to byte-identical state afterward).
Contacts are no longer read-only
create_contact/update_contact/delete_contact(#96) — full contact CRUD via JMAPContactCard/set(RFC 9610), using your existing API token (read-write contacts scope required; no app password needed). Flat, caller-friendly inputs map onto RFC 9610 shapes. Update semantics are deliberate JMAP PatchObject: each provided field wholly replaces the stored value (emails: []clears), unspecified fields are untouched, with an optionalexpectStateprecondition.
Attachments, finally
- Attach files on send (#94) —
send_email,create_draft,edit_draft, andreply_emailaccept anattachmentsarray with three sources: a local file (confined to the download directory with symlink-escape protection), an existing email's attachment (zero-copy — same-account blobIds are reused directly, so forwarding an attachment transfers no bytes), or a raw blobId. Uses RFC 8621 convenience properties, so the server assembles the multipart structure. - Bug fix riding along:
edit_draftused to silently strip a draft's attachments on every edit — they now carry over. save_attachment_to_webdav(#95) — save an attachment straight to cloud storage (Fastmail Files athttps://myfiles.fastmail.com/, Nextcloud, or any WebDAV server) without touching local disk. The storage URL and credentials are server config only — tools can only pick a relative path beneath the configured base, so a misbehaving caller can't redirect uploads. Paths are validated segment-by-segment before encoding (no traversal, no smuggling).
Notes for operators
- New optional env/DXT config:
FASTMAIL_WEBDAV_URL/_USERNAME/_PASSWORD; CalDAV and WebDAV credentials are now configurable in the DXTuser_config(marked sensitive). - Live-testing finding worth knowing: Fastmail Files ignores the WebDAV
If-None-Match: *precondition on PUT — the tool therefore does an explicit existence check before non-overwrite uploads. - Fastmail's backend does not resolve JMAP
#creationIdreferences indestroyarrays; the contact tools account for this.
This is an unofficial community project, not affiliated with, endorsed by, or supported by Fastmail.
Full Changelog: v1.12.0...v1.13.0