Release v1.26.0
Feature release. Calendar finally paginates and can carry attachments, Chat can edit a message it already sent, Gmail labels take colors, Docs gains tab-scoped reads and anchors that survive an index shift, Sheets can manage its tabs, and deployments can cap how much any download is allowed to buffer into memory. Special thank you to @DrFaust92 who didn't get a credit here but did the leg work on one of these.
What's Changed
- auth/OAuth: the OAuth 2.1 protocol path now falls back to the client secrets file instead of insisting on
GOOGLE_OAUTH_CLIENT_ID/GOOGLE_OAUTH_CLIENT_SECRET, so a deployment configured only withGOOGLE_CLIENT_SECRET_PATHno longer dies at startup onOAuth 2.1 requires GOOGLE_OAUTH_CLIENT_SECRET; env vars still win per value, and a path that is set but missing or malformed raises a clear error instead of falling through by @gnomed in #1076 - gmail:
manage_gmail_labeltakes optionalbackground_colorandtext_colorhex strings oncreateandupdate, validated up front against Gmail's fixed palette so a bad value names the offending field rather than coming back as a bare 400 (#351) by @ConnorMoss02 in #1083 - core: new
WORKSPACE_MCP_MAX_FILE_BYTESbounds how many bytes Drive, Gmail, Chat, and Docs downloads may buffer into process memory; unset or0keeps today's uncapped behavior, and an oversized download returns a Drive link and alternative tools instead of OOMing the server by @SlayerBirden in #996 - gchat:
send_messageaccepts an optionalmessage_nameand patches that message in place instead of only ever creating, so a typo, a stale link, or a post pitched at the wrong room can be reworded; left unset, the create path is byte for byte unchanged and the tool count stays the same by @TidyMaze in #1092 - gcalendar:
get_eventsandlist_calendarsare paginated.gcalendarwas the last package still droppingnextPageToken, so the 25-event default returned 25 events with nothing to indicate a 26th existed; callers who pass neither parameter send the same request as before (#1089) by @ConnorMoss02 in #1090 - gdocs:
inspect_doc_structurereports paragraph layout stats in both modes: empty-paragraph counts, up to 100 paragraph ranges with a truncation flag, and the last paragraph's list and empty status, with list membership and object anchors in detailed output. Object anchors do not count as empty, and ranges can cover protected newlines, so the docs spell out the cleanup constraints by @kryan007 in #1080 - gdocs/gsheets/gcalendar/gslides/auth: the document-index and delegation batch, closing #1084, #1052, #1085 and #1086 by @taylorwilsdon in #1098
- gdocs:
get_doc_content,get_doc_as_markdownandinspect_doc_structuretake atab_id, so the read tools can finally target the tab the write tools already accepted - gdocs:
inspect_doc_structuretakespreview_chars(0orNonefor untruncated text), so the index workflow its own docstring describes can actually be completed past the old 100-character cap - gdocs: insert operations accept
after_heading,before_heading, oranchor_textplusanchor_positionin place of a rawindex, resolved against the document at execution time, which removes the class of bug where a shifted index lands an edit on unrelated content without failing - gsheets: new
manage_sheet_tabrenames, deletes, hides, unhides, and reorders tabs within a spreadsheet - gcalendar:
create_eventandmodify_eventtakeattachmentsas Drive file IDs or URLs; onmodify_eventthe list replaces the event's existing attachments rather than appending to them - gslides:
get_presentationandget_pagetakeinclude_geometryto report each element's placement - auth: service-account mode substitutes the full Drive scope for
drive.file, which under domain-wide delegation can never reach a pre-existing file because a DWD service account never passes through the Drive picker; authorize it in the Admin console DWD scope list - gmail:
send_gmail_messagestates plainly that Gmail's REST API has no send-time parameter, so an agent stops telling users a message was scheduled when it was sent immediately
- gdocs:
New Contributors
- @gnomed made their first contribution in #1076
- @ConnorMoss02 made their first contribution in #1083
- @TidyMaze made their first contribution in #1092
- @kryan007 made their first contribution in #1080
Full Changelog: v1.25.2...v1.26.0
A very gracious thank you to those who have sponsored,
@rajivpant + @123andy being a solo maintainer in open source can be a thankless job and your thank you's mean the world!