Releases: hypergonial/hikari-arc
Releases · hypergonial/hikari-arc
v1.2.0 - Better sync
- Optimize command syncing by using bulk endpoints for global app commands as well, making it much faster.
- Improve command syncing error messages.
- Fix
@Client.listen
and@Plugin.listen
failing to parse event types with generics from function signatures.
v1.1.0
- Add
Client.create_task
to make it easier to create "fire and forget" tasks. - Add
Client.is_started
andClient.wait_until_started
for more convenient lifecycle management. - Add the ability to pass an already existing injector instance to
Client
via theinjector=
kwarg. If not passed, a new injector will be created by default, like before. - Set the client as a type dependency upon instantiation.
- Stabilize
Context.issued_response
. This property returns a boolean that isTrue
if the underlying interaction has already received an initial response. - Fix
hikari.User | hikari.Role | None
not being parsed as mentionable option. - Fix edgecase where options defaulted to
None
would be ignored in Python 3.10.
v1.0.0 - Stable
This marks the first stable release of arc
, meaning that from this point on, the project follows semantic versioning, and no breaking changes will happen (until an eventual 2.0).
- Add loops. Loops can be used to repeatedly call a given coroutine function with a specific interval or cron set.
- Add concurrency limiters. Concurrency limiters can be used to prevent users from invoking a command that already has a specific amount of instances running.
- Add
arc.StartedEvent
andarc.StoppingEvent
to gateway clients to enable managing lifecycle via events. - Fix command groups always being republished when command syncing.
In additon to these changes, the documentation got a major refresh, adding & extending guides where needed.
v0.6.0
- Add
Context.get_option()
to access options outside the command callback in a type-safe manner. - Add
Client.walk_commands()
andPlugin.walk_commands()
to iterate over all commands & subcommands of a given type in a type-safe manner. - Add
CallableCommandProto.display_name
,SlashCommand.make_mention()
,SlashSubCommand.make_mention()
. - Change
Context.respond_with_builder()
to attempt a followup message when the interaction has an initial response and a message builder was passed. - Remove the
acquire()
method fromLimiterProto
to make it easier to implement custom limiters. - Split
arc.utils.hooks.RateLimiter
intoarc.utils.RateLimiter
andarc.utils.hooks.LimiterHook
. This allowsarc.utils.RateLimiter
to be used independently of an arc context object.
v0.5.0 - Limiters
- Breaking: Re-order OptionParams object parameters.
description=
is now the first & only positional argument.name=
has been moved to the second parameter and is now keyword-only. - Add limiters.
- Add
autodefer
,default_permissions
,is_dm_enabled
andis_nsfw
to client & plugin types. If set, these settings will be applied to all commands added to the client/plugin. They can still however be overridden by individual commands. - Add
GatewayClientBase
andRESTClientBase
to aid in creating custom client types. Examples on how to do this have also been added to the repository. - Fix
InteractionResponse.retrieve_message()
failing due to incorrect assertion. - Fix subcommands & subgroups unable to have hooks or an error handler.
v0.4.0 - Localization
- Add localization support through locale providers. See the localization example for more.
- Add
@GatewayClient.listen
,GatewayClient.subscribe
,GatewayClient.unsubscribe
. - Add
@GatewayPlugin.listen
,GatewayPlugin.subscribe
,GatewayPlugin.unsubscribe
. - Make all first-order decorators work as second-order decorators as well.
v0.3.0 - Hooks
- Add hooks.
- Add lifecycle hooks to
Client
along with an error handler. - Declare
attrs
explicitly as a dependency.
v0.2.0
- Breaking: Rename
Context.edit_response()
toContext.edit_initial_response()
. This is to make the purpose of the function clearer. - Breaking: Remove
arc.Injected[T]
typehint alias. Usearc.inject()
instead. This is to avoid confusion between the two. - Breaking: Rename
GatewayPlugin
toGatewayPluginBase
andRESTPlugin
toRESTPluginBase
. - Add
GatewayContext
aliasingContext[GatewayClient]
- Add
RESTContext
aliasingContext[RESTClient]
- Add
GatewayPlugin
aliasingGatewayPluginBase[GatewayClient]
- Add
RESTPlugin
aliasingRESTPlugin[RESTClient]
- Add support for passing mappings to
choices=
when specifying option params. - Move
ABC
s used internally underarc.abc
. - Improve handling missing responses via REST by adding
NoResponseIssuedError
. - Fix
@plugin.inject_dependencies
failing when located outside of the main module.
v0.1.3
- Fix
Context.respond_with_builder
issuing the response twice in REST. - Do not export
abc
s to top-level.
v0.1.2
- Add
Context.respond_with_modal
- Add
BoolOption
andBoolParams
- Improve
Context.respond_with_builder
typing.