Rebuilt from: notification email, session transcript. Description text is incomplete.
Editing a one-time event (a non-recurring event) shows a warning about editing an event series (a recurring event):
<img width="743" height="284" alt="Image" src="https://github.com/user-attachments/assets/9babb9df-4778-4b9a-a657-e39c3ac94494" />
How to reproduce:
1. Create an event, only change the title, nothing else
2. Edit event again
3. Observe warning
- ihasmail git at 95d6a29788e58932ddc46864837941dd7f1db688
═══════════ #26 ═══════════
<sub>Rebuilt from: notification email, session transcript. Description text is incomplete.</sub>
Addendum: when trying to delete such an event, the popup refers to the whole series, too:
Addendum: when trying to delete such an event, the popup refers to the whole series, too:
<img width="396" height="183" alt="Image" src="https://github.com/user-attachments/assets/c3b00bba-8b65-46ed-9f29-a1d943392fe5" />
Fixed in #28, in main — including your addendum about the delete popup, which was the more serious half. It offered to delete "the entire series" for an event that has exactly one occurrence.
Three places treated the presence of baseEventId as proof of recurrence. It is nothing of the kind: the calendar loads its range with expandRecurrences, and Stalwart puts a baseEventId on everything it returns that way, one-off events included.
Getting the replacement right took a live 0.16.19, because two reasonable-looking fixes were both wrong:
A one-off comes back with an instance id of its own (eaaaaai) over a base of i — a different id — so "the base is another event" does not mean recurrence either.
An expanded occurrence of a real series carries no recurrence rule at all; only the master does. So testing the rule alone would have gone wrong the other way, and told you "Delete this event?" while deleting the whole series.
What an occurrence does carry is a recurrenceId, and a one-off never has one. That is what the check uses now.
Thanks for both reports — the delete dialog is the kind of thing that is easy to live with and genuinely dangerous.
Fixed in #28, in main — including your addendum about the delete popup, which was the more serious half. It offered to delete "the entire series" for an event that has exactly one occurrence.
Three places treated the presence of `baseEventId` as proof of recurrence. It is nothing of the kind: the calendar loads its range with `expandRecurrences`, and Stalwart puts a `baseEventId` on everything it returns that way, one-off events included.
Getting the replacement right took a live 0.16.19, because two reasonable-looking fixes were both wrong:
- A one-off comes back with an instance id of its own (`eaaaaai`) over a base of `i` — a *different* id — so "the base is another event" does not mean recurrence either.
- An expanded occurrence of a real series carries no recurrence rule at all; only the master does. So testing the rule alone would have gone wrong the other way, and told you "Delete this event?" while deleting the whole series.
What an occurrence does carry is a `recurrenceId`, and a one-off never has one. That is what the check uses now.
Thanks for both reports — the delete dialog is the kind of thing that is easy to live with and genuinely dangerous.
This repo is archived. You cannot comment on issues.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Editing a one-time event (a non-recurring event) shows a warning about editing an event series (a recurring event):
How to reproduce:
═══════════ #26 ═══════════
Rebuilt from: notification email, session transcript. Description text is incomplete.
Addendum: when trying to delete such an event, the popup refers to the whole series, too:
Fixed in #28, in main — including your addendum about the delete popup, which was the more serious half. It offered to delete "the entire series" for an event that has exactly one occurrence.
Three places treated the presence of
baseEventIdas proof of recurrence. It is nothing of the kind: the calendar loads its range withexpandRecurrences, and Stalwart puts abaseEventIdon everything it returns that way, one-off events included.Getting the replacement right took a live 0.16.19, because two reasonable-looking fixes were both wrong:
eaaaaai) over a base ofi— a different id — so "the base is another event" does not mean recurrence either.What an occurrence does carry is a
recurrenceId, and a one-off never has one. That is what the check uses now.Thanks for both reports — the delete dialog is the kind of thing that is easy to live with and genuinely dangerous.