Release v2.18.1 - #339
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #339 +/- ##
=========================================
Coverage 83.72% 83.72%
Complexity 486 486
=========================================
Files 44 44
Lines 1358 1358
Branches 115 115
=========================================
Hits 1137 1137
Misses 149 149
Partials 72 72 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
AaronDDM
approved these changes
Aug 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
[v2.18.1] - Release 2026-08-18
Added
TrackingOptions.domainNamesupport for custom link and open tracking hostnames in regular sends, Transactional Send, drafts, and scheduled sends. The field serializes astracking_options.domain_nameand is omitted when unset.Fixed
metadata_pair(calendars, events, messages) is now sent as a singlekey:valuequery parameter using the first map entry, instead of one repeated parameter per entry. The API accepts exactly one pair, so maps with more than one entry previously had all but one entry silently ignored. Public types are unchanged (Map<String, String>); single-entry and empty maps produce the same request as before.to,from,cc,bcc, andin(messages, threads, drafts) are now sent as a single query parameter using the first list entry, instead of as repeated parameters. The API binds each as a scalar string and validatesto/from/cc/bccas one email address, so repeated parameters meant the API silently kept just one value — whichever its parser happened to keep last. Sending one parameter makes that deterministic and matches the behaviorinFolderalready documented. Public types are unchanged (List<String>); passing a single-element list produces the same request as before. These parameters will change type toStringin a future major version.attendees(events) andany_email(messages, threads, drafts) are now sent as a single comma-delimited query parameter instead of repeated parameters. The API parses both as comma-delimited strings, so passing more than one value previously caused the API to keep only the last one, returning silently incorrect, order-dependent results. Public types are unchanged (List<String>), and null, empty, and single-element values produce the same request as before. Note thatany_emailaccepts at most 25 addresses; over-long lists now surface an API validation error instead of silently filtering on a single address.event_typeis unaffected — the API genuinely supports repeating it.License
I confirm that this contribution is made under the terms of the MIT license and that I have the authority necessary to make this contribution on behalf of its copyright owner.