diff --git a/Cargo.lock b/Cargo.lock index ec6e848d..160be0c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -771,7 +771,7 @@ dependencies = [ [[package]] name = "conduwuit" -version = "0.5.0-rc.6" +version = "0.5.0-rc.5" dependencies = [ "clap", "conduwuit_admin", @@ -800,7 +800,7 @@ dependencies = [ [[package]] name = "conduwuit_admin" -version = "0.5.0-rc.6" +version = "0.5.0-rc.5" dependencies = [ "clap", "conduwuit_api", @@ -821,7 +821,7 @@ dependencies = [ [[package]] name = "conduwuit_api" -version = "0.5.0-rc.6" +version = "0.5.0-rc.5" dependencies = [ "async-trait", "axum", @@ -853,14 +853,14 @@ dependencies = [ [[package]] name = "conduwuit_build_metadata" -version = "0.5.0-rc.6" +version = "0.5.0-rc.5" dependencies = [ "built 0.8.0", ] [[package]] name = "conduwuit_core" -version = "0.5.0-rc.6" +version = "0.5.0-rc.5" dependencies = [ "argon2", "arrayvec", @@ -919,7 +919,7 @@ dependencies = [ [[package]] name = "conduwuit_database" -version = "0.5.0-rc.6" +version = "0.5.0-rc.5" dependencies = [ "async-channel", "conduwuit_core", @@ -937,7 +937,7 @@ dependencies = [ [[package]] name = "conduwuit_macros" -version = "0.5.0-rc.6" +version = "0.5.0-rc.5" dependencies = [ "itertools 0.14.0", "proc-macro2", @@ -947,7 +947,7 @@ dependencies = [ [[package]] name = "conduwuit_router" -version = "0.5.0-rc.6" +version = "0.5.0-rc.5" dependencies = [ "axum", "axum-client-ip", @@ -981,7 +981,7 @@ dependencies = [ [[package]] name = "conduwuit_service" -version = "0.5.0-rc.6" +version = "0.5.0-rc.5" dependencies = [ "async-trait", "base64 0.22.1", @@ -1018,7 +1018,7 @@ dependencies = [ [[package]] name = "conduwuit_web" -version = "0.5.0-rc.6" +version = "0.5.0-rc.5" dependencies = [ "askama", "axum", diff --git a/Cargo.toml b/Cargo.toml index af904447..1abff107 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ license = "Apache-2.0" readme = "README.md" repository = "https://forgejo.ellis.link/continuwuation/continuwuity" rust-version = "1.86.0" -version = "0.5.0-rc.6" +version = "0.5.0-rc.5" [workspace.metadata.crane] name = "conduwuit" diff --git a/conduwuit-example.toml b/conduwuit-example.toml index 287bf65f..1a8be2aa 100644 --- a/conduwuit-example.toml +++ b/conduwuit-example.toml @@ -990,7 +990,7 @@ # 3 to 5 = Statistics with possible performance impact. # 6 = All statistics. # -#rocksdb_stats_level = 3 +#rocksdb_stats_level = 1 # This is a password that can be configured that will let you login to the # server bot account (currently `@conduit`) for emergency troubleshooting @@ -1590,9 +1590,11 @@ #stream_amplification = 1024 # Number of sender task workers; determines sender parallelism. Default is -# number of CPU cores. Override by setting a different value. +# '0' which means the value is determined internally, likely matching the +# number of tokio worker-threads or number of cores, etc. Override by +# setting a non-zero value. # -#sender_workers = 4 +#sender_workers = 0 # Enables listener sockets; can be set to false to disable listening. This # option is intended for developer/diagnostic purposes only. diff --git a/docs/static/announcements.json b/docs/static/announcements.json index 7dd2fb72..9b97d091 100644 --- a/docs/static/announcements.json +++ b/docs/static/announcements.json @@ -4,10 +4,6 @@ { "id": 1, "message": "Welcome to Continuwuity! Important announcements about the project will appear here." - }, - { - "id": 2, - "message": "🎉 Continuwuity v0.5.0-rc.6 is now available! This release includes improved knock-restricted room handling, automatic support contact configuration, and a new HTML landing page. Check [the release notes for full details](https://forgejo.ellis.link/continuwuation/continuwuity/releases/tag/v0.5.0-rc.6) and upgrade instructions." } ] -} +} \ No newline at end of file diff --git a/docs/static/announcements.schema.json b/docs/static/announcements.schema.json index cacd10c9..95b1d153 100644 --- a/docs/static/announcements.schema.json +++ b/docs/static/announcements.schema.json @@ -3,7 +3,7 @@ "$id": "https://continwuity.org/schema/announcements.schema.json", "type": "object", "properties": { - "announcements": { + "updates": { "type": "array", "items": { "type": "object", @@ -16,10 +16,6 @@ }, "date": { "type": "string" - }, - "mention_room": { - "type": "boolean", - "description": "Whether to mention the room (@room) when posting this announcement" } }, "required": [ @@ -30,6 +26,6 @@ } }, "required": [ - "announcements" + "updates" ] } \ No newline at end of file diff --git a/src/core/matrix/state_res/event_auth.rs b/src/core/matrix/state_res/event_auth.rs index 67283b6a..0726b00a 100644 --- a/src/core/matrix/state_res/event_auth.rs +++ b/src/core/matrix/state_res/event_auth.rs @@ -242,16 +242,12 @@ where } */ - // let (room_create_event, power_levels_event, sender_member_event) = join3( - // fetch_state(&StateEventType::RoomCreate, ""), - // fetch_state(&StateEventType::RoomPowerLevels, ""), - // fetch_state(&StateEventType::RoomMember, sender.as_str()), - // ) - // .await; - - let room_create_event = fetch_state(&StateEventType::RoomCreate, "").await; - let power_levels_event = fetch_state(&StateEventType::RoomPowerLevels, "").await; - let sender_member_event = fetch_state(&StateEventType::RoomMember, sender.as_str()).await; + let (room_create_event, power_levels_event, sender_member_event) = join3( + fetch_state(&StateEventType::RoomCreate, ""), + fetch_state(&StateEventType::RoomPowerLevels, ""), + fetch_state(&StateEventType::RoomMember, sender.as_str()), + ) + .await; let room_create_event = match room_create_event { | None => { diff --git a/src/database/engine/db_opts.rs b/src/database/engine/db_opts.rs index 1299443d..4a717b4d 100644 --- a/src/database/engine/db_opts.rs +++ b/src/database/engine/db_opts.rs @@ -1,4 +1,6 @@ -use conduwuit::{Config, Result}; +use std::{cmp, convert::TryFrom}; + +use conduwuit::{Config, Result, utils}; use rocksdb::{Cache, DBRecoveryMode, Env, LogLevel, Options, statistics::StatsLevel}; use conduwuit::config::{parallelism_scaled_i32, parallelism_scaled_u32}; use super::{cf_opts::cache_size_f64, logger::handle as handle_log}; @@ -124,3 +126,15 @@ fn set_logging_defaults(opts: &mut Options, config: &Config) { opts.set_callback_logger(rocksdb_log_level, &handle_log); } } + +fn num_threads>(config: &Config) -> Result { + const MIN_PARALLELISM: usize = 4; + + let requested = if config.rocksdb_parallelism_threads != 0 { + config.rocksdb_parallelism_threads + } else { + utils::available_parallelism() + }; + + utils::math::try_into::(cmp::max(MIN_PARALLELISM, requested)) +} diff --git a/src/service/announcements/mod.rs b/src/service/announcements/mod.rs index 2a70344d..4df8971b 100644 --- a/src/service/announcements/mod.rs +++ b/src/service/announcements/mod.rs @@ -20,7 +20,7 @@ use std::{sync::Arc, time::Duration}; use async_trait::async_trait; use conduwuit::{Result, Server, debug, info, warn}; use database::{Deserialized, Map}; -use ruma::events::{Mentions, room::message::RoomMessageEventContent}; +use ruma::events::room::message::RoomMessageEventContent; use serde::Deserialize; use tokio::{ sync::Notify, @@ -53,8 +53,6 @@ struct CheckForAnnouncementsResponseEntry { id: u64, date: Option, message: String, - #[serde(default, skip_serializing_if = "bool::not")] - mention_room: bool, } const CHECK_FOR_ANNOUNCEMENTS_URL: &str = @@ -141,20 +139,19 @@ impl Service { } else { info!("[announcements] {:#}", announcement.message); } - let mut message = RoomMessageEventContent::text_markdown(format!( - "### New announcement{}\n\n{}", - announcement - .date - .as_ref() - .map_or_else(String::new, |date| format!(" - `{date}`")), - announcement.message - )); - if announcement.mention_room { - message = message.add_mentions(Mentions::with_room_mention()); - } - - self.services.admin.send_message(message).await.ok(); + self.services + .admin + .send_message(RoomMessageEventContent::text_markdown(format!( + "### New announcement{}\n\n{}", + announcement + .date + .as_ref() + .map_or_else(String::new, |date| format!(" - `{date}`")), + announcement.message + ))) + .await + .ok(); } #[inline]