# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.15.0-rc.1] - 2025-11-15
### Changed
- Make `tokio-util` a workspace dependency
- Make `tokio` a workspace dependency
- Configure tls correctly for 0.17
- Bump `serde` from 1.0.219 to 1.0.228
- Bump tokio from 1.44.2 to 1.47.1
- Bump tokio-util from 0.7.14 to 0.7.16
- Bump chrono from 0.4.40 to 0.4.42
- Bump `uuid` from 0.16.0 to 0.18.1
- Update to rust 1.90.0, fix lint warnings, `cargo fmt`
- `clippy::collapsible_if`
- `cargo fmt`
- Specify edition on workspace level
- Move twilight-* crates to workspace deps
### Fixed
- Unbox modal interaction data
- Fix large enum variant warning on `SchedulerTaskMessage::Enable`
- Box large error variants
- Hanging connections
### Removed
- Remove tls feature flags that got removed in twilight 0.17
### Commit Details
<details><summary>view details</summary>
* chore(deps): make `tokio-util` a workspace dependency ([`ebd429b`](https://github.com/z0w13/tulpje/commit/ebd429be53f9df0477154aaad445bbcdab9f28c9))
* chore(deps): make `tokio` a workspace dependency ([`1a2f46a`](https://github.com/z0w13/tulpje/commit/1a2f46aecb624069c466738891ba905e446a1637))
* chore: configure tls correctly for 0.17 ([`76d856f`](https://github.com/z0w13/tulpje/commit/76d856f79ba957985b8f7151c7109d643a00cf65))
* fix: remove tls feature flags that got removed in twilight 0.17 ([`1c1bf24`](https://github.com/z0w13/tulpje/commit/1c1bf24dc2048e2089e0a4ef87493a7a55872460))
* fix(framework): unbox modal interaction data ([`765d7a0`](https://github.com/z0w13/tulpje/commit/765d7a09c59d74ab13dcc6ea73f330fcea47b6b0))
* chore(deps): bump `serde` from 1.0.219 to 1.0.228 ([`5b1f399`](https://github.com/z0w13/tulpje/commit/5b1f39919a293e04bb34b12a6e843b044f7ebe2d))
* build(deps): bump tokio from 1.44.2 to 1.47.1 ([`44d256f`](https://github.com/z0w13/tulpje/commit/44d256fe7de24db17b823dd5f67176e278e7f154))
* build(deps): bump tokio-util from 0.7.14 to 0.7.16 ([`b084877`](https://github.com/z0w13/tulpje/commit/b084877909230c68857b633a8581ce425a45f67a))
* build(deps): bump chrono from 0.4.40 to 0.4.42 ([`df640ec`](https://github.com/z0w13/tulpje/commit/df640ec19e6b7ffcb735170d5e605d0143ac53a0))
* chore(deps): bump `uuid` from 0.16.0 to 0.18.1 ([`bb59882`](https://github.com/z0w13/tulpje/commit/bb5988295d34695f9356211a9f86439e44388877))
* chore(build): update to rust 1.90.0, fix lint warnings, `cargo fmt` ([`4a93c3b`](https://github.com/z0w13/tulpje/commit/4a93c3be063b99cbf6f4cd773e4b6fcf60f0b9bc))
* fix(lint): fix large enum variant warning on `SchedulerTaskMessage::Enable` ([`fca6406`](https://github.com/z0w13/tulpje/commit/fca64067c96f9aefaf4a503b5c8db18af1695bd0))
* fix(lint): box large error variants ([`b1f3e1d`](https://github.com/z0w13/tulpje/commit/b1f3e1dd089768f04bf4b0c052ccf38f1ed33556))
* chore(lint): `clippy::collapsible_if` ([`5c9d89e`](https://github.com/z0w13/tulpje/commit/5c9d89e3def56d8672cfa5399ced073f28884e99))
* chore: `cargo fmt` ([`e76d893`](https://github.com/z0w13/tulpje/commit/e76d893b5102eca310144ab258e79553cb5b2f41))
* refactor(build): specify edition on workspace level ([`f5b7a79`](https://github.com/z0w13/tulpje/commit/f5b7a79c4d5c5051e9dc3cc8b0def19fe22c63a6))
* chore(deps): move twilight-* crates to workspace deps ([`f23e379`](https://github.com/z0w13/tulpje/commit/f23e37987e31d52258c6f6a5a4b856b33e2756ef))
* fix(gateway): hanging connections ([`dc44437`](https://github.com/z0w13/tulpje/commit/dc44437096a4792f9782ccc219ce2f29d7c221c3))
</details>
## [0.14.2] - 2025-04-02
### Changed
- Bump tokio-util from 0.7.13 to 0.7.14 in [#19](https://github.com/z0w13/tulpje/pull/19)
- Bump chrono from 0.4.39 to 0.4.40 in [#17](https://github.com/z0w13/tulpje/pull/17)
- Bump uuid from 1.15.1 to 1.16.0 in [#16](https://github.com/z0w13/tulpje/pull/16)
### Commit Details
<details><summary>view details</summary>
* build(deps): bump tokio-util from 0.7.13 to 0.7.14 ([`bf5a40c`](https://github.com/z0w13/tulpje/commit/bf5a40cbcb61972300bde05ce833e12a8fcc0f6c))
* build(deps): bump chrono from 0.4.39 to 0.4.40 ([`65a2452`](https://github.com/z0w13/tulpje/commit/65a2452173fec94286489bde93caad9af5b02ae8))
* build(deps): bump uuid from 1.15.1 to 1.16.0 ([`7cc4bd4`](https://github.com/z0w13/tulpje/commit/7cc4bd428166d713690c8e6a6b6cc3cc77099d61))
</details>
## [0.14.1] - 2025-03-10
### Changed
- Bump uuid from 1.13.2 to 1.15.1 in [#12](https://github.com/z0w13/tulpje/pull/12)
- Bump serde from 1.0.216 to 1.0.219 in [#14](https://github.com/z0w13/tulpje/pull/14)
- Bump uuid from 1.11.0 to 1.13.2 in [#2](https://github.com/z0w13/tulpje/pull/2)
- Bump tokio from 1.42.0 to 1.43.0 in [#3](https://github.com/z0w13/tulpje/pull/3)
- Disable chrono wasmbind feature for our code
### Commit Details
<details><summary>view details</summary>
* build(deps): bump uuid from 1.13.2 to 1.15.1 ([`03bd122`](https://github.com/z0w13/tulpje/commit/03bd122951b391c4c56b233e7745f230925bf167))
* build(deps): bump serde from 1.0.216 to 1.0.219 ([`2d4e975`](https://github.com/z0w13/tulpje/commit/2d4e975abe6f93c8e06ef20d63928f0156d4389f))
* build(deps): bump uuid from 1.11.0 to 1.13.2 ([`723de3d`](https://github.com/z0w13/tulpje/commit/723de3d1e143c95a1d9c6013905a2a4d81070854))
* build(deps): bump tokio from 1.42.0 to 1.43.0 ([`d4e6ba6`](https://github.com/z0w13/tulpje/commit/d4e6ba620d929564a901dbdba7e73796e07b33b6))
* chore: disable chrono wasmbind feature for our code ([`429b4a4`](https://github.com/z0w13/tulpje/commit/429b4a4a6513837d5cd22ce5bcaad4ea04bab40a))
</details>
## [0.14.0] - 2025-01-16
### Breaking Changes
- Update twilight to 0.16.0
### Removed
- Remove unnecessary logging of unhandled events
### Commit Details
<details><summary>view details</summary>
* fix(framework): remove unnecessary logging of unhandled events ([`0ec373f`](https://github.com/z0w13/tulpje/commit/0ec373f8bb8cc2ff5a0ae7d00a78d8e30dec981a))
* chore!: update twilight to 0.16.0 ([`a974856`](https://github.com/z0w13/tulpje/commit/a9748566df2e386a97c6921c649cec57879fc456))
</details>
## [0.13.0] - 2025-01-12
### Breaking Changes
- Added support for subcommands and subcommand groups
### Removed
- Remove unused file module/module.rs
### Commit Details
<details><summary>view details</summary>
* feat(framework)!: added support for subcommands and subcommand groups ([`007709f`](https://github.com/z0w13/tulpje/commit/007709f5a27dfa44e961653d134ece2e4820f3e1))
* chore: remove unused file module/module.rs ([`a514ee2`](https://github.com/z0w13/tulpje/commit/a514ee27c975c5487c88f18c296fca59f7fbdff9))
</details>
## [0.11.1] - 2025-01-08
### Added
- Add CHANGELOG.md
### Changed
- Version tulpje-framework separately from the bot
### Commit Details
<details><summary>view details</summary>
* docs: add CHANGELOG.md ([`0d202e7`](https://github.com/z0w13/tulpje/commit/0d202e7782b924955891541eb824b1026104be14))
* chore: version tulpje-framework separately from the bot ([`916f1ff`](https://github.com/z0w13/tulpje/commit/916f1ff26bfd4687953f5435c61005f3cc5b444e))
</details>
## [0.11.0] - 2025-01-05
### Breaking Changes
- Move DisordEventMeta to tulpje-framework and rename it Metadata
- Remove unused InteractionHandler trait
### Added
- Add missing package metadata
### Changed
- Mark all crates as publishable
### Commit Details
<details><summary>view details</summary>
- mark all crates as publishable ([`3867bf6`](https://github.com/z0w13/tulpje/commit/3867bf60346a8391d98081d2370015ce6ec2d891))
- move DisordEventMeta to tulpje-framework and rename it Metadata ([`e1e93d7`](https://github.com/z0w13/tulpje/commit/e1e93d7903ff7a48066214ca002554ce91e4a9b3))
- remove unused InteractionHandler trait ([`641c297`](https://github.com/z0w13/tulpje/commit/641c297e65d00353d7b34147dda4e78d46114512))
- add missing package metadata ([`7a9e193`](https://github.com/z0w13/tulpje/commit/7a9e1939cf7fad86b6234612934413139d82e936))
</details>
## [0.9.0] - 2025-01-05
### Breaking Changes
- Rework sending messages into framework, and refactor Scheduler to follow similar conventions to Dispatch
### Commit Details
<details><summary>view details</summary>
- rework sending messages into framework, and refactor Scheduler to follow similar conventions to Dispatch ([`08bf914`](https://github.com/z0w13/tulpje/commit/08bf9145d5a412fffd3f489c4667f51f879ae4c1))
</details>
## [0.8.0] - 2025-01-05
### Breaking Changes
- Implement framework with main loop and shutdown functionality
### Commit Details
<details><summary>view details</summary>
- implement framework with main loop and shutdown functionality ([`891be50`](https://github.com/z0w13/tulpje/commit/891be50d55ef9869a0f10b48c1f50f0bc0181cd9))
</details>
## [0.7.0] - 2025-01-05
### Breaking Changes
- Mark builder methods as #[must_use]
### Changed
- Run `cargo fmt`
- Refactor the scheduler so we can actually enable/disable tasks, even when the scheduler isn't running yet
### Fixed
- Mark contexts/handlers as Sync + Send
- Enable clippy::option_if_let_else and fix warnings
- Enable clippy::manual_assert and fix warnings
- Enable clippy::partial_pub_fields and fix warnings
- Enable clippy::clone_on_ref_ptr and fix warnings
- Enable clippy::redundant_clone and fix warnings
- Enable clippy::needless_pass_by_value and fix warnings
- Enable clippy::semicolon_if_nothing_returned and fix warnings
### Removed
- Remove unused macros
### Commit Details
<details><summary>view details</summary>
- remove unused macros ([`5a9a1d5`](https://github.com/z0w13/tulpje/commit/5a9a1d58eed9ff9b1eb3c111aa1e02b38a9be1df))
- run `cargo fmt` ([`8e61d27`](https://github.com/z0w13/tulpje/commit/8e61d27a38b8031dc2d30c23c17b150dfd6d72ec))
- mark contexts/handlers as Sync + Send ([`d946b1d`](https://github.com/z0w13/tulpje/commit/d946b1d44f127d4550aad937be0c44a182aa9a12))
- enable clippy::option_if_let_else and fix warnings ([`bc27650`](https://github.com/z0w13/tulpje/commit/bc27650b9d073b67488039fc1ccd6322d42b4ee3))
- enable clippy::manual_assert and fix warnings ([`8b672eb`](https://github.com/z0w13/tulpje/commit/8b672eba70f3046e5d0458b02d1f1417ad88afca))
- enable clippy::partial_pub_fields and fix warnings ([`2155f3a`](https://github.com/z0w13/tulpje/commit/2155f3a4d6434c79205e6682f14bcd9c7a5e7932))
- enable clippy::clone_on_ref_ptr and fix warnings ([`b457f62`](https://github.com/z0w13/tulpje/commit/b457f624fad3e8030262d980b2879fc7ccc71fc3))
- mark builder methods as #[must_use] ([`3ec3a8a`](https://github.com/z0w13/tulpje/commit/3ec3a8a24344c5e1e780b54b132e68fc1e443383))
- enable clippy::redundant_clone and fix warnings ([`92e81e9`](https://github.com/z0w13/tulpje/commit/92e81e90362a5eb39625bef35487b06af8a20cc7))
- enable clippy::needless_pass_by_value and fix warnings ([`7e448c6`](https://github.com/z0w13/tulpje/commit/7e448c63bd57e2c3337b8dfb2618717f307ff368))
- enable clippy::semicolon_if_nothing_returned and fix warnings ([`a526faf`](https://github.com/z0w13/tulpje/commit/a526fafd635d3840b7eac26c8fe32bce923e7679))
- refactor the scheduler so we can actually enable/disable tasks, even when the scheduler isn't running yet ([`259b15a`](https://github.com/z0w13/tulpje/commit/259b15a5d0a2ef7a92fc9695525d800c01d92bd4))
</details>
## [0.6.0] - 2025-01-05
### Changed
- Don't hardcode guild module list
- Rework module system, registry, and task scheduler
- Cargo fmt
### Commit Details
<details><summary>view details</summary>
- don't hardcode guild module list ([`6b8000e`](https://github.com/z0w13/tulpje/commit/6b8000e973e6a6d333b4bf83cd7d814d79a48871))
- rework module system, registry, and task scheduler ([`ba4aae2`](https://github.com/z0w13/tulpje/commit/ba4aae287376f7040b6798c30d7be4d6c0a12ed2))
- cargo fmt ([`4a2d7d8`](https://github.com/z0w13/tulpje/commit/4a2d7d8b1f29ed55553fb7f01f73f0499600d7fd))
</details>
## [0.5.0] - 2025-01-05
### Breaking Changes
- Don't pass context in constructor
- Disallow adding tasks after starting scheduler
### Changed
- Per-guild commands
### Fixed
- InteractionRegistry::get should not be &mut
### Commit Details
<details><summary>view details</summary>
- InteractionRegistry::get should not be &mut ([`8eb9da9`](https://github.com/z0w13/tulpje/commit/8eb9da9b96af410807b9ce789aaf2a30726f4f74))
- per-guild commands ([`172d91c`](https://github.com/z0w13/tulpje/commit/172d91c8fe43e9ff7d8c46f02290712a28a7ea75))
- don't pass context in constructor ([`473c7d8`](https://github.com/z0w13/tulpje/commit/473c7d81c351f0cd2d7c16af747c30bb22d0b74c))
- disallow adding tasks after starting scheduler ([`f10212c`](https://github.com/z0w13/tulpje/commit/f10212ce1674b950033b934c08fe08834044702d))
</details>
## [0.4.0] - 2024-12-30
### Added
- Added `CommandContext::defer` helper method
- Added `CommandContext::update` method to update the current interaction's message (after defer)
- Added helper methods to get command options
### Changed
- PluralKit module
- Task scheduling using cron syntax
- Helper method to create CommandContext from base context
- Macros for making registering handlers slightly nicer
- Implemented basic command and event handling framework
### Fixed
- Thread safetey ugh headaches
### Commit Details
<details><summary>view details</summary>
- PluralKit module ([`eeb11e5`](https://github.com/z0w13/tulpje/commit/eeb11e5faf20f394a7a2e350c78706f152f85187))
- task scheduling using cron syntax ([`dbd42cb`](https://github.com/z0w13/tulpje/commit/dbd42cb547620d5c9a79b4618bcd87ac842629e6))
- thread safetey ugh headaches ([`84c6eab`](https://github.com/z0w13/tulpje/commit/84c6eab779e30ca2f84aec3360f6a74abda611aa))
- added `CommandContext::defer` helper method ([`c7ab85a`](https://github.com/z0w13/tulpje/commit/c7ab85a8ef48467a81977348ddd8bd9f2170216d))
- added `CommandContext::update` method to update the current interaction's message (after defer) ([`8c0541f`](https://github.com/z0w13/tulpje/commit/8c0541f8b76ee242aeb302b9b58210edcd91e39d))
- added helper methods to get command options ([`feec1f5`](https://github.com/z0w13/tulpje/commit/feec1f530d69957021fbc57bfd30630cecc5814d))
- helper method to create CommandContext from base context ([`02e18e4`](https://github.com/z0w13/tulpje/commit/02e18e412da53fab06507c118679bb5342427405))
- macros for making registering handlers slightly nicer ([`178e4b7`](https://github.com/z0w13/tulpje/commit/178e4b7b6c0f0a4df8469944038a2cf742a9e96a))
- implemented basic command and event handling framework ([`cde4d29`](https://github.com/z0w13/tulpje/commit/cde4d2940656156c0b1d1d5754b6de8e3139ed31))
</details>