Show only accepted calendar events in the sidebar timeline - #7959
Merged
ComputelessComputer merged 2 commits intoOct 2, 2026
Merged
Conversation
Co-Authored-By: John <john@fastrepl.com>
Contributor
Author
|
I'll fix CI failures and address comments from users with write access that start with 'Devin'.
|
Contributor
Author
There was a problem hiding this comment.
✅ Devin resolved the finding on fd99c63
Fixed by Devin (1)
- Malformed attendance empties the event timeline
Co-Authored-By: John <john@fastrepl.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.
Summary
Intent: The sidebar timeline listed invitations the user never responded to (e.g. spam "Invitation To Submit Proposal" all-day series). Sync already drops
declinedevents, butpending/tentativeones still showed. The sidebar should only show events the user accepted or organizes.useTimelineEventsTablenow selectsjson_extract(attendance_json, '$.self_status') AS self_status(column added in Require calendar attendance before automatic recording #7926).deriveTimelineWindowDataskips rows withself_statusinpending | tentative | declined. They are also excluded fromhasMoreFutureItems, and "Show Deleted Events" doesn't bring them back.unknown,organizer, oraccepted, are still shown. Personal events with no attendees (gym, etc.) are unaffected.deriveTimelineWindowData. The calendar view and tray read the same table but don't use that path, so they don't change.attendance_json = NULLand stay visible until the next sync fills it in.Demo
N/A: this is a filtering change in the sidebar data path and is covered by a unit test. It hasn't been recorded on a calendar with real invites.
Verification
pnpm -F desktop exec vitest run src/sidebar/timeline src/calendar(new test:deriveTimelineWindowData hides events the user has not accepted)pnpm -F desktop typecheckpnpm exec dprint fmt,pnpm exec oxlint --quieton the touched dirsLink to Devin session: https://app.devin.ai/sessions/117bddedb2ca476ab1f6e116525e6097
Open in Devin Desktop: https://app.devin.ai/desktop/session/117bddedb2ca476ab1f6e116525e6097?variant=devin
Requested by: @ComputelessComputer
Summary by cubic
Stops the sidebar timeline from listing calendar invitations the user never responded to (pending or tentative invites), so it only shows events the user accepted or organizes.
attendance_jsonself_statusispending,tentative, ordeclinedinderiveTimelineWindowData; they're also excluded fromhasMoreFutureItemsand not brought back by "Show Deleted Events."attendance_json(now treated as missing), orunknown,organizer, oracceptedstatus still show, so personal events without attendees are unaffected.attendance_jsonexisted stay visible until the next sync fills the field in; malformedattendance_jsonis handled the same way and also remains visible.Written for commit fd99c63. Summary will update on new commits.