Uh oh!
There was an error while loading. Please reload this page.
Only write a note for an RSVP that says something new - #358
Merged
Conversation
A bare "accepted" response repeats what the event's guest list already shows, so folding it onto the event thread as a note was pure noise — and worse, any note on the thread flips it unread for the organiser even when the connector didn't ask for that. The fix is to write no note at all for a bare acceptance: nothing new is being said. An acceptance still gets a note when it carries a personal comment, or when it reverses an attendee's earlier decline/tentative — both are real information. A suppressed bare acceptance is still folded away so a responses-only conversation doesn't surface as its own email thread.
Replies to a single occurrence of a recurring event share the same calendar UID as every other occurrence in the series, distinguished only by RECURRENCE-ID. The bare-acceptance suppression rule tracked outstanding declines/tentatives per UID + attendee only, so a decline on one occurrence could suppress the note for a bare acceptance on an unrelated occurrence of the same series (and vice versa, losing a genuine reversal). The lookup key now includes the occurrence. Also makes the prior-state lookup lazy: it's only ever consulted for a bare acceptance, so declines and tentatives no longer pay a wasted storage round-trip.
The comment explained the behaviour in terms of internal storage mechanics rather than what a connector author can observe and rely on.
Uh oh!
There was an error while loading. Please reload this page.
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 freeto 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.
When an attendee responds to a calendar invitation, the Gmail connector folds that
response onto the event's thread as a note. A plain acceptance carries nothing the
event's guest list does not already show — but attaching any note surfaces the
thread as unread for every recipient except the note's author. Accepting an
invitation therefore made the organiser's own event thread unread.
The
unreadfield could not prevent this. Omitting it does not mean "leave readstate alone" — the thread has already been surfaced by the time that field is
read — so the connector's acceptance guard, and its initial-backfill guard, both
had no effect in practice.
What changes
A response becomes a note only when it says something new:
A plain acceptance produces no note, and its notification email is dropped rather
than becoming a thread of its own — so a conversation consisting only of such
acceptances no longer creates a thread at all. The event's guest list continues to
show who accepted.
Every emitted note now carries an explicit
unreadvalue, on both the live syncand the deferred-retry path that handles responses arriving before their event has
synced. During the initial backfill that value is
false, so folding a history ofpast responses no longer resurfaces old events.
Reversals are tracked per attendee per occurrence: declining one occurrence of
a recurring meeting does not change how a later acceptance on a different
occurrence is treated.
Notes
owner. On a thread with several participants, other recipients may still be
surfaced by later processing.
composeRsvpNoteis unchanged — note wording is the same as before.