Changelog
Warning
Major and minor releases also include the changes specified in prior development releases.
2.6.0 (2026-08-19)#
Breaking Changes#
Invite.channel_idis now typed as nullable, fixing the deserialization of friend invites raisingKeyError(#2768)- The
guildparameter ofRESTClient.fetch_membersis now positional-only (#2775)
Features#
- Add fetch role member count endpoint (#2585)
- Automatically add components V2 flag for interaction server responses (#2641)
- Add support for the
RATE_LIMITEDgateway event: the shard now logs a warning when an operation gets rate limited and the newShardRateLimitedEventandRequestGuildMembersRateLimitedEventevents are dispatched so applications can react to it (#2644) - Add
BYPASS_SLOWMODEPermission Flag (#2666) - Add
attachment_size_limitparameter toPartialInteractionobject (#2729) - Re-add
nonceargument tocreate_messagecalls, which allows to deduplicate messages in the past few minutes (#2734) - Add super (burst) reaction support to the
Reactionobject, the reaction add/delete events andfetch_reactions_for_emoji(#2737) - Add
RESTClient.edit_applicationto edit the current application, along with newApplicationEventWebhookStatusandApplicationEventWebhookTypeenums andevent_webhooks_url,event_webhooks_statusandevent_webhooks_typesfields onApplication(#2738) - Add the missing
discovery_splash,system_channel_flags,safety_alerts_channel,descriptionandpremium_progress_bar_enabledparameters toRESTClient.edit_guild(#2739) - Add
RESTClient.bulk_ban_usersto ban up to 200 users from a guild at once, along with a newBulkBanResponseobject (#2740) - Add
RESTClient.fetch_sticker_packfor fetching a single sticker pack (#2747) - Add
VoiceChannelStartTimeUpdateEvent, fired when a voice session starts or ends in a voice channel (#2748) - Add support for role colors: the
ColorGradientmodel, theRole.colorsfield, support for passing aColorGradientas thecolorinRESTClient.create_roleandRESTClient.edit_role, and theENHANCED_ROLE_COLORSguild feature (#2749) - Add
RESTClient.fetch_entitlementandRESTClient.consume_entitlement, theEntitlement.is_consumedfield, the missingskusandexclude_deletedparameters toRESTClient.fetch_entitlements, and the missing one-time purchaseEntitlementTypeandSKUTypevalues (#2750) - Add support for requesting ephemeral channel info over the gateway:
GatewayShard.request_channel_info(also available onGatewayBot) and theChannelInfoEventdispatched in response (#2752) - Add
RESTClient.fetch_activity_instancefor fetching a live application activity instance, along with the newActivityInstance,ActivityLocationandActivityLocationKindmodels (#2766) - True-up the invites module:
- Add
Invite.type, along with the newInviteTypeenum - Add
Invite.flags, along with the newInviteFlagsenum - Add
Invite.roles, along with the newInviteRolemodel, andInvite.role_ids - Add
Invite.guild_scheduled_event - Add the missing
scheduled_eventparameter toRESTClient.fetch_invite(#2768) - Add the
application_idfield to guild channels, which Discord now documents on the channel object for future guild channel use cases (#2771) - Add the
start_atparameter toRESTClient.fetch_members, allowing the member iteration to start at a given user, snowflake or point in time (#2775) - Add support for gateway capabilities and Discord's upcoming private channel obfuscation:
- New
GatewayCapabilitiesbitfield, declarable through thecapabilitiesargument ofGatewayBotandGatewayShardImpl, including the temporaryGatewayCapabilities.CHANNEL_OBFUSCATIONtesting opt-in - New
ChannelFlag.CHANNEL_OBFUSCATEDflag for detecting obfuscated channels PermissibleGuildChannel.flagsis now available on every guild channel type instead of only forum and media channels (#2785)
Bugfixes#
- Properly close http connections when making a request to REST (#2392)
- Use correct route when using
fetch_poll_voters(#2594) - Do not fetch WebResource attachments if they're part of components/embeds (#2687)
- Default to unsigned in
Color.to_bytes, fixing anOverflowErrorwhen converting colors with a red channel of0x80or higher to their natural three bytes (#2764)
Documentation Improvements#
- Fix typos in component builder docstrings (#2618)
2.5.0 (2025-10-31)#
Breaking Changes#
- Drop Python 3.9 support (#2576)
- Remove several previously deprecated functionality:
extparameter inmake_x_url()methods in favour offile_formatx_urlproperties in favour ofmake_x_url()methods (#2591)
Features#
- Add preliminary support for Python 3.14 (#2220)
- Add various new compression support:
- ZSTD transport compression support (needs hikari to be installed with either
[speedups]or[zstd]) - ZLIB payload compression support (#2545)
- ZSTD transport compression support (needs hikari to be installed with either
- Add new edit own member arguments. (#2551)
- Slightly optimize buckets ratelimiting logic (#2556)
- Add pagination support for
fetch_thread_members(#2564) - Add
token_idfield tohikari.GatewayBot(#2572) - Add LATAM Spanish locale (#2577)
2.4.1 (2025-09-08)#
Bugfixes#
- Properly release initial bucket lock. (#2529)
2.4.0 (2025-09-08)#
Breaking Changes#
- Remove
PREMIUM_REQUIREDresponse support- Use
PREMIUMbutton components instead (#2454)
- Use
Features#
- Add
parent_idandlock_permissionstorest.reposition_channels(#2238) - Add support for fetching and editing guild onboarding (
rest.fetch_guild_onboarding,rest.edit_guild_onboarding) (#2337) - Add
PREMIUMbutton support (#2454) - Add
primary_guilduser feature. (#2469) - Add
InteractionCallbackResponseobject that gets returned in the initial response to an interaction (#2479) - Add
PIN_MESSAGESpermission. (#2498) - Add iterator pins feature. (#2501)
- Add
code_verifierfield toauthorize_access_tokenfor PKCE use-cases (#2510) - Further improve ratelimiting to track in-flight requests (#2515)
Bugfixes#
- Always send
allowed_mentionswhen editing a message to match functionality that documentation mentions (#2447) - Improve ratelimit handling when starting bot in the middle of a ratelimit window (#2452)
- Fix
OAuth2AuthorizationToken.refresh_tokentypehint beingintinstead ofstr(#2493) - Properly handle ratelimit buckets with fixed periods (#2506)
fetch_guild_inviteswill now return a sequence of invites (no metadata) if you only have theVIEW_AUDIT_LOGpermission (#2509)
Documentation Improvements#
- Improve documentation for
GuildReactionDeleteEmojiEventandDMReactionDeleteEmojiEvent(#2450)
2.3.5 (2025-06-25)#
Bugfixes#
- Fix enum
__getitem__not properly returning items with a falsy value (#2434) - Fix deserializing message snapshots (#2435)
2.3.4 (2025-06-24)#
Features#
- Add
THREAD_CREATED,THREAD_STARTER_MESSAGE,INTERACTION_PREMIUM_UPSELL,STAGE_START,STAGE_END,STAGE_SPEAKER,STAGE_TOPIC,GUILD_APPLICATION_PREMIUM_SUBSCRIPTION, andPURCHASE_NOTIFICATIONtoMessageTypeenum. (#2382) - Add
SOUNDBOARD_SOUND_CREATE,SOUNDBOARD_SOUND_UPDATE, andSOUNDBOARD_SOUND_CREATEtoAuditLogEventTypeenum. (#2384) - Re-export
hikari.impl.event_factoryas part ofhikari.impl(#2388) - Add naming to dispatch tasks to allow to identify them in the event loop (#2394)
- Allow setting HTTP concurrent connection limit through
HTTPSettings.connection_limit(#2395) - Add
HAS_THREADmember toMessageFlag. (#2398) - Add message forwarding support. (#2399)
- Add support for guild media channels. (#2409)
- Add reason to error log when hitting a subratelimit, if available (#2416)
Optimizations#
- Optimize request flow (#2393)
- Sligly optimize memory usage when dispatching tasks (#2394)
- Switch ratelimiting logic to a sliding window implementation to better match Discord's side. This will allow maximum throughput that Discord would allow (#2427)
Bugfixes#
- Fix typing inconsistency for
PartialInteraction.locale(#2401)
Documentation Improvements#
- Add items with missing docstrings (mainly enum values) (#2381)
- Document members of
ShardCloseCodeandAuditLogEventTypeenums. (#2383)
2.3.4.dev1 (2025-06-24)#
Features#
- Add
THREAD_CREATED,THREAD_STARTER_MESSAGE,INTERACTION_PREMIUM_UPSELL,STAGE_START,STAGE_END,STAGE_SPEAKER,STAGE_TOPIC,GUILD_APPLICATION_PREMIUM_SUBSCRIPTION, andPURCHASE_NOTIFICATIONtoMessageTypeenum. (#2382) - Add
SOUNDBOARD_SOUND_CREATE,SOUNDBOARD_SOUND_UPDATE, andSOUNDBOARD_SOUND_CREATEtoAuditLogEventTypeenum. (#2384) - Re-export
hikari.impl.event_factoryas part ofhikari.impl(#2388) - Add naming to dispatch tasks to allow to identify them in the event loop (#2394)
- Allow setting HTTP concurrent connection limit through
HTTPSettings.connection_limit(#2395) - Add
HAS_THREADmember toMessageFlag. (#2398) - Add message forwarding support. (#2399)
- Add support for guild media channels. (#2409)
- Add reason to error log when hitting a subratelimit, if available (#2416)
Optimizations#
- Optimize request flow (#2393)
- Sligly optimize memory usage when dispatching tasks (#2394)
- Switch ratelimiting logic to a sliding window implementation to better match Discord's side. This will allow maximum throughput that Discord would allow (#2427)
Bugfixes#
- Fix typing inconsistency for
PartialInteraction.locale(#2401)
Documentation Improvements#
- Add items with missing docstrings (mainly enum values) (#2381)
- Document members of
ShardCloseCodeandAuditLogEventTypeenums. (#2383)
2.3.3 (2025-05-18)#
Features#
- Add
startup_window_delayargument to.runand.startto customize the time in between startup windows for shards (#2369)
Optimizations#
- Greatly optimize event managers memory management by avoiding unnecessary tasks creations and reducing lifetime of objects (#2368)
Bugfixes#
- Fix error when attempting to stringify http request with a non-ascii character (#2365)
2.3.2 (2025-05-09)#
Deprecation#
- Deprecate all
x_urlproperties in favour ofmake_x_url()methods (#2338)
Features#
- Added
rest.create_voice_messageto support sending voice messages. (#2251) - Add AWEBP support for asset URLs and increase sticker asset availability (#2338)
- Add
old_threadfield toGuildThreadUpdateEvent. (#2353) - Add reason parameter to the following endpoints:
delete_permission_overwritedelete_webhookdelete_invitereposition_channelsreposition_rolesdelete_rolecreate_stage_instanceedit_stage_instancedelete_stage_instance(#2354)
Optimizations#
- Optimize reusing file resources when uploading repeated ones (#2336)
Bugfixes#
- Fix event filtering for interaction create specialized events (#2335)
- Fix duplicated uploaded attachments when reusing resources in embeds (#2336)
- Added partial missing documentation for rest voice-message interaction methods. (#2355)
2.3.1 (2025-04-27)#
Features#
- Add support for the auto-moderation API. (#2205)
Bugfixes#
- Fix modal creations through builders (#2330)
2.3.0 (2025-04-22)#
Breaking Changes#
- Remove
GuildBuilderclass,RestClient.guild_builder()andRestClient.create_guild_from_template()due to Discord removing the feature for applications.- For more information, please see: https://discord.com/developers/docs/change-log#deprecating-guild-creation-by-apps (#2310)
Features#
- Add components V2 (UIKit) support
- For more information, please see https://discord.com/developers/docs/components (#2196)
- Add
Permissions.SEND_POLLSandPermissions.USE_EXTERNAL_APPS. (#2311) - Add the following values to UserFlag:
- SPAMMER
1 << 20 - PROVISIONAL_ACCOUNT
1 << 23 - QUARANTINED
1 << 44 - COLLABORATOR
1 << 50 - RESTRICTED_COLLABORATOR
1 << 51(#2314)
- SPAMMER
Bugfixes#
- Add
approximate_user_install_countattribute toApplication. (#2303)
2.2.1 (2025-04-06)#
Features#
- Add polls support:
- New rest endpoints:
RESTClient.fetch_poll_voters,RESTClient.end_poll - New objects:
Poll,PollLayoutType,PollResult,PollAnswer,PollMedia - New builders:
PollBuilder,PollAnswerBuilder - New events:
BasePollVoteEvent,PollVoteCreateEvent,PollVoteDeleteEvent(#2219)
- New rest endpoints:
- Added more specialized interaction events
CommandInteractionCreateEvent,ComponentInteractionCreateEvent,AutocompleteInteractionCreateEventandModalInteractionCreateEventto improve developer experience (#2241) - Added support for guild specific member banners. (#2271)
- HTTP interaction handlers can return
Noneto indicate a response was/will be sent using REST instead. (#2280) - Added support for guild incidents.
- New object
GuildIncidentsas an attribute onGuild. - New property
invites_disabledadded toGuildto ease the confusion on the independentinvites_disabled_untilincident action andINVITES_DISABLEDguild feature. - New guild function
set_incident_actionsand rest functionset_guild_incident_actions. (#2289)
- New object
- Added support for global and guild specific avatar decorations.
- New
AvatarDecorationclass. - New optional
avatar_decoration,display_avatar_decoration, andguild_avatar_decorationattributes onUserandMemberas applicable. (#2295)
- New
Optimizations#
- Improve protocol checking speed. (#2252)
Bugfixes#
- Add in the missing
hikari.api.InteractionMessageBuilder.clear_components,hikari.api.InteractionMessageBuilder.clear_embedsand abstract methods + enforce using@typing_extensions.overridewithin the library. (#2244)
Documentation Improvements#
- Fix TOC jumping around when scrolling (#2255)
2.2.0 (2025-03-21)#
Breaking Changes#
- Remove
PartialInteraction.get_channelandPartialInteraction.fetch_channel. You can directly usePartialInteraction.channelinstead (#1621) - User commands breaking changes:
- Remove previously deprecated
command_interactions.InteractionChannelandcommand_interactions.ResolvedOptionData CommandInteraction.app_permissionsis no longer optional- Removal of
Commands.dm_permissionsandMessage.interaction. UseCommands.contextsandMessage.interaction_metadatarespectively (#2195)
- Remove previously deprecated
- Remove
with_expirationparameter from REST client'sfetch_invitemethod.- The parameter has been a noop for a while as Discord removed it (#2224)
Features#
- Several new
PartialInteractionfeatures:- Add new
PartialInteraction.channelattribute - Moved common interaction fields to
PartialInteraction app_permissionsis now available for all interaction types- Add missing fields to
InteractionChannel(#1621)
- Add new
- Add missing fields to
AuditLogEventType(#1991) - Add user installations support (#2177)
2.1.1 (2025-02-26)#
Features#
- Allow specifying a reason for message deletions (#2066)
- Allow setting
nameandvalueof anEmbedFieldto an empty string. (#2105)
Bugfixes#
- Fixed Entitlement
starts_atandends_aterroring when set toNone. (#2149) - Properly handle and error on Cloudflare bans (#2168)
Documentation Improvements#
- Added missing documentation for
GatewayShardand for traitShardAware, adding missing errors which can be thrown. (#2100)
2.1.0 (2024-09-25)#
Breaking Changes#
VoiceState.membercan now beNonein cases where Discord doesn't send the relevant information (#2038)
Features#
- Add the optional audit log
reasonargument tohikari.api.rest.RESTClient.delete_channelandhikari.impl.rest.RESTClientImpl.delete_channel, the same way it already exists for e.g.edit_channel(#2058)
Bugfixes#
- Fix issue when deserializing voice states with missing member data (#2038)
- Fix
fetch_application_emojisendpoint deserialization (#2050) - Fix uploading files when using aiohttp 3.10.6 and onwards (#2059)
2.0.0 (2024-08-28)#
Breaking Changes#
- Drop Python 3.8 support. (#2008)
Features#
- Implement stage instances (#1725)
- Add Python 3.13 support (#1793)
- Add
titleanddescriptionfields toAttachment. (#1945) - Add
display_nametoPartialUser(#1951) - Remove
Optionaltype hint fromCommandInteraction.options- it will now always be an empty sequence when not provided. (#1965) - Application-bound emojis API support. (#1990)
- Add
Member.guild_flagand matchingGuildMemberFlagsenum. (#2004) - Add
Message.threadfield. (#2012) - Add new voice endpoints (
fetch_my_voice_stateandfetch_voice_state) (#2016) - Add
fetch_rolemethod toRESTClient(#2020)
Bugfixes#
- Fix incorrect cleanup when failing to create request with a web reader (#1946)
- Fix serializing JSON dicts with enum values as keys. See #1955 (#1957)
- Use Discord Media Proxy instead of CDN for animated stickers urls (#1982)
- Use correct URL route for scheduled event covers. (#1983)
- Perform proper comparison when checking
CustomEmojiagainstKnownCustomEmoji. (#1986) - Add
NITRO_BASICattribute toPremiumType(#1988) - Fix incorrectly deserialized field
typeinChannelOverwriteEntryInfo(#1993) - Add missing
AuditLogChangeKey.COMMUNICATION_DISABLED_UNTILand matching key deserialization (#1996)
2.0.0.dev126 (2024-06-20)#
Features#
- Add
registered_guild_idfield toBaseCommandInteraction(#1930) - Add
clear_fields()method toEmbed(#1933) - Add payload to deserialization error to make it easier to diagnose (#1943)
Bugfixes#
- Fix incorrect form uploads with transport sensitive content (#1909)
Documentation Improvements#
2.0.0.dev125 (2024-04-28)#
Features#
- Add monetization support. (#1803)
- Add missing link properties
- Add
message_linkproperty toMessageReference - Add
channel_linkproperty toMessageReference(#1877) - Add missing
video_quality_modefield toGuildStageChannel(#1891) - Optimize gateway transport
- Merge cold path for zlib compression into main path to avoid additional call
- Handle data in
bytes, rather than instrto make good use of speedups (similar toRESTClient) (#1898)
Bugfixes#
- Fix warning raised in aiohttp 3.9.4 when using
FormData(most commonly, when uploading attachments) (#1881) - Properly handle websocket transport errors and recover
- Additionally, errors will now include additional information (#1897)
2.0.0.dev124 (2024-04-07)#
Features#
- Improve
Emoji.parsetyping to make it more explicit (#1870) - Add ability to edit own user banner (#1871)
Bugfixes#
- Fix incorrectly formatted error strings (#1866)
- Properly handle initial opcode as being RECONNECT (7) (#1867)
Documentation Improvements#
- Replace mentions of
PRIVATE_MESSAGESwithDM_MESSAGES(#1874)
2.0.0.dev123 (2024-03-31)#
Breaking Changes#
- Remove previously deprecated
Permissions.MANAGE_EMOJIS_AND_STICKERS(#1762)
Features#
- Allow subscribing to generic events (#1814)
- Allow changing guild features (community, etc.) (#1828)
- Improve embed parameters typing (#1841)
Bugfixes#
- Fix
CommandInteractionOption.valuetypehint not includingfloat(#1805) Member.joined_atis now nullable due to breaking API change- This will be received on guest members with temporary membership (#1812)
- Shard rate-limiters are now reset per websocket connection, avoiding a rare issue where a persistent network issue could allow the shard to be rate-limited (#1813)
Documentation Improvements#
- Switch documentation to mkdocs (#1810)
2.0.0.dev122 (2023-11-18)#
Deprecation#
- Deprecate
Permissions.MANAGE_EMOJIS_AND_STICKERSin favour ofPermissions.MANAGE_GUILD_EXPREASSIONS(#1758)
Features#
- Add Python 3.12 support. (#1357)
- Allow class listeners (#1661)
- Add missing
clear_xmethods toInteractionMessageBuilder - This brings the functionality more in-line with other message edit APIs (#1740)
- Add missing permissions (#1758)
Bugfixes#
- Fix optional connection "revoked" field KeyError when fetching connections. (#1720)
- Ensure shard connect and disconnect always get sent in pairs and properly waited for (#1744)
- Improve handing of force exiting a bot (double interrupt)
- Improve exception message
- Reset signal handlers to original ones after no longer capturing signals (#1745)
2.0.0.dev121 (2023-09-10)#
Features#
- Add
approximate_member_countandapproximate_presence_counttoOwnGuild. (#1659) - Add
CacheSettings.only_my_memberto only cache the bot member. (#1679) - Bots can now utilize
Activity.state - When used with
typeset toActivityType.CUSTOM, it will show as the text for the custom status. Syntactic sugar also exists to support simply usingnameinstead ofstate. - Can be used with other activity types to provide additional information on the activity. (#1683)
- Add missing Audit Log event types to
AuditLogEventType(#1705) - Add
approximate_guild_countfield to ownApplication(#1712)
Bugfixes#
- Handle connection reset error on shards. (#1645)
- Retry REST requests on connection errors (#1648)
- Add support for text in stage channels (#1653)
- Fix incorrect calculation for the default avatar of migrated users (#1673)
- Fix attachments not being removed in message edits when
attachmentorattachmentsisNone(#1702)
2.0.0.dev120 (2023-06-08)#
Breaking Changes#
- Remove previously deprecated
hikari.impl.botmodule (#1612)
Deprecation#
- Deprecate
User.discriminator(#1631)
Features#
- Implement voice messages (#1609)
- Implement username changes:
- Add
global_name User.__str__()respectsglobal_namenowUser.default_avatar_urlreturns correct URL for migrated accounts (#1631)
Bugfixes#
- Fix a bug in
RESTClient.edit_guildwhich load to closed stream errors (#1627) - Properly handle DM channels in resolved interaction channels. (#1628)
2.0.0.dev119 (2023-05-08)#
Breaking Changes#
- Remove deprecated functionality for 2.0.0.dev119
- Removed
TextInputBuilder.requiredin favour ofTextInputBuilder.is_required. - Removed the ability to pass
CommandChoicesinstead ofAutocompleteChoiceBuilderswhen making autocomplete responses. (#1580)
Bugfixes#
- Fix
messagesargument typing forRESTClient.delete_messages. (#1581) - Default
HTTPSettings.enable_cleanup_closedtoFalse. - CPython3.11 changes around SSLProto have made this quite unstable and prone to errors when dealing with unclosed TLS transports, which ends up in aiohttp calling close and abort twice. (#1585)
Guild.get_channel,Guild.get_emoji,Guild.get_stickerandGuild.get_rolenow only return entries from the relevant guild. (#1608)
2.0.0.dev118 (2023-04-02)#
Breaking Changes#
-
Refactors to the component builder interfaces which make them flatter:
-
Removed
add_to_containerfromButtonBuilder,LinkButtonBuilder,InteractiveButtonBuilder,SelectMenuBuilder,ChannelSelectMenuBuilder, andTextInputBuilder; these classes are no-longer generic and no-longer takecontainerin their inits. - Replaced
TextSelectMenuBuilder.add_to_containerwith theTextSelectMenuBuilder.parentproperty. This new property doesn't "finalise" the addition but rather just returns the parent object, or raises if the select menu is an orphan. This change also involves replacing thecontainerparameter inTextSelectMenuBuilder.__init__with an optionalparentparameter. - Removed
SelectOptionBuilder.add_to_menu; this class isn't generic anymore. TextSelectMenuBuilder.add_optionnow takes all the option's configuration as parameters and returnsSelf.- Split
MessageActionRowBuilder.add_buttoninto.add_interactive_buttonand.add_link_button. These both now take all the button's configuration as parameters and returnSelf. MessageActionRowBuilder.add_select_menunow takes all the menu's configuration as parameters and returnsSelf. The new.add_channel_menuand.add_text_menumethods should be used for adding text and channel menus. Where.add_channel_menureturnsSelfand.add_text_menureturns a text menu builder with aparentproperty for getting back to the action row builder.ModalActionRowBuilder.add_text_inputnow takes all the text input's configuration as parameters and returnsSelf.min_lengthandmax_lengthcan no-longer behikari.undefined.UNDEFINEDfor the text input builder, and default to0and4000respectively. This change effects both the types accepted byModalActionRowBuilder.__init__and the return types of the relevant properties.- Removed the
emoji_idandemoji_nameparameters fromLinkButtonBuilder.__init__, andInteractiveButtonBuilder.__init__. - Removed the
styleandcustom_idparameters fromLinkButtonBuilder.__init__. - Removed the
urlparameter fromInteractiveButtonBuilder.__init__. (#1533) - Remove previously deprecated functionality:
Intents.GUILD_BANS(deprecated alias forIntents.GUILD_MODERATION)ComponentType.SELECT_MENU(deprecated alias forIntents.TEXT_SELECT_MENU)- Not passing type through
typeargument explicitly toMessageActionRowBuilder.add_select_menu(#1535) - Renamed
StickerPack.banner_hashtoStickerPack.banner_asset_id. (#1572)
Deprecation#
- Renamed
TextInputBuilder.requiredproperty toTextInputBuilder.is_required. (#1533) - Passing
CommandChoices instead ofAutocompleteChoiceBuilders when making autocomplete responses. (#1539) hikari.impl.botmoved tohikari.impl.gateway_bot. (#1576)
Features#
Role.mentionnow returns"@everyone"for the@everyonerole. (#1528)-
Refactors to the component builder interfaces which make them flatter:
-
hikari.undefined.UNDEFINEDcan now be passed toTextInputBuilder.set_placeholderandTextInputBuilder.set_value. - The standard implementation of a select option builder is now exposed at
hikari.impl.special_endpoints.SelectOptionBuilder. (#1533) CommandChoice.name_localizationsfield and separateAutocompleteChoiceBuilderfor use when making autocomplete responses. (#1539)- Implement guild role subscriptions. (#1550)
- Add
Role.is_guild_linked_role. (#1551) hikari.iterators.LazyIterator.flattenmethod for flattening a lazy iterator of synchronous iterables. (#1562)- Support sending stickers when creating a message. (#1571)
-
Added several set methods for required values to the builders:
-
CommandBuilder.set_name SlashCommandBuilder.set_descriptionInteractiveButtonBuilder.set_custom_idSelectOptionBuilder.set_labelSelectOptionBuilder.set_valueSelectMenuBuilder.set_custom_id(#1574)
Bugfixes#
emoji=can now be passed toLinkButtonBuilder.__init__andInteractiveButtonBuilder.__init__alone without causing serialization issues (and Pyright will now let you pass it). (#1533)- Open
banner.txts withutf-8encoding explicitly. (#1545) - Pyright will now let you pass
role_mentionsanduser_mentionstoInteractionMessageBuilder.__init__. (#1560) - Fixed forum channel applied tags not being a sequence of snowflakes. (#1564)
- Switch to using https://github.com/discord/twemoji for emoji images. (#1568)
-
Fixed sticker pack handling and typing:
-
Fixed deserialization raising when
"banner_asset_id"or"cover_sticker_id"weren't included in the payload. StickerPack.banner_asset_idis now correctly typed asOptional[Snowflake].StickerPack.banner_urlandStickerPack.make_banner_urlboth now correctly returnNonewhenStickerPack.banner_asset_idisNone. (#1572)
2.0.0.dev117 (2023-03-06)#
Breaking Changes#
- Remove previously deprecated functionality:
delete_message_daysparameter forbanmethods. (#1496)typecan no-longer be specified while initialisehikari.impl.special_endpoints.TextSelectMenuBuilderandhikari.impl.special_endpoints.ChannelSelectMenuBuilder.hikari.api.special_endpoints.SelectOptionBuilderno-longer inherits fromhikari.api.special_endpoints.ComponentBuilder(but it still has abuildmethod). (#1509)
Features#
- Pre-maturely fetch the public key if not present when starting an interaction server. (#1423)
- Add and document the new
SUPPRESS_NOTIFICATIONSmessage flag. (#1504) hikari.impl.special_endpoints.ChannelSelectMenuBuilderandhikari.impl.special_endpoints.TextSelectMenuBuilderare now both exported directly onhikari.impl. (#1508)typeproperty to the component builders. (#1509)- Traits now use
abc.abstractmethod. This gives better type errors. (#1516) token_typenow defaults to"Bot"when initialisingRESTBotwith a string token. (#1527)
Bugfixes#
- Re-export missing exports from
hikari.api.special_endpointsandhikari.components. (#1501) - Fix
PartialSticker.image_urlnot accounting for stickers with GIF format. (#1506) - Await bucket manager gc task to completion when closing (#1529)
2.0.0.dev116 (2023-02-06)#
Breaking Changes#
- Remove
RateLimitedErrorin favour of always waiting on ratelimits. (#1441) - (#1455)
- Default logging to
sys.stdoutstream to bring more in-line with banner output. (#1485)
Deprecation#
- Deprecate selects v1 functionality:
ComponentType.SELECT_MENU->ComponentType.TEXT_SELECT_MENU- Not passing
MessageActionRowBuilder.add_select_menu'stypeargument explicitly. InteractionChannelandResolvedOptionDatamoved fromhikari.interactions.command_interactionstohikari.interactions.base_interactions. (#1455)- Renamed
Intents.GUILD_BANStoIntents.GUILD_MODERATION. (#1471)
Features#
- Add linked roles support (models + endpoints). (#1422)
- Add selects v2 components. (#1455)
- Added
fetch_self,edit,delete,sync, andcreate_guildmethods tohikari.templates.Template. (#1457) - Add ability to suppress optimization warnings through
suppress_optimization_warning=Trueto theGatewayBotorRESTBotconstructors. (#1459) - Support GIF sticker image format (#1464)
- Add support for guild audit log entry create events. (#1471)
- Update
RESTClient.edit_channnelto support settingapplied_tagson forum threads. (#1474) - Implement
reply_must_existin create message methods (#1475) - Support loading files through
logging.config.fileConfigininit_logging. (#1485) - Add
orjsonas an optional speedup and allow to pass customjson.dumpsandjson.loadsfunctions to all components. (#1486)
Bugfixes#
- The global ratelimit now abides by
max_rate_limit. (#1441) - Move
description_localizationsfromPartialCommandtoSlashCommand(removing it fromContextMenuCommand). (#1470) - Add missing fields to
GuildChannel.edit. (#1474) - Fix
hikari.webhooks.ChannelFollowWebhooknot including source in all cases. source_channelandsource_guildwill beNoneinstead. (#1480)- Fix colour logging not occurring on specific terminals (ie, Pycharm). (#1485)
2.0.0.dev115 (2023-01-03)#
Breaking Changes#
- Remove previously deprecated functionality. This includes:
RESTClient.build_action_row(#1438)
Bugfixes#
- Fix deserializing old forum channels on
GUILD_CREATEmissing some fields. (#1439)
2.0.0.dev114 (2023-01-01)#
Breaking Changes#
BulkDeleteError:- No longer contains a
messages_skippedattribute. messages_deletedrenamed todeleted_messages. (#1134)RESTAppandRESTBucketManagernow need to be started and stopped by using.startand.close. (#1230)- Remove long deprecated
async withsupport forEventStream. (#1426)
Deprecation#
- Deprecate the
delete_message_daysparameter for PartialGuild.ban and Member.ban. (#1378)
Features#
- Allow async iterators in
RESTClient.delete_messages. (#1134) RESTClientImplimprovements:- You can now share client sessions and bucket managers across these objects or have them created for you.
- Speedup of request lifetime
- No-ratelimit routes no longer attempt to acquire rate limits
- Just for safety, a check is in place to treat the route as a rate limited route if a bucket is ever received for it and a error log is emitted. If you spot it around, please inform us! (#1230)
- Add
save()method toResource. (#1272) - Allow specifying the
delete_message_secondsparameter for PartialGuild.ban and Member.ban. - This parameter can be specified as either an int, a float, or a datetime.timedelta object. (#1378)
- Support yielding in interaction listeners. (#1383)
- Add Indonesian locale as
hikari.Locale.ID. (#1404) - Improve pyright support (#1412)
- Improve error raised when attempting to use an asynchronous iterator synchronously. (#1419)
- Add missing
Applicationfields: Application.custom_install_urlApplication.tagsApplication.install_parameters(#1420)- Add support for guild forum channels. (#1430)
- Add a warning when not running in (at least) level 1 optimization mode. (#1431)
Bugfixes#
- Buckets across different authentications are not shared any more, which would lead to incorrect rate limiting. (#1230)
- Suppress incorrect deprecation warning regarding event loops. (#1425)
- Properly close unclosed file descriptor when reading banner.
- This only affects versions of Python >= 3.9. (#1434)
- Start GC of bucket manager when creating a rest client. (#1435)
- Fix incorrect value in
CommandBuilder.is_nsfw. (#1436)
2.0.0.dev113 (2022-12-04)#
Breaking Changes#
- Remove previously deprecated functionality.
This includes: - Message.mentions - nick argument in rest methods - edit_permission_overwrites, edit_my_nick and command_builder rest methods - CacheView.iterator (#1347)
Deprecation#
- Deprecate
RESTClientImpl.build_action_rowin favour ofRESTClientImpl.build_message_action_row. (#1002)
Features#
- Implement modal interactions.
- Additionally, it is now guaranteed (typing-wise) that top level components will be an action row (#1002)
- Add new
UserFlag.ACTIVE_DEVELOPER. (#1355) - Allow specifying a filename to
hikari.files.URL. (#1368) - Only subscribe to voice events when needed in the voice manager. (#1369)
- Add functionality to create and deserialize age-restricted (NSFW) commands. (#1382)
- Threads cache. (#1384)
Bugfixes#
- Allow re-uploading attachments when creating messages (#1367)
- Fix error caused when disconnecting the bot and having active voice connections. (#1369)
- Remove incorrect
is_nsfwfield from threads. - The "NSFW" status is inherited from the parent object and not sent for threads.
- This also involved moving the base attribute from
GuildChanneltoPermissibleGuildChannel. (#1386)
Documentation Improvements#
- Documentation overhaul and move to docs.hikari-py.dev domain. (#1118)
2.0.0.dev112 (2022-11-06)#
Breaking Changes#
- Moved permission overwrite mapping and permission related methods from
GuildChanneltoPermissibleGuildChannel. (#811) - Support v10 attachments edits
This includes breaking changes, features and things to look out for when editing messages: - Modifying attachments in messages that contain embeds with any image attached to them now requires the images of that embed image to be re-passed in the edit or they will be lost. - attachment and attachments in message edits now support passing an Attachment object to keep existing attachments. - replace_attachments has been removed, as it is now the default. - attachment and attachments now supports None to replicate the behaviour of fully removing all attachments. - InteractionMessageBuilder.clear_attachments has been implemented to remove existing attachments from messages. (#1260)
Features#
- Thread support for REST requests and gateway events. (#811)
- Startup and shutdown callbacks for the RESTBot interface/impl. (#999)
- Support specifying
with_countsandwith_expirationinRESTClient.fetch_invite(#1330) - Support for including the
SUPPRESS_EMBEDSflag while creating a message. (#1331) - Add
MANAGE_EVENTSpermission tohikari.Permissions(#1334)
Bugfixes#
- Wrong typehint for
InviteGuild.features. (#1307) - Fix aiohttp error "charset must not be in content type" when using
InteractionServer(#1320) - The REST list methods (e.g.
fetch_channels) no-longer raisehikari.errors.UnrecognisedEntityErrorwhen they encounter an unknown type. (#1337) - Fix deprecation warnings in CPython3.11 in
hikari.internal.ux. (#1344)
2.0.0.dev111 (2022-09-26)#
Breaking Changes#
- Lifetime improvements breaking changes:
GatewayBot.join'suntil_closeargument removed.GatewayShardImpl.get_user_idis no longer async and will now always be available.GatewayBotAwareno longer defines the default parameters forjoin,startandrun. It is left to implementation detail. (#1204)- Remove support for ProcessPoolExecutor executor when reading files
- It is much more efficient to use a threadpool executor for I/O actions like this one
- Due to the nature of process pool, we were also not able to perform proper chunking when reading off the file (#1273)
Deprecation#
- Deprecate
CacheView.iteratorin favour of using theitertoolsmodule. (#1289)
Features#
- Add python 3.11-dev support. (#847)
- Support for Application Command Localizations. (#1141)
- Improve components lifetimes:
GatewayBot:- General speedups.
- Fix a lot of edge cases of hard crashes if the application shuts unexpectedly.
- More consistent signal handling.
run'sshard_idsargument can now be atyping.Sequence.- Improved logging.
RESTBot:- Consistent signal handling inline with
GatewayBot. - Improved logging.
- Improved loop closing.
- Consistent signal handling inline with
GatewayShardImpl:- New
is_connectedproperty to determine whether the shard is connected to the gateway. - Faster websocket pulling and heartbeating.
- Improved error handling.
- Rate limiting changes:
- Chunking no longer has its own special ratelimit. Now it is shared with the rest of "non-priority" packages sent, which is of 117/60s (3 less than the hard limit).
- "priority" packages currently only include heartbeating. (#1204)
- New
- Implement slash option min/max length fields (#1216)
- Add
mentionproperty toPartialChannel. (#1221) - Implement new Gateway reconnect logic enforced by Discord. (#1245)
Bugfixes#
- Lifetime improvements bugfixes:
GatewayShardImplcan now be instantiated out of an async environment for consistency with other components.- Correct signal handling in
RESTBot. (#1204) - Improve
BadRequestError's error string. (#1213) - Fix
hikari.impl.VoiceImpl.connect_tosilently failing if the guild or voice channel do not exist by providing a timeout. (#1242) dm_permissionnow correctly defaults toTrueinstead ofFalsewhen parsing command objects from Discord. (#1243)- Fix float precision issues when creating a snowflake from a datetime object. (#1247)
- Fix
reposition_channelsto use the correct route. (#1259) - Allow for
replace_attachmentskwarg to be used inRESTClient.create_initial_response. (#1266) - Ignore guild create events which contain unavailable guilds (#1284)
2.0.0.dev110 (2022-08-08)#
Breaking Changes#
- Removed case of
Member.mentionreturning bang (!) mention, as it is deprecated by Discord. (#1207)
Deprecation#
RESTClient.edit_permission_overwritesrenamed toRESTClient.edit_permission_overwrite(#1195)
Features#
- Add
hikari.events.StickersUpdateEventand relevant cache internals. Add sticker related public methods ontohikari.impl.CacheImplandhikari.guilds.Guild. (#1126) GuildVoiceChannelnow inherits fromTextableGuildChannelinstead ofGuildChannel. (#1189)- Add the
app_permissionsfield to command and component interactions. (#1201) - Add application command badge (#1225)
Bugfixes#
- Fix how CommandBuilder handles
default_member_permissionsto match the behaviour on PartialCommand. (#1212)
2.0.0.dev109 (2022-06-26)#
Breaking Changes#
- Removal of all application commands v1 related fields and endpoints.
- Discord has completely disabled some endpoints, so we unfortunately can't deprecate them instead of removing them (#1148)
- Removed the
resolvedattribute fromAutocompleteInteractionas autocomplete interactions never have resolved objects. (#1152) buildmethods are now typed as returningMutableMapping[str, typing.Any]. (#1164)
Deprecation#
messages.Mentionsobject deprecated- Alternatives can be found in the base message object (#1149)
Features#
- Add
createmethod toCommandBuilder. (#1016) - Support for attachments in REST-based interaction responses. (#1048)
- Add option to disable automatic member chunking. Added the
auto_chunk_memberskwarg toGatewayBotandEventManagerImpl, which whenFalsewill disable automatic member chunking. (#1084) - Allow passing multiple event types to the listen decorator. Parse union type hints for events if listen decorator is empty. (#1103)
- Animated guild banner support. (#1116)
- Implement application commands permission v2.
- New
default_member_permissionsandis_dm_enabledrelated fields. - Added
hikari.events.application_events.ApplicationCommandPermissionsUpdate. - Added
APPLICATION_COMMAND_PERMISSION_UPDATEaudit log entry (#1148)
Bugfixes#
- Improved pyright support. (#1108)
RESTClientImpl.fetch_bansnow return aLazyIteratorto allow pagination of values. (#1119)- Fix unicode decode error caused by
latin-1encoding when sending the banner. (#1120) - Don't error on an out-of-spec HTTP status code (e.g one of Cloudflare's custom status codes).
HTTPResponseError.statusmay now be of typehttp.HTTPStatusorint. (#1121) - Fix name of polish locale (
hikari.Locale.OL->hikari.Locale.PL) (#1144) - Properly garbage collect message references in the cache
- Properly deserialize
PartialMessage.referenced_messageas a partial message (#1192)
- Properly deserialize
2.0.0.dev108 (2022-03-27)#
Breaking Changes#
hikari.confighas now been split up tohikari.api.configandhikari.impl.configto avoid leaking impl detail. This also means that config types are no-longer accessible at the top level (directly onhikari). (#1067)- Hide the entity factory's component deserialize methods. (#1074)
- Remove nonce parameter from create message. This was purposely removed from the bot api documentation inferring that its no-longer officially supported. (#1075)
- Remove
VoiceRegion.is_vipdue to Discord no longer sending it. (#1086) - Remove store sku related application fields and store channels. (#1092)
Deprecation#
- Renamed
nickargument tonicknamefor edit member and add user to guild REST methods. (#1095)
Features#
- Scheduled event support. (#1056)
get_guild()is now available onhikari.GuildChannel. (#1057)- Optimize receiving websocket JSON for the happy path. (#1058)
- The threaded file reader now persists the open file pointer while the context manager is active. (#1073)
- Optimize event dispatching by only deserializing events when they are needed. (#1094)
- Add
hikari.locales.Localeto help with Discord locale strings. (#1090)
Bugfixes#
fetch_my_guildsno-longer returns duplicate guilds nor makes unnecessary (duplicated) requests whennewest_firstis set toTrue. (#1059)- Add
InviteEventtohikari.events.channel_events.__all__,hikari.events.__all__andhikari.__all__. (#1065) - Fix incorrect type for ATTACHMENT option values. (#1066)
EventManager.get_listenersnow correctly defines polymorphic and returns accordingly. (#1094)- Take the major param for webhook without token endpoints when handling bucket ratelimits. (#1102)
- Fix incorrect value for
GuildFeature.MORE_STICKERS. (#1989)
2.0.0.dev107 (2022-03-04)#
Features#
- Added a
total_lengthfunction tohikari.embeds.Embed - Takes into account the character length of the embed's title, description, fields (all field names and values), footer, and author combined.
- Useful for determining if the embed exceeds Discord's 6000 character limit. (#796)
- Added attachment command option type support. (#1015)
- Add MESSAGE_CONTENT intent. (#1021)
- Custom substitutions can now be used in
hikari.internal.ux.print_banner. (#1022) get_guild()is now available onhikari.Member. (#1025)- The notorious "failed to communicate with server" log message is now a warning rather than an error. (#1041)
hikari.applications,hikari.files,hikari.snowflakesandhikari.undefinedare now all explicitly exported byhikari.__init__, allowing pyright to see them without a direct import. (#1042)
Bugfixes#
- Fix bucket lock not being released on errors while being acquired, which locked the bucket infinitely (#841)
enable_signal_handlersnow only defaults toTruewhen the run/start method is called in the main thread. This avoids these functions from always raising when being run in a threaded environment as only the main thread can register signal handlers. (#998)- Sub-command options are now properly deserialized in the autocomplete flow to
AutocompleteInteractionOptioninstead ofCommandInteractionOption. (#1012) - Attempt to reconnect on a gateway
TimeoutError. (#1014) - Properly close
GatewayBotwhen not fully started. (#1023) - The async context manager returned by
File.streamnow errors on enter if the target file doesn't exist to improve error handling when a file that doesn't exist is sent as an attachment.
The multiprocessing file reader strategy now expands user relative (~) links (like the threaded strategy). (#1046)
2.0.0.dev106 (2022-02-03)#
Breaking Changes#
- Running the standard interaction server implementation now requires a
hikari[server]install.
This matches a switch over to PyNacl for the cryptographic payload validation. (#986)
Deprecation#
- Deprecated
RESTClient.command_builderandRESTClient.create_application_command.
You should switch to RESTClient.slash_command_builderand RESTClient.create_slash_command respectively. (#924)
Features#
- Add context menu commands and command autocomplete. (#924)
- Added support for GET /users/@me/guilds/{guild}/member. (#955)
- Add the
SUPPRESS_USER_JOIN_REPLIESsystem channel flag. (#957) - Add new message content intent related application flags. (#958)
- Add the
BOT_HTTP_INTERACTIONSuser flag. (#959) - Add new presence activity flags. (#960)
- Add URL methods and properties for rich presence assets. (#961)
- Add
localeandguild_localeproperties to interactions. (#962) - Add ability to send attachments in an interaction initial response. (#971)
- Add
display_avatar_urlproperty tohikari.Memberandhikari.User. (#975) - old_x keyword arguments in the event factory now default to
None. (#984) - Strip tokens in the standard bot impls and RESTApp.
This helps avoids a common mistake with trailing new-lines which leads to confusing errors on request. (#989)
Bugfixes#
- Relaxed typing of methods with union entry specific specialisations through overloads. (#876)
- Fix deprecation warnings raised by usage of
asyncio.gatheroutside of an active event loop inGatewayBot.run. (#954) - UTF-8 characters are now properly handled for audit-log reasons in REST requests. (#963)
- Fix magic methods for
UserImpland its subclasses. (#982)
2.0.0.dev105 (2022-01-01)#
Features#
- Add min_value and max_value to
CommandOption(#920) - Add
flagsattribute to Application (#939) - Implement member timeouts
- Add
raw_communication_disabled_untilandcommunication_disabled_untiltoMember - Add
MODERATE_MEMBERStoPermission - Add
communication_disabled_untilattribute toedit_member(#940)
Bugfixes#
- Improved pyright compatibility and introduced pyright "type-completeness" checking. (#916)
- Add EventStream.filter specialisation to the abc. (#917)
- Update the app command name regex to account for more recently documented support for non-english characters on Discord's end. (#918)
- Fix reposition_roles using the wrong route. (#928)
- Fix
PartialSticker.image_urlnot passing the hash as a string (#930) - Fixed the url being generated for role icons to not erroneously insert ".png" before the file extension (#931)
- Fix some bugs in message deserialization
- Remove case for setting
memberandreference_messagetoundefined.Undefinedin full message deserialization - Don't set
message.membertoundefined.UNDEFINEDon partial message deserialization if message was sent by a webhook (#933)
- Remove case for setting
2.0.0.dev104 (2021-11-22)#
Breaking Changes#
- Remove the redundant
ChannelCreateEvent,ChannelUpdateEventandChannelDeleteEventbase classes.GuildChannelCreateEvent,GuildChannelUpdateEventandGuildChannelDeleteEventshould now be used. (#862) - Split bulk message delete from normal delete
- The new event is now
hikari.events.message_events.GuildBulkMessageDeleteEvent(#897)
- The new event is now
Deprecation#
Features#
- User banners and accent colors to user models. (#811)
- Add attachment "is_ephemeral" field (#824)
- Guild member avatars (#825)
- RESTClient
edit_my_membermethod which currently only takes "nick". (#827) - Add role icons (#838)
- RESTClient.entity_factory property (#848)
- Added component support to InteractionMessageBuilder. (#851)
EventStream.filternow always returnsEventStream. (#864)- Allow for passing a URL for avatar_url on execute_webhook. (#889)
- Add
old_messageattribute tohikari.events.message_events.MessageDelete(#897) - Switch to more relaxed requirements. (#906)
Bugfixes#
- Don't raise in bulk delete when message not found by delete single message endpoint (#828)
- Setup basic handler if no handlers are defined in favour passed to
logging.config.dictConfig(#832) - InteractionMessageBuilder and RESTClientImpl.create_interaction_response now cast content to str to be consistent with the other message create methods. (#834)
- create_sticker method failing due to using an incorrect body. (#858)
- Fix logic for asserting listeners to not error when using defaults for other arguments (#911)
- Fix error message given by action row when a conflicted type is added. (#912)
2.0.0.dev103 (2021-10-06)#
Breaking Changes#
USE_PUBLIC_THREADSandUSE_PRIVATE_THREADSpermissions have been removed in favour of new threads permission- New permissions are split into
CREATE_PUBLIC_THREADS,CREATE_PRIVATE_THREADSandSEND_MESSAGES_IN_THREADS(#799) GuildAvailableEventwill no longer fire when the bot joins new guilds- Some
guild_create-ish methods were renamed toguild_available(#809) - Remove
hikari.errors.RESTErrorCodeenum - The message that is sent with the error code is the info that the enum contained (#816)
- PermissionOverwrite doesn't inherit from Unique anymore and isn't hashable. Equality checks now consider all its fields. (#820)
Features#
- Add new
START_EMBEDDED_ACTIVITIESpermission (#798) - Support new
channel_typesfield inCommandOption(#800) - Add the
add_componentmethod tohikari.api.special_endpoints.ActionRowBuilder(#804) - Add
old_guildattribute toGuildLeaveEvent. (#806) - Add
GuildJoinEventthat will fire when the bot joins new guilds (#809)
Bugfixes#
- Fix re-uploading forms with resources (#787)
- Prevent double linking embed resources, which causes them to upload twice
- This was caused by attempting to move the resource from one embed to another (#788)
- Fix
BulkDeleteErrorreturning incorrect values formessages_skipped - This affected the
__str__andpercentage_completion, which also returned incorrect values (#817)
Documentation Improvements#
- Add docstrings to the remaining undocumented
GatewayBotmethods (#804)
2.0.0.dev102 (2021-09-19)#
Deprecations and Removals#
MessageType.APPLICATION_COMMANDrenamed toMessageType.CHAT_INPUT(#775)- Removal of deprecated
hikari.impl.bot.BotAppandhikari.traits.BotAware - Use
hikari.impl.bot.GatewayBotandhikari.traits.GatewayBotAwarerespectively instead (#778)
Features#
- Message components support (#684)
- Web dashboard example with
rillrate(#752) - Sticker methods to PartialGuild (#754)
- Sticker audit log event types (#756)
- Helpful Application object methods (#757)
- Missing audit log change keys (#759)
- Retry request on 500, 502, 503 and 504 errors
- Default retry count is 3, with a hard top of 5. This can be changed with the
max_retriesargument (#763) - New
is_for_emojimethods to relevant reaction events (#770) - Add
USE_EXTERNAL_STICKERSpermission (#774) - Add
MessageType.CONTEXT_MENU_COMMANDmessage type (#775) - Add
ApplicationCommand.version(#776)
Bugfixes#
- Handling of interaction models passed to the webhook message endpoints as the "webhook" field (#759)
- Fix passing
embedsarguments increate_interaction_responseandedit_initial_responseendpoints - Fix deserialization of embeds in
create_interaction_response - Fix
TypeErrorsraised inedit_initial_responsewhen passing a list of embeds (#779) - Improve typing for message objects and message update methods
- Fix the use of
typing.Optionalwhereundefined.UndefinedOrshould have been used - Remove trying to acquire guild_id from the cached channel on PartialMessage
- Instead, clearly document the issue Discord imposes by not sending the guild_id
is_webhookwill now returnundefined.UNDEFINEDif the information is not available- Fix logic in
is_humanto account for the changes in the typing - Set
PartialMessage.membertoundefined.UNDEFINEDwhen Discord edit the message to display an embed/attachment (#783) CommandInteractionOption.valuewill now be cast to aSnowflakefor types 6-9 (#785)
Documentation Improvements#
- Fix typo in Colorish docstring (#755)
- Remove duplicate raise type in REST and guilds docstrings (#768)
- Fix various spelling mistakes (#773)
The changelog was added during the development of version 2.0.0.dev102, so nothing prior is documented here.