Groups.io: Changelog
September 4, 2026
Design & Accessibility
- CHANGE: The select-all and per-row checkboxes on the redesigned admin list pages still rendered as bare browser checkboxes next to the restyled ones: Pending Messages, Members, Sent Invitations, Export Group Data, the Subgroups member grid, and the email, feed, Bluesky, GitHub and Trello integration lists. They now match the other checkboxes. https://beta.groups.io/g/main/message/41144
August 29, 2026
Highlights
- All of a group's admin pages (Members, Pending Messages, Invitations and more) have been redesigned, with tables that now stay readable on phones.
- Calendar events that limit attendees now show a badge with the number of spots still available.
- Direct Add has a new Restore previous subgroup memberships option, and the
/directaddAPI accepts a matchingrestore_subgroupsparameter. - The message editor toolbar on phone-sized screens once again has its full set of formatting tools.
- Accepting or declining a calendar invitation from a group on its own domain now works, and a deleted repeating event no longer comes back on its own.
Messages & Topics
- BUGFIX: When viewing a message, the "View All Messages" link always loaded the first page of the topic, so if the message was not within the first page — including a reply you had just posted — it was nowhere in view. The link now takes you to the page of the topic containing the message and positions on it, in either sort direction. https://beta.groups.io/g/main/message/41036
Editor & Drafts
- BUGFIX: When composing a message in the web interface on a phone-sized screen, the editor toolbar was missing most of its formatting tools — alignment, lists, indents, blockquote, and the extended formatting menu (fonts, colors, strikethrough, special characters) were gone entirely, with no way to reach them, even by rotating to landscape. The full set of formatting tools is now available on mobile: the most-used buttons stay visible, and the rest are behind a
...overflow at the end of the toolbar. https://beta.groups.io/g/main/message/41021
Hashtags
- CHANGE: In groups set so that messages from members can only be tagged with existing hashtags, moderators could always create new hashtags by including them in a message subject, even without the "Create or Modify Hashtags" permission — meaning a typo in a subject line could silently create a new hashtag. That permission is now honored when posting: a moderator without it is treated like a regular member, and their message is bounced or the new hashtag removed, depending on the group setting. Owners, moderators with the permission, and groups using the default hashtag setting are unaffected.
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.