Repository navigation
Fix session lifecycle, RSVP notify, and sync clobber bugs - #2
Merged
Merged
Conversation
Close-and-reopen while autostart holds the process no longer starts a second alert/sync/logind loop. Persist the alert checkpoint without advancing it on query failure. Notify Google invitees on RSVP, skip cancelled CalDAV events, protect unpushed local edits, revert visibility on store error, copy reminders onto expanded instances, and align README OAuth scopes. Co-authored-by: Ian Swope <ian@promoeqp.com>
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.
Nine review follow-ups from Ian’s assigned list, against 0.6.0 (
1192785). No 15-vs-30 drag-snap change. No undo/redo.One Ui per process.
open()reusesLIVE_UIinstead of replacing it and callingbuild()again. Close hides the window while autostart/hold()keeps the process alive; destroy cancels the clock/alert/sync sources. LogindPrepareForSleepis subscribed once.--backgroundno longer keys offactive_window(), so a hidden session is not presented or rebuilt. Tests cover reuse vs build, hide-on-close, one logind subscribe, and background vs present. Full hide/present timer identity still needs a display.Persist last alert check.
last_alert_checkis stored in settings. Startup/resume look back at most 36 hours.next_checkpointkeeps the previous value whenevents_betweenfails, so that window is retried.Google RSVP
sendUpdates=all. RSVP PATCHes go throughevent_url_notifying. CalDAV still PUTsPARTSTATon the attendee’s copy; it does not POST an iTIPMETHOD:REPLY(documented onrespond_to_eventand in the README). Many servers, including iCloud, treat that as a local status change only.Dirty flag on unpushed local edits.
events.local_editskips sync upserts (ON CONFLICT … WHERE local_edit = 0) and prunes. Drag marks the row until the remote write succeeds or the optimistic move is undone.Filter CalDAV
STATUS:CANCELLED. Cancelled VEVENTs are dropped and count as a successful parse, so they do not protect the resource from prune. Fixture covers uppercase and lowercaseSTATUS.Calendar visibility switch.
state-setreturnsStopwhenset_calendar_visiblefails, so GTK does not flip the switch off the stored value.Reminders on expanded instances. CalDAV
href#instancerows inheritreminder_minutesfrom the bare href. Google expanded instances inherit fromrecurringEventId. Tests cover both after the master is pruned.README OAuth scopes match
src/google/oauth.rs:calendar.eventsandcalendar.calendarlist.readonly, notcalendar.Tests for
event_occurs_on_day(timed start day, all-day exclusive end, multi-day inclusive range) and the extracted single-alert-loop invariant (session_action: reuse live Ui, do not build a second loop).