Compare commits

..

3 Commits

Author SHA1 Message Date
stoat-release[bot]
260036488d chore(main): release 0.13.1 (#745)
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-10 15:34:41 +01:00
Tom
1100eaf46f fix: amqprs startup bug (#744) 2026-05-10 15:22:26 +01:00
stoat-release[bot]
d52e84c5d3 chore(main): release 0.13.0 (#722)
Co-authored-by: stoat-release[bot] <245062572+stoat-release[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-09 17:26:38 +01:00
27 changed files with 102 additions and 63 deletions

View File

@@ -1,3 +1,3 @@
{
".": "0.12.1"
".": "0.13.1"
}

View File

@@ -1,5 +1,39 @@
# 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)

36
Cargo.lock generated
View File

@@ -7504,7 +7504,7 @@ dependencies = [
[[package]]
name = "revolt-autumn"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"axum",
"axum-macros",
@@ -7545,7 +7545,7 @@ dependencies = [
[[package]]
name = "revolt-bonfire"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"async-channel 2.5.0",
"async-std",
@@ -7576,7 +7576,7 @@ dependencies = [
[[package]]
name = "revolt-coalesced"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"indexmap 2.13.1",
"lru",
@@ -7585,7 +7585,7 @@ dependencies = [
[[package]]
name = "revolt-config"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"async-std",
"cached",
@@ -7602,7 +7602,7 @@ dependencies = [
[[package]]
name = "revolt-crond"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"futures-lite",
"iso8601-timestamp",
@@ -7622,7 +7622,7 @@ dependencies = [
[[package]]
name = "revolt-database"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"amqprs",
"async-lock 2.8.0",
@@ -7673,7 +7673,7 @@ dependencies = [
[[package]]
name = "revolt-delta"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"amqprs",
"async-channel 2.5.0",
@@ -7722,7 +7722,7 @@ dependencies = [
[[package]]
name = "revolt-files"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"aes-gcm",
"anyhow",
@@ -7750,7 +7750,7 @@ dependencies = [
[[package]]
name = "revolt-gifbox"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"axum",
"axum-extra",
@@ -7773,7 +7773,7 @@ dependencies = [
[[package]]
name = "revolt-january"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"async-recursion",
"axum",
@@ -7803,7 +7803,7 @@ dependencies = [
[[package]]
name = "revolt-models"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"indexmap 2.13.1",
"iso8601-timestamp",
@@ -7822,14 +7822,14 @@ dependencies = [
[[package]]
name = "revolt-parser"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"logos",
]
[[package]]
name = "revolt-permissions"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"async-std",
"async-trait",
@@ -7844,7 +7844,7 @@ dependencies = [
[[package]]
name = "revolt-presence"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"async-std",
"log",
@@ -7856,7 +7856,7 @@ dependencies = [
[[package]]
name = "revolt-pushd"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"amqprs",
"anyhow",
@@ -7887,7 +7887,7 @@ dependencies = [
[[package]]
name = "revolt-ratelimits"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"async-trait",
"authifier",
@@ -7904,7 +7904,7 @@ dependencies = [
[[package]]
name = "revolt-result"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"axum",
"log",
@@ -7920,7 +7920,7 @@ dependencies = [
[[package]]
name = "revolt-voice-ingress"
version = "0.12.1"
version = "0.13.1"
dependencies = [
"amqprs",
"async-std",

View File

@@ -192,13 +192,13 @@ futures-lite = "2.6.1"
vergen = "7.5.0"
# Local packages
revolt-coalesced = { version = "0.12.0", path = "crates/core/coalesced" }
revolt-config = { version = "0.12.0", path = "crates/core/config" }
revolt-database = { version = "0.12.0", path = "crates/core/database" }
revolt-files = { version = "0.12.0", path = "crates/core/files" }
revolt-models = { version = "0.12.0", path = "crates/core/models" }
revolt-parser = { version = "0.12.0", path = "crates/core/parser" }
revolt-permissions = { version = "0.12.0", path = "crates/core/permissions" }
revolt-presence = { version = "0.12.0", path = "crates/core/presence" }
revolt-ratelimits = { version = "0.12.0", path = "crates/core/ratelimits" }
revolt-result = { version = "0.12.0", path = "crates/core/result" }
revolt-coalesced = { version = "0.13.1", path = "crates/core/coalesced" }
revolt-config = { version = "0.13.1", path = "crates/core/config" }
revolt-database = { version = "0.13.1", path = "crates/core/database" }
revolt-files = { version = "0.13.1", path = "crates/core/files" }
revolt-models = { version = "0.13.1", path = "crates/core/models" }
revolt-parser = { version = "0.13.1", path = "crates/core/parser" }
revolt-permissions = { version = "0.13.1", path = "crates/core/permissions" }
revolt-presence = { version = "0.13.1", path = "crates/core/presence" }
revolt-ratelimits = { version = "0.13.1", path = "crates/core/ratelimits" }
revolt-result = { version = "0.13.1", path = "crates/core/result" }

View File

@@ -61,7 +61,7 @@ secret = "ZjCofRlfm6GGtjlifmNpCDkcQbEIIVC0"
# S3 protocol endpoint
endpoint = "http://127.0.0.1:14009"
# S3 region name
region = "us-east-1"
region = "minio"
# S3 protocol key ID
access_key_id = "minioautumn"
# S3 protocol access key

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-bonfire"
version = "0.12.1"
version = "0.13.1"
license = "AGPL-3.0-or-later"
edition = "2021"
publish = false

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-coalesced"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "MIT"
authors = ["Paul Makles <me@insrt.uk>", "Zomatree <me@zomatree.live>"]

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-config"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "MIT"
authors = ["Paul Makles <me@insrt.uk>"]

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-database"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"]

View File

@@ -29,7 +29,7 @@ impl AMQP {
}
}
pub async fn new_auto() -> AMQP {
pub async fn new_auto() -> revolt_result::Result<AMQP> {
let config = revolt_config::config().await;
let connection = Connection::open(&OpenConnectionArguments::new(
@@ -46,21 +46,26 @@ impl AMQP {
.await
.expect("Failed to open RabbitMQ channel");
channel
.exchange_declare(
ExchangeDeclareArguments::new(&config.pushd.exchange, "direct")
.durable(true)
.finish(),
)
.await
.expect("Failed to declare exchange");
AMQP::new(connection, channel)
let mut resp = AMQP::new(connection, channel);
resp.configure_channels().await?;
Ok(resp)
}
pub async fn configure_channels(&self) -> revolt_result::Result<()> {
pub async fn repoen_channel(&mut self) {
self.channel = self
.connection
.open_channel(None)
.await
.expect("Failed to open RabbitMQ channel");
}
pub async fn configure_channels(&mut self) -> revolt_result::Result<()> {
let config = revolt_config::config().await;
if !self.channel.is_open() {
self.repoen_channel().await;
}
self.channel
.exchange_declare(
ExchangeDeclareArguments::new(

View File

@@ -95,7 +95,7 @@ macro_rules! database_test {
db.drop_database().await;
#[allow(clippy::redundant_closure_call)]
std::boxed::Box::pin((|$db: $crate::Database| $test)(db.clone())).await;
(|$db: $crate::Database| $test)(db.clone()).await;
db.drop_database().await
};

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-files"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"]

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-models"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "MIT"
authors = ["Paul Makles <me@insrt.uk>"]

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-parser"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "MIT"
authors = ["Zomatree <me@zomatree.live>", "Paul Makles <me@insrt.uk>"]

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-permissions"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "MIT"
authors = ["Paul Makles <me@insrt.uk>"]

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-presence"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"]

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-ratelimits"
version = "0.12.1"
version = "0.13.1"
edition = "2024"
license = "MIT"
authors = ["Zomatree <me@zomatree.live>", "Paul Makles <me@insrt.uk>"]

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-result"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "MIT"
authors = ["Paul Makles <me@insrt.uk>"]

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-crond"
version = "0.12.1"
version = "0.13.1"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <me@insrt.uk>"]
edition = "2021"

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-pushd"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "AGPL-3.0-or-later"
publish = false

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-voice-ingress"
version = "0.12.1"
version = "0.13.1"
license = "AGPL-3.0-or-later"
edition = "2021"
publish = false

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-delta"
version = "0.12.1"
version = "0.13.1"
license = "AGPL-3.0-or-later"
authors = ["Paul Makles <paulmakles@gmail.com>"]
edition = "2018"

View File

@@ -119,7 +119,7 @@ pub async fn web() -> Rocket<Build> {
.await
.expect("Failed to declare exchange");
let amqp = AMQP::new(connection, channel);
let mut amqp = AMQP::new(connection, channel);
amqp.configure_channels()
.await
.expect("Failed to configure channels");

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-autumn"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "AGPL-3.0-or-later"
publish = false

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-gifbox"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "AGPL-3.0-or-later"
publish = false

View File

@@ -1,6 +1,6 @@
[package]
name = "revolt-january"
version = "0.12.1"
version = "0.13.1"
edition = "2021"
license = "AGPL-3.0-or-later"
publish = false

View File

@@ -1 +1 @@
0.12.1
0.13.1