Release v1.24.0
Gmail's send path finally gets the reply machinery the draft path already had, Drive file-content updates become first-class (append/prepend, no forced Docs conversion), and Slides speaker notes are readable and editable. Rounded out with reliability fixes across Gmail batching, Drive uploads and Docs styling.
Gmail
- feat(gmail):
send_gmail_messagecan now build a reply the waydraft_gmail_messagealready could —In-Reply-To/Referencesderived fromthread_id, opt-inreply_allrecipients (excluding your own address andSend Asalias), andquote_originalhistory, all off a single thread fetch;tobecomes optional whenreply_allcan derive it, and a non-reply send still fetches nothing (#898) by @vyakunin in #1004 - gmail: opt-in
include_headersonsearch_gmail_messagesputs Subject, From and Date on each result row viaformat="metadata", so triaging hits no longer needs a second content call — default output is byte-identical to before by @erikholz in #1017 - fix(gmail): batch fetches retry rate-limited
429/5xxsub-requests instead of quietly returning fewer messages than you asked for by @lukaszliniewicz in #1010 - fix(gmail): attachments nested under
multipart/signednow resolve their real filename rather than the enclosing part's by @bcelary in #1013 - fix(gmail):
draft_gmail_messagereply handling — fixes the reply-threading crash, actually attachesthreadIdso drafted replies land in the original conversation, and stops signature line breaks from collapsing by @erikholz in #917
Drive
- gdrive: file-content updates gain
replace/append/prependmodes, keep non-Google targets (.md,.txt,.pdf) in their original format instead of forcing a Docs conversion, accept text-like JSON/XML payloads, and serialize concurrent updates to the same file behind a per-file lock; downloads also fixed for shared-drive files by @taylorwilsdon in #1016 - fix(gdrive): resumable uploads treat
308 Resume Incompleteas the continuation signal it is instead of failing the upload by @jdowning10 in #1000 - fix(gdrive): Shared Drive permissions are read through
permissions.list, so files on a shared drive report their actual sharing state by @drew-miraxis in #1002
Docs & Slides
- slides: speaker notes are now first class — retrieve the notes text plus its editable shape ID, and replace, append or clear notes through presentation updates, with slides that have no notes handled cleanly by @taylorwilsdon in #1003
- fix(gdocs): fixes the styling payload bugs behind #998 and adds per-edge border control for table cells and paragraphs by @ssbn in #999
Auth & Docs
- fix(auth): new
WORKSPACE_MCP_ALLOW_NULL_ORIGIN_CONSENTflag lets reverse-proxy deployments accept theOrigin: nullconsent POST some setups produce; off by default, and CSRF protection still rides on theSameSite=LaxMCP_CONSENT_STATEcookie by @enthouan in #925
New Contributors
- @erikholz made their first contribution in #1017
- @lukaszliniewicz made their first contribution in #1010
- @ssbn made their first contribution in #999
- @bcelary made their first contribution in #1013
- @drew-miraxis made their first contribution in #1002
- @enthouan made their first contribution in #925
- @jdowning10 made their first contribution in #1000
- @vyakunin made their first contribution in #1004
Full Changelog: v1.23.1...v1.24.0