Groups.io: Changelog
August 29, 2026
Email & Delivery
- BUGFIX: The "view all your groups" links at the top of HTML digests and daily summaries, and in the default Welcome notice, pointed at the site home page — which took logged-in members to whatever page they last used as their home view instead of their groups list, and showed logged-out members the front page. Those links now go directly to the Your Groups page, and if you are logged out, you are prompted to log in and then taken there. https://beta.groups.io/g/main/message/41020
- BUGFIX: The check that blocks executable files inside archive attachments — which Gmail and most other providers reject outright, for every recipient — decided whether an attachment was an archive from its file name. An archive renamed to a different extension (a
.zipsent as.zip.xxx, with a note telling recipients to rename it back) slipped past the check, so the message was accepted and distributed, and then rejected by every provider that looked inside — half the group never received it, with no indication to the sender that anything had gone wrong. Attachments are now recognized as archives by their content, whatever the file name, including archives nested inside other archives, and such messages are returned to the sender at posting time with the usual executable-attachment notice. - INTERNAL: Related: an executable renamed to an innocuous extension — attached bare or placed inside an archive — still passes the name-based checks but is likewise rejected by providers that inspect content. Messages are now scanned for Windows, Linux and Mac executable content behind misleading names at posting time; detections are logged but not yet enforced while the detector's accuracy is confirmed against real traffic.
Members
- NEW: The Direct Add page of a group with subgroups now has a "Restore previous subgroup memberships" checkbox, unchecked by default. When checked, anyone being added who was previously a member of the group is also added back to the subgroups they belonged to when they were removed, with their previous delivery settings, and the subgroups are listed in the notice they receive. This helps groups that remove members when a paid membership lapses and re-add them when they renew — previously, the person's subgroup memberships had to be rebuilt by hand. Moderator and owner roles are not restored, and subgroups explicitly checked on the page are added with default settings as before. It works for removals that predate this feature.
- API NEW:
/directaddaccepts a new optional boolean parameter,restore_subgroups, equivalent to the new "Restore previous subgroup memberships" checkbox. Restored subgroup memberships are included in the response'sadded_members. - BUGFIX: On a member's page in the admin area, the Moderator Permissions, Moderator Notifications and Owner Email sections — which should only appear when the person's role is moderator or owner — displayed for every member. This was display-only: no member gained any permission, and the page is only visible to moderators and owners in the first place. The sections once again appear only when the role calls for them. https://beta.groups.io/g/main/message/41073
- BUGFIX: In dark mode, member labels (and any other colored chip) displayed grey instead of their assigned color. Dark mode's grey treatment is meant for count badges only; it now leaves anything carrying a color alone, as it always did before the restyling. https://beta.groups.io/g/main/message/41079
- BUGFIX: In the Moderator Permissions list on a member's admin page, the "Invite Members" checkbox rendered indented differently from the rest of the list. It now lines up with its neighbors. https://beta.groups.io/g/main/message/41084
- CHANGE: The sections on a member's admin page — User Details, Moderator Permissions, Member Notifications, Email Delivery, and the rest — are now collapsible, like the corresponding sections on the Subscription page, so sections you aren't using can be folded out of the way. They start expanded. Section headings on both pages also now use a single consistent color; previously the collapsible ones rendered slightly darker than the static ones. https://beta.groups.io/g/main/message/41084
Moderation
- CHANGE: In the activity log, entries for topics that were automatically deleted because a hashtag expired were filed under "Hashtag - Expired" — an easy place to overlook when looking for a deleted topic, since every other deletion is listed under "Message - ..." or "Topic - ...". The action is now named "Topic - Deleted due to expired hashtag" and appears in the action filter directly after "Topic - Deleted". Existing log entries are unaffected other than the new name. https://beta.groups.io/g/main/message/40997
- BUGFIX: Banning an email address that didn't already have a Groups.io account ran the address through the same validation used for new registrations, so addresses on disposable email domains, role accounts like
postmaster@, and similar were rejected with "That email address is not valid" — exactly the addresses moderators most want to ban. Banning now only requires that the address be a plausible email address. https://beta.groups.io/g/main/message/40936 - CHANGE: Activity log entries for event RSVPs named the event but not its date, so with repeating events — which all share the same name — there was no way to tell which occurrence someone had RSVPed to without opening each instance on the calendar. RSVP entries now include the event's date, e.g. "RSVPed yes to event Weekly Training (scheduled for Sep 16)". This also covers RSVPs removed or changed by a moderator, waitlist promotions, and attendee comment edits. The dates — including those already shown on added/updated/deleted event entries — are now displayed using your timezone and date format preferences. Existing log entries are unchanged. https://beta.groups.io/g/main/message/40961
- BUGFIX: The activity log entry for removing a group alias showed an internal id number ("removed group alias 153958") instead of the alias itself. It now logs the alias name, and both the added and removed entries quote it like other text values in the log. Existing entries are unchanged. https://beta.groups.io/g/main/message/41096
Group Settings
- CHANGE: On the group Aliases page, the entry form now sits above the list of aliases — matching the Banned Domains arrangement — so adding an alias no longer requires scrolling past a long list. The help text moved into the box itself as placeholder text, the list is sorted alphabetically instead of by the date added, and the add buttons on both the Aliases and Banned Domains pages get a little breathing room above them. https://beta.groups.io/g/main/message/41078
Calendar
- API BUGFIX: The documentation for
/addrepeateventand/updaterepeateventlisted the wrong values for several repeat parameters.repeat_typewas described as1=daily, 2=weekly, 3=monthly, 4=yearly, when2actually means every Monday/Wednesday/Friday and weekly on selected days is4, so a client following the documentation to create a weekly event silently got a Monday/Wednesday/Friday series instead. Therepeat_endsvalues for "times" and "date" were also reversed, and themonth_typevalues were wrong and incomplete. The documentation now matches the implementation, and both endpoints reject an out of rangerepeat_typewithbad_request:invalid repeat_typeinstead of quietly creating a different repeat pattern. An unparseabletimezone, which shifted every occurrence to the wrong day of the week, is now rejected the same way. - API BUGFIX:
/updaterepeatevent,/splitrepeateventand/deleterepeateventstill acted on repeating events that had already been deleted; updating or splitting one brought the series back and started generating its occurrences again. They now returnbad_requestfor a deleted series. - BUGFIX: A deleted repeating event could come back on its own. If the series had been created from an emailed calendar invitation, a later invitation carrying the same event id — a re-send, or an update from the organizer's calendar program — recreated it as a new live series, and an RSVP reply to a reminder email sent before the deletion could do the same. Deleting a repeating event now sticks: invitations and RSVP replies for a deleted series are ignored.
- NEW: Calendar events that request RSVPs and have a maximum attendee limit now display a badge on the calendar showing the number of spots still available, or Full when the event has reached its limit — so you can scan a month of events for one with space without opening each event. The badge appears in the month, week, day, and list views of both a group's calendar and the consolidated calendar, and hovering over it shows the details. Events without an attendance limit are unchanged. beta.groups.io https://beta.groups.io/g/main/message/40912
- BUGFIX: When a member accepted or declined a calendar invitation from a group hosted on its own domain — an Enterprise group, or a group with its own subdomain — the reply their calendar program sent back automatically (Outlook's "Accepted: ..." message, for example) was rejected by our mail server, so the member received a confusing "This group does not exist" bounce and their response was never recorded on the event's RSVP list. Those replies are now processed just as they are for groups at groups.io addresses: the response is recorded and no bounce is sent.
Design & Accessibility
- CHANGE: Changed the second batch of web pages from Bootstrap 3 to Bootstrap 5: all of a group's admin pages — Members, Pending Messages, Invitations, Settings, Membership Defaults, Billing, Paid Memberships, subgroup management, and the rest. This is plumbing, not a redesign; the pages should look and behave as before.