Compare commits

..
2 Commits
Author SHA1 Message Date
IAmTomahawkx 173a3effda fix: minio wants the default region 2026-05-08 16:47:20 -07:00
Infiland 34f05f4b2f fix: avoid stack overflow in database tests
Signed-off-by: Infiland <ljubica.citydesign@gmail.com>
2026-05-08 16:00:27 -07:00
27 changed files with 62 additions and 101 deletions

No files matched your search

+1 -1
View File
@@ -1,3 +1,3 @@
{ {
".": "0.13.1" ".": "0.12.1"
} }
-34
View File
@@ -1,39 +1,5 @@
# Changelog # Changelog
## [0.13.1](https://github.com/stoatchat/stoatchat/compare/v0.13.0...v0.13.1) (2026-05-10)
### Bug Fixes
* amqprs startup bug ([#744](https://github.com/stoatchat/stoatchat/issues/744)) ([1100eaf](https://github.com/stoatchat/stoatchat/commit/1100eaf46f849f2509ae01ac497556ca33bde778))
## [0.13.0](https://github.com/stoatchat/stoatchat/compare/v0.12.1...v0.13.0) (2026-05-08)
### Features
* add embed support for YouTube Shorts ([#734](https://github.com/stoatchat/stoatchat/issues/734)) ([d46c7f7](https://github.com/stoatchat/stoatchat/commit/d46c7f7f3c04524c0639c3e0a122626f8e0b3bf7))
* add emoji rename endpoint ([#714](https://github.com/stoatchat/stoatchat/issues/714)) ([23ad135](https://github.com/stoatchat/stoatchat/commit/23ad1359834bb7d07a460b8678d6a6ebffc73eb0))
* add legal links to root payload ([#733](https://github.com/stoatchat/stoatchat/issues/733)) ([21d8201](https://github.com/stoatchat/stoatchat/commit/21d82018cf84ab0fdd10613d254b9562aea8eea3))
* add role icon support ([#724](https://github.com/stoatchat/stoatchat/issues/724)) ([841985d](https://github.com/stoatchat/stoatchat/commit/841985d3b994df1c6eefab2fc7ecbd77ab22c493))
* Add webhook endpoints for editing and deleting messages ([#682](https://github.com/stoatchat/stoatchat/issues/682)) ([6f3441c](https://github.com/stoatchat/stoatchat/commit/6f3441cf4acac2a8e6e1bf07a279a153b80f7956))
* automatically sanitise usernames on create/update ([#689](https://github.com/stoatchat/stoatchat/issues/689)) ([e937697](https://github.com/stoatchat/stoatchat/commit/e93769786c7669485a659ee471630740d3cea702))
* blacklist private ip ranges and add january domain blocklist ([#731](https://github.com/stoatchat/stoatchat/issues/731)) ([6b41db9](https://github.com/stoatchat/stoatchat/commit/6b41db984bb491b2e58324309cc70d8c14e0b814))
* Rewrite acks ([#741](https://github.com/stoatchat/stoatchat/issues/741)) ([ab5bd47](https://github.com/stoatchat/stoatchat/commit/ab5bd47a39ee889de0b5ae6e7b560620853daead))
### Bug Fixes
* add new_user_hours to configuration limits ([#729](https://github.com/stoatchat/stoatchat/issues/729)) ([279f5d5](https://github.com/stoatchat/stoatchat/commit/279f5d5fd7af2df55902c706859ec07f569cdb1e))
* add reconnection policy to Redis subscriber to prevent ghost state ([#708](https://github.com/stoatchat/stoatchat/issues/708)) ([057f2bb](https://github.com/stoatchat/stoatchat/commit/057f2bb8b359f8b942741a30ff54eeb8fbe3e0b1))
* docker compose file had personal url in it ([#742](https://github.com/stoatchat/stoatchat/issues/742)) ([0719985](https://github.com/stoatchat/stoatchat/commit/0719985ac5636590f91e6f9ec4b68f3eded70c13))
* don't strip ICC from exif ([#735](https://github.com/stoatchat/stoatchat/issues/735)) ([d76a711](https://github.com/stoatchat/stoatchat/commit/d76a71141f3e508f6308ba52fa28eaeb56fb3438))
* dont send notification in fcm ([#721](https://github.com/stoatchat/stoatchat/issues/721)) ([89171e9](https://github.com/stoatchat/stoatchat/commit/89171e9bd0f15711157e78c6eec0fe7b480de93a))
* encode filenames in redirects ([#737](https://github.com/stoatchat/stoatchat/issues/737)) ([9fd7128](https://github.com/stoatchat/stoatchat/commit/9fd7128f800badbd184baf943d4f799e601201e4))
* january ip redirects & domain resolver ([#738](https://github.com/stoatchat/stoatchat/issues/738)) ([356491e](https://github.com/stoatchat/stoatchat/commit/356491e934b274f9e895df883dd63ef0b3123510))
* update message length validation to remove upper limit ([#723](https://github.com/stoatchat/stoatchat/issues/723)) ([ed4fd5e](https://github.com/stoatchat/stoatchat/commit/ed4fd5ebfe6d0ea534a0898da4afdc1f4e2cd6c5))
* use correct response for NoEffect errors ([#732](https://github.com/stoatchat/stoatchat/issues/732)) ([5378cd2](https://github.com/stoatchat/stoatchat/commit/5378cd22b4c7d85f44c31a6af0dda00941b80d5c))
## [0.12.1](https://github.com/stoatchat/stoatchat/compare/v0.12.0...v0.12.1) (2026-04-10) ## [0.12.1](https://github.com/stoatchat/stoatchat/compare/v0.12.0...v0.12.1) (2026-04-10)
Generated
+18 -18
View File
@@ -7504,7 +7504,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-autumn" name = "revolt-autumn"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"axum", "axum",
"axum-macros", "axum-macros",
@@ -7545,7 +7545,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-bonfire" name = "revolt-bonfire"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"async-channel 2.5.0", "async-channel 2.5.0",
"async-std", "async-std",
@@ -7576,7 +7576,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-coalesced" name = "revolt-coalesced"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"indexmap 2.13.1", "indexmap 2.13.1",
"lru", "lru",
@@ -7585,7 +7585,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-config" name = "revolt-config"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"async-std", "async-std",
"cached", "cached",
@@ -7602,7 +7602,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-crond" name = "revolt-crond"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"futures-lite", "futures-lite",
"iso8601-timestamp", "iso8601-timestamp",
@@ -7622,7 +7622,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-database" name = "revolt-database"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"amqprs", "amqprs",
"async-lock 2.8.0", "async-lock 2.8.0",
@@ -7673,7 +7673,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-delta" name = "revolt-delta"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"amqprs", "amqprs",
"async-channel 2.5.0", "async-channel 2.5.0",
@@ -7722,7 +7722,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-files" name = "revolt-files"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"aes-gcm", "aes-gcm",
"anyhow", "anyhow",
@@ -7750,7 +7750,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-gifbox" name = "revolt-gifbox"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"axum", "axum",
"axum-extra", "axum-extra",
@@ -7773,7 +7773,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-january" name = "revolt-january"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"async-recursion", "async-recursion",
"axum", "axum",
@@ -7803,7 +7803,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-models" name = "revolt-models"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"indexmap 2.13.1", "indexmap 2.13.1",
"iso8601-timestamp", "iso8601-timestamp",
@@ -7822,14 +7822,14 @@ dependencies = [
[[package]] [[package]]
name = "revolt-parser" name = "revolt-parser"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"logos", "logos",
] ]
[[package]] [[package]]
name = "revolt-permissions" name = "revolt-permissions"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"async-std", "async-std",
"async-trait", "async-trait",
@@ -7844,7 +7844,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-presence" name = "revolt-presence"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"async-std", "async-std",
"log", "log",
@@ -7856,7 +7856,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-pushd" name = "revolt-pushd"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"amqprs", "amqprs",
"anyhow", "anyhow",
@@ -7887,7 +7887,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-ratelimits" name = "revolt-ratelimits"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"authifier", "authifier",
@@ -7904,7 +7904,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-result" name = "revolt-result"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"axum", "axum",
"log", "log",
@@ -7920,7 +7920,7 @@ dependencies = [
[[package]] [[package]]
name = "revolt-voice-ingress" name = "revolt-voice-ingress"
version = "0.13.1" version = "0.12.1"
dependencies = [ dependencies = [
"amqprs", "amqprs",
"async-std", "async-std",
+10 -10
View File
@@ -192,13 +192,13 @@ futures-lite = "2.6.1"
vergen = "7.5.0" vergen = "7.5.0"
# Local packages # Local packages
revolt-coalesced = { version = "0.13.1", path = "crates/core/coalesced" } revolt-coalesced = { version = "0.12.0", path = "crates/core/coalesced" }
revolt-config = { version = "0.13.1", path = "crates/core/config" } revolt-config = { version = "0.12.0", path = "crates/core/config" }
revolt-database = { version = "0.13.1", path = "crates/core/database" } revolt-database = { version = "0.12.0", path = "crates/core/database" }
revolt-files = { version = "0.13.1", path = "crates/core/files" } revolt-files = { version = "0.12.0", path = "crates/core/files" }
revolt-models = { version = "0.13.1", path = "crates/core/models" } revolt-models = { version = "0.12.0", path = "crates/core/models" }
revolt-parser = { version = "0.13.1", path = "crates/core/parser" } revolt-parser = { version = "0.12.0", path = "crates/core/parser" }
revolt-permissions = { version = "0.13.1", path = "crates/core/permissions" } revolt-permissions = { version = "0.12.0", path = "crates/core/permissions" }
revolt-presence = { version = "0.13.1", path = "crates/core/presence" } revolt-presence = { version = "0.12.0", path = "crates/core/presence" }
revolt-ratelimits = { version = "0.13.1", path = "crates/core/ratelimits" } revolt-ratelimits = { version = "0.12.0", path = "crates/core/ratelimits" }
revolt-result = { version = "0.13.1", path = "crates/core/result" } revolt-result = { version = "0.12.0", path = "crates/core/result" }
+1 -1
View File
@@ -61,7 +61,7 @@ secret = "ZjCofRlfm6GGtjlifmNpCDkcQbEIIVC0"
# S3 protocol endpoint # S3 protocol endpoint
endpoint = "http://127.0.0.1:14009" endpoint = "http://127.0.0.1:14009"
# S3 region name # S3 region name
region = "minio" region = "us-east-1"
# S3 protocol key ID # S3 protocol key ID
access_key_id = "minioautumn" access_key_id = "minioautumn"
# S3 protocol access key # S3 protocol access key
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-bonfire" name = "revolt-bonfire"
version = "0.13.1" version = "0.12.1"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
edition = "2021" edition = "2021"
publish = false publish = false
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-coalesced" name = "revolt-coalesced"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
authors = ["Paul Makles <me@insrt.uk>", "Zomatree <me@zomatree.live>"] authors = ["Paul Makles <me@insrt.uk>", "Zomatree <me@zomatree.live>"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-config" name = "revolt-config"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
authors = ["Paul Makles <me@insrt.uk>"] authors = ["Paul Makles <me@insrt.uk>"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-database" name = "revolt-database"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"] authors = ["Paul Makles <me@insrt.uk>"]
+11 -16
View File
@@ -29,7 +29,7 @@ impl AMQP {
} }
} }
pub async fn new_auto() -> revolt_result::Result<AMQP> { pub async fn new_auto() -> AMQP {
let config = revolt_config::config().await; let config = revolt_config::config().await;
let connection = Connection::open(&OpenConnectionArguments::new( let connection = Connection::open(&OpenConnectionArguments::new(
@@ -46,26 +46,21 @@ impl AMQP {
.await .await
.expect("Failed to open RabbitMQ channel"); .expect("Failed to open RabbitMQ channel");
let mut resp = AMQP::new(connection, channel); channel
resp.configure_channels().await?; .exchange_declare(
Ok(resp) ExchangeDeclareArguments::new(&config.pushd.exchange, "direct")
} .durable(true)
.finish(),
pub async fn repoen_channel(&mut self) { )
self.channel = self
.connection
.open_channel(None)
.await .await
.expect("Failed to open RabbitMQ channel"); .expect("Failed to declare exchange");
AMQP::new(connection, channel)
} }
pub async fn configure_channels(&mut self) -> revolt_result::Result<()> { pub async fn configure_channels(&self) -> revolt_result::Result<()> {
let config = revolt_config::config().await; let config = revolt_config::config().await;
if !self.channel.is_open() {
self.repoen_channel().await;
}
self.channel self.channel
.exchange_declare( .exchange_declare(
ExchangeDeclareArguments::new( ExchangeDeclareArguments::new(
+1 -1
View File
@@ -95,7 +95,7 @@ macro_rules! database_test {
db.drop_database().await; db.drop_database().await;
#[allow(clippy::redundant_closure_call)] #[allow(clippy::redundant_closure_call)]
(|$db: $crate::Database| $test)(db.clone()).await; std::boxed::Box::pin((|$db: $crate::Database| $test)(db.clone())).await;
db.drop_database().await db.drop_database().await
}; };
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-files" name = "revolt-files"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"] authors = ["Paul Makles <me@insrt.uk>"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-models" name = "revolt-models"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
authors = ["Paul Makles <me@insrt.uk>"] authors = ["Paul Makles <me@insrt.uk>"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-parser" name = "revolt-parser"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
authors = ["Zomatree <me@zomatree.live>", "Paul Makles <me@insrt.uk>"] authors = ["Zomatree <me@zomatree.live>", "Paul Makles <me@insrt.uk>"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-permissions" name = "revolt-permissions"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
authors = ["Paul Makles <me@insrt.uk>"] authors = ["Paul Makles <me@insrt.uk>"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-presence" name = "revolt-presence"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"] authors = ["Paul Makles <me@insrt.uk>"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-ratelimits" name = "revolt-ratelimits"
version = "0.13.1" version = "0.12.1"
edition = "2024" edition = "2024"
license = "MIT" license = "MIT"
authors = ["Zomatree <me@zomatree.live>", "Paul Makles <me@insrt.uk>"] authors = ["Zomatree <me@zomatree.live>", "Paul Makles <me@insrt.uk>"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-result" name = "revolt-result"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
authors = ["Paul Makles <me@insrt.uk>"] authors = ["Paul Makles <me@insrt.uk>"]
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-crond" name = "revolt-crond"
version = "0.13.1" version = "0.12.1"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"] authors = ["Paul Makles <me@insrt.uk>"]
edition = "2021" edition = "2021"
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-pushd" name = "revolt-pushd"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
publish = false publish = false
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-voice-ingress" name = "revolt-voice-ingress"
version = "0.13.1" version = "0.12.1"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
edition = "2021" edition = "2021"
publish = false publish = false
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-delta" name = "revolt-delta"
version = "0.13.1" version = "0.12.1"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
authors = ["Paul Makles <paulmakles@gmail.com>"] authors = ["Paul Makles <paulmakles@gmail.com>"]
edition = "2018" edition = "2018"
+1 -1
View File
@@ -119,7 +119,7 @@ pub async fn web() -> Rocket<Build> {
.await .await
.expect("Failed to declare exchange"); .expect("Failed to declare exchange");
let mut amqp = AMQP::new(connection, channel); let amqp = AMQP::new(connection, channel);
amqp.configure_channels() amqp.configure_channels()
.await .await
.expect("Failed to configure channels"); .expect("Failed to configure channels");
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-autumn" name = "revolt-autumn"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
publish = false publish = false
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-gifbox" name = "revolt-gifbox"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
publish = false publish = false
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revolt-january" name = "revolt-january"
version = "0.13.1" version = "0.12.1"
edition = "2021" edition = "2021"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
publish = false publish = false
+1 -1
View File
@@ -1 +1 @@
0.13.1 0.12.1