Version 3 Changelog¶
Below are all the changelogs for the new versions of hikari-lightbulb (version 3.0.0 to present).
v3.2.4 (2026-04-29)¶
Bugfixes¶
Fix name localizations for non-slash commands. (#673)
Documentation¶
Fixed documentation example errors:
Fixed missing double-quote in class parameter
Added missing hikari import to example
Removed invalid ‘wait’ parameter from menu.attach() method call
(#638)
Added EPub and PDF documentation support to nox and readthedocs
Added nox commands to generate epub and pdf build output
Enabled epub and pdf support in .readthedocs.yml
Added epub and pdf specific options in docs/source/conf.py
Excluded badges from epubs and pdf specifically (This is to avoid issues with latex & formatting) (#645)
v3.2.3 (2025-12-27)¶
Miscellaneous¶
Add support for Python 3.14.
v3.2.2 (2025-11-04)¶
Bugfixes¶
Avoid SyntaxWarning on CPython 3.14+ (#614)
Miscellaneous¶
Bump minimum Hikari version to 2.5.0 (#621)
v3.2.1 (2025-09-09)¶
Miscellaneous¶
Bump Hikari version support to 2.4.0. (#603)
v3.2.0 (2025-08-29)¶
Features¶
Add a feature flags implementation to allow enabling new or modified Lightbulb behaviours. See the documentation for the
lightbulb.featuresmodule for more details.
Bugfixes¶
Fix the
remainingattribute ofOnCooldownhaving the incorrect value when using the sliding window algorithm.
v3.1.3 (2025-08-24)¶
Features¶
Add a
lb_prefix to component custom IDs generated by Lightbulb. (#593)
v3.1.2 (2025-08-10)¶
Features¶
Add
lightbulb.utils.to_choices()helper for converting various values toChoicesequences.
Bugfixes¶
Fix unloading extensions still allowing subcommands to be invoked. (#587)
v3.1.1 (2025-07-30)¶
Bugfixes¶
Fix commands no longer being invokable when their extensions are reloaded.
v3.1.0 (2025-07-23)¶
Features¶
Implement option converters, allowing conversion of option values to custom types. (#574)
v3.0.3 (2025-07-18)¶
Bugfixes¶
Add
typing-extensionsas a dependency.
v3.0.2 (2025-07-14)¶
Features¶
v3.0.1 (2025-06-09)¶
Bugfixes¶
Fix memory leak when a handler errors before submitting an initial response within REST-based interactions.
Miscellaneous¶
Silence TimeoutError from being logged when using persistent menus with timeouts enabled.
v3.0.0 (2025-06-06)¶
Features¶
This is the first V3 stable release! From now on the number of breaking changes will be minimal and the API is considered stable. Any breaking changes will be preceded by a suitably long deprecation period.
v3.0.0a26 (2025-06-01)¶
Breaking Changes¶
Removed
waitkwarg from theMenu.attachmethod -wait=Trueis now the only supported behaviour. For persistent menus, you should use theMenu.attach_persistentmethod instead.MenuHandleis no longer awaitable. You should await the.wait()method instead.
(#569)
Features¶
Add
Menu.attach_persistentmethod to replace previous waiter functionality. (#569)
Miscellaneous¶
Optimised the number of asyncio tasks created when using menus to improve performance at a large scale. (#569)
v3.0.0a25 (2025-05-28)¶
Features¶
Add
permit_adminargument to builtin permission check hooks.Add
sync_commandsflag when constructing the Client instance.
v3.0.0a24 (2025-05-20)¶
Bugfixes¶
Fix DI context not propagating correctly for menu callbacks where it would be expected to work. (#563)
Miscellaneous¶
Remove maximum version limit for
linkdandconfspec.
v3.0.0a23 (2025-05-17)¶
Features¶
Add
extensionattribute toCommandDataandGroupclasses.
Miscellaneous¶
Switch to
confspecto providelightbulb.configfunctionality.
v3.0.0a22 (2025-05-08)¶
Bugfixes¶
Fix cooldown prefabs failing to register the appropriate
CommandCooldowndependency during invocation.
v3.0.0a21 (2025-05-05)¶
Features¶
Add
configurationsubmodule for parsing configuration files to msgspec Structs, including environment variable interpolation. (#557)
v3.0.0a20 (2025-05-03)¶
Bugfixes¶
Fix handling of REST interactions erroring when trying to make an initial response. (#556)
v3.0.0a19 (2025-04-27)¶
Miscellaneous¶
Bump Hikari version support to 2.3.1.
v3.0.0a18 (2025-04-14)¶
Breaking Changes¶
Migrate to using
linkdfor dependency injection instead of including the framework within Lightbulb.All DI classes have been removed and should now be imported from
linkdinstead. A few members are vendored through Lightbulb to prevent too many breaking code changes.
Vendored members: The following members are still accessible through the
lightbulb.dinamespaceDI_ENABLED,INJECTEDIf,Try,with_diCircularDependencyException,ContainerClosedException,DependencyInjectionException,DependencyNotSatisfiableExceptionDefaultContainer
The following members are implemented in Lightbulb due to them being too specialised to include directly in
linkdCommandContainer,AutocompleteContainer,ListenerContainer,TaskContainerContexts
(#543)
Bugfixes¶
Fixed registering groups failing when using
integration_typesorcontexts.
v3.0.0a17 (2025-04-06)¶
Breaking Changes¶
Removed
RestContextandRestAutocompleteContext. If you were not explicitly using these classes you will not be affected.
Features¶
Added support for sending polls within command and component interaction responses.
v3.0.0a16 (2025-03-21)¶
Features¶
Implement user installable application commands. (#536)
v3.0.0a15 (2024-11-22)¶
Features¶
Menu.attachnow returns an instance ofMenuHandleinstead of a generic awaitable - allowing the menu to be stopped without using aMenuContextor timeout.
Bugfixes¶
Changed logging level for exceptions happening in tasks from
WARNINGtoERROR. (#486)Fix sporadic attribute error when using
self.previous_row()within a component menu class.
v3.0.0a14 (2024-10-30)¶
Bugfixes¶
Fixed lightbulb.attachment option, which previously compiled to hikari.OptionType.MENTIONABLE (#472)
Miscellaneous¶
Add support for Python 3.13
v3.0.0a13 (2024-09-30)¶
Features¶
Implement injection for union dependencies using
Foo | Bar. If any of the requested dependencies are not registered, it will fall back to the next in the union.Implement injection for optional dependencies using
Foo | None. If all the requested dependencies are not registered, it will fall back toNone.Implement injection ‘meta annotations’ (
Try[]andIf[]) allowing modifying of the fall-back behaviour.
(#454)
Add
nameargument to thehook()decorator andnameattribute toExecutionHook.Prefab cooldown hooks now register an instance of
CommandCooldownas a dependency when they are executed.
Bugfixes¶
Fix
KeyErrorpreventing error handlers being loaded from extensions.Fix menu task exceptions being logged even if they were raised previously.
v3.0.0a12 (2024-08-30)¶
Breaking Changes¶
Menu.attachnow has thewaitparameter set toTrueby default, and thetimeoutparameter set to30sby default.
Bugfixes¶
Fix DI creating a new default container every time instead of reusing the existing one.
Fixed DI failing when trying to create dependencies with more complex dependency trees.
v3.0.0a11 (2024-08-29)¶
Bugfixes¶
Improved container hierarchical dependency resolution process.
Add significantly more
DEBUGlogging throughout the DI pipeline.DependencyInjectionManager.enter_contextnow needs to be called for every context you wish to enter; it will no longer enter the default context automatically.DependencyInjectionManager.enter_contextnow searches the existing container hierarchy to find an existing container for the passed context before trying to create a new one.DependencyInjectionManager.enter_contextnow returns a no-op container implementation instead ofNoneif DI is disabled globally.
(#449)
Fix default injection container being closed when explicitly entering the
DEFAULTDI context.
Features¶
v3.0.0a10 (2024-08-15)¶
Documentation¶
Update code examples for version 3 from version 2. (#436)
Features¶
Add a component and modal handler implementation. You can use these to more easily handle the creation and execution of message components, as well as submitted modal forms. (#438)
Deprecations and Removals¶
The
ephemeralargument forContext.defer()is now keyword-only.
v3.0.0a9 (2024-08-08)¶
Features¶
Add
prefabsubpackage containing some simple built-in hooks. More will continue to be added.utils.get_command_data()now works for groups and subgroups.
Miscellaneous¶
Switch to using types from
collections.abcinstead oftypingwherever possible.
v3.0.0a8 (2024-07-29)¶
Features¶
Add
hooksparameter toclient_from_app- allowing commands to inherit common hooks from the client. (#430)
Bugfixes¶
Fix autocomplete callbacks not being called if the option had localization enabled.
Fix command parameter validation failing sometimes when using long localization keys.
Fix subcommands with localization enabled not being invoked as expected.
Slightly improved performance of invoking nested subcommands.
Deprecations and Removals¶
Client.register_deferredhas been removed. You should now useClient.register(defer_guilds=True)instead.guildskwarg forClient.registerhas new semantics. Read the docstring for more information.
(#429)
Removed
HookFailedException.ExecutionPipelineFailedExceptionnow has two attributes containing the hooks that failed, and the exception that caused them to fail. You may need to update your error handler to reflect this.
v3.0.0a7 (2024-07-23)¶
Features¶
Dependency injection system has been completely rewritten to make it much more flexible and powerful. See the dependencies guide on the ‘By Examples’ page for details on the new implementation. (#428)
Deprecations and Removals¶
Removed
lightbulb.with_di, it has been replaced bylightbulb.di.with_diRemoved
lightbulb.INJECTED, it has been replaced bylightbulb.di.INJECTEDRemoved
Client.di.register_dependency- see the dependencies guide for details on the replacement
(#428)
v3.0.0a6 (2024-07-18)¶
Features¶
Add support for unloading and atomic reloading of extensions.
Implement repeating tasks - including uniform and cron-based triggers and support within extensions.
Bugfixes¶
Fix limit for message ID length for options name and description when using
GnuLocalizationProvider. (#427)Fix localization not being supported correctly for commands using deferred guild registration.
Deprecations and Removals¶
The
unload()method is now required to be implemented forLoaders.
v3.0.0a5 (2024-07-13)¶
Features¶
Refactor
ExecutionPipelineFailedExceptionto make writing error handlers more intuitive.
Bugfixes¶
Fix incorrect assertion error happening sometimes when a subcommand is invoked.
v3.0.0a4 (2024-07-02)¶
Features¶
Add
ephemeralconvenience argument toContext.respond.Add ability to localize choice names.
v3.0.0a3 (2024-06-28)¶
Features¶
Add
PRE_INVOKEexecution step to default execution step order.Add ability for
Loadable.listeners to listen for multiple event types.
Bugfixes¶
Fix not being able to access option values when their name and description are localized.
v3.0.0a2 (2024-06-20)¶
Features¶
A plugin for IntelliJ-based IDEs has been released to add autocompletion and type checking support for command parameters. It supports Lightbulb from this version and later. More features are planned.
Bugfixes¶
Use
interaction.registered_guild_idwhen resolving command interactions to prevent issues where guild commands would sometimes be invoked instead of global commands. (#426)
Improved Documentation¶
Documentation has been reworked to look nicer and function better. A Lightbulb-by-example section is in-progress for better tutorials and explanations for users of the library.
v3.0.0a1 (2024-06-09)¶
Features¶
Add
lightbulb.INJECTEDflag for dependency injection typing improvements (#424)