2.7.0 (2026-10-25)
Breaking Changes
- The
before,userandaction_typeparameters ofAuditLogIterator.__init__are now keyword-only and optional (#2793) - Drop Python 3.10 support (#2839)
Features
- Add support for the missing group DM features:
RESTClient.create_group_dm_channel,RESTClient.add_recipient_to_group_dm,RESTClient.remove_recipient_from_group_dm, theiconparameter inRESTClient.edit_channeland theGroupDMChannel.is_managedfield (#2773) - Add support for voice channel statuses:
RESTClient.set_voice_channel_status, theVoiceChannelStatusUpdateEventevent, thePermissions.SET_VOICE_CHANNEL_STATUSpermission and theVOICE_CHANNEL_STATUS_CREATE/VOICE_CHANNEL_STATUS_DELETEaudit log events with their entry info models (#2774) - Add support for searching guild messages:
RESTClient.search_messageswith all of the documented filters, theMessageSearchResultmodel, its accompanying enums and theSearchNotIndexedErrorerror raised while the guild's search index is not yet available (#2778) - Add the missing
role_idsparameter toRESTClient.create_invite, allowing roles to be given to the users that accept the invite (#2792) - Add the missing
afterparameter toRESTClient.fetch_audit_log, allowing the audit log to be iterated in ascending order (#2793) - Add support for scheduled event recurrence rules:
- Add
ScheduledEvent.recurrence_rule, along with the newScheduledEventRecurrenceRuleandScheduledEventRecurrenceNWeekdaymodels and theScheduledEventRecurrenceFrequency,ScheduledEventRecurrenceWeekdayandScheduledEventRecurrenceMonthenums - Add the missing
recurrence_ruleparameter toRESTClient.create_stage_event,RESTClient.create_voice_event,RESTClient.create_external_eventandRESTClient.edit_scheduled_event(#2794)
- Add
- Add Python 3.15 support (#2839)
- The
lengthandbyteorderarguments ofColor.to_bytesare now optional and default to3and"big"(#2839)
Optimizations
- Speed up the internal enum/flag implementation:
Flag.split(and iteration) now walks the set bits of the value instead of scanning every defined memberlen(flag)now counts bits without building a list, which also makeslist(flag)stop exploding the value twice- The set-predicate methods (
all,any,none,is_subset,is_superset,is_disjoint,differenceandin) no longer allocate intermediate flag instances. bool(flag)now uses the C-levelint.__bool__EnumType["NAME"]now hits the member map directly instead of going throughgetattr(#2789)
Bugfixes
- Make the
TextSelectMenuBuilderparent type parameter covariant, fixing spurious typing errors when a builder parameterized with a concrete action row type is used where one parameterized with its abstract counterpart is expected (#2796) - Guild records that only hold stickers or threads are no longer dropped from the cache when another component of the guild is cleared, and
delete_stickerremoves the record once the guild's last sticker is gone (#2835) - Export
PollVoteCreateEventandPollVoteDeleteEventfromhikari.events(#2835) GUILD_STICKERS_UPDATEis now processed when only the sticker cache component is enabled (#2835)