feat: force leaving a room remotely and allow overriding auto-generated vias #956

Merged
Jade merged 4 commits from nex/feat/force-leave-room into main 2025-09-01 11:36:03 +00:00
Owner

This PR does the following things:

  • Adds !admin users force-leave-remote-room <user> <room> to force a federated leave, which may be useful for leaving incredibly broken rooms like Matrix HQ and Synapse Admins
  • No longer automatically injects routing servers when trying to join with a room ID and manually specify vias. e.g. !example:example.com?via=example.com will ONLY use example.com, whereas !example:example.com will continue to use the helpful behaviour of just guessing a few servers

This isn't something most people will need but after mentioning it in the main room, a couple people expressed an interest in getting this into main. 👍 this PR if you would like to see it in main.

This PR does the following things: - Adds `!admin users force-leave-remote-room <user> <room>` to force a federated leave, which may be useful for leaving incredibly broken rooms like Matrix HQ and Synapse Admins - No longer automatically injects routing servers when trying to join with a room ID **and** manually specify vias. e.g. `!example:example.com?via=example.com` will ONLY use example.com, whereas `!example:example.com` will continue to use the helpful behaviour of just guessing a few servers This isn't something most people will need but after mentioning it in the main room, a couple people expressed an interest in getting this into main. 👍 this PR if you would like to see it in main.
feat: Force leave remote rooms admin command
Some checks failed
Release Docker Image / merge (push) Blocked by required conditions
Release Docker Image / define-variables (push) Successful in 2s
Checks / Prefligit / prefligit (push) Successful in 24s
Checks / Rust / Format (push) Successful in 45s
Checks / Rust / Clippy (push) Failing after 3m9s
Checks / Rust / Cargo Test (push) Failing after 5m38s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Has been cancelled
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Has been cancelled
f6ef95c365
fix: Make remote leave helper a public fn
All checks were successful
Release Docker Image / define-variables (push) Successful in 4s
Checks / Prefligit / prefligit (push) Successful in 18s
Checks / Rust / Format (push) Successful in 45s
Checks / Rust / Clippy (push) Successful in 4m4s
Checks / Rust / Cargo Test (push) Successful in 4m44s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 15m9s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 17m58s
Release Docker Image / merge (push) Successful in 20s
6a85b6d5b0
feat: Only inject vias when manual ones aren't provided during join
Some checks failed
Release Docker Image / define-variables (push) Successful in 2s
Checks / Prefligit / prefligit (push) Successful in 29s
Checks / Rust / Format (push) Successful in 47s
Checks / Rust / Clippy (push) Successful in 4m22s
Checks / Rust / Cargo Test (push) Successful in 5m2s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 13m36s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 15m2s
Release Docker Image / merge (push) Successful in 19s
Checks / Prefligit / prefligit (pull_request) Failing after 5s
Documentation / Build and Deploy Documentation (pull_request) Successful in 37s
57eae642be
@ -927,0 +947,4 @@
.boxed()
.await?;
self.write_str(&format!("{user_id} has been joined to {room_id}.",))
Author
Owner

starcode

starcode
nex marked this conversation as resolved
nex force-pushed nex/feat/force-leave-room from 57eae642be to 9d55de99b5 2025-08-29 16:28:42 +00:00 Compare
style(PR596): Fix misleading wording & typo
Some checks failed
Release Docker Image / define-variables (push) Successful in 18s
Documentation / Build and Deploy Documentation (pull_request) Successful in 49s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 14m37s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 14m11s
Release Docker Image / merge (push) Successful in 8s
Checks / Prek / Pre-commit & Formatting (push) Failing after 1m8s
Checks / Prek / Clippy and Cargo Tests (push) Successful in 2m41s
77c572c49a
Author
Owner

CI is failing on files not modified by this PR, I'll probably just ignore that or rebase when it's fixed on main

CI is failing on files not modified by this PR, I'll probably just ignore that or rebase when it's fixed on main
nex force-pushed nex/feat/force-leave-room from 77c572c49a to e903390b98 2025-08-30 15:18:19 +00:00 Compare
requested review from tcpipuk 2025-08-30 18:52:22 +00:00
tcpipuk approved these changes 2025-08-30 18:52:32 +00:00
Owner

Just had the thought that you should run the cargo xtask admin md to update the admin docs

Just had the thought that you should run the `cargo xtask admin md` to update the admin docs
Owner

Hopefully #960 fixes the annoying CI linting issue, sorry!

Hopefully #960 fixes the annoying CI linting issue, sorry!
chore(PR956): Update admin docs
All checks were successful
Documentation / Build and Deploy Documentation (pull_request) Successful in 57s
Checks / Prek / Pre-commit & Formatting (push) Successful in 1m20s
Checks / Prek / Clippy and Cargo Tests (push) Successful in 3m55s
15d3e2c476
Jade approved these changes 2025-08-31 14:47:10 +00:00
nex force-pushed nex/feat/force-leave-room from 15d3e2c476 to 79de7a86ba 2025-09-01 11:15:37 +00:00 Compare
nex force-pushed nex/feat/force-leave-room from 79de7a86ba to 9e62e66ae4 2025-09-01 11:28:00 +00:00 Compare
Jade scheduled this pull request to auto merge when all checks succeed 2025-09-01 11:28:35 +00:00
Jade merged commit 9e62e66ae4 into main 2025-09-01 11:36:03 +00:00
nex added this to the v0.5.0-rc.8 milestone 2025-09-01 13:08:42 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: continuwuation/continuwuity#956
No description provided.