feat: Improve inbound federated membership handling #1952

Merged
ginger merged 16 commits from nex/fix/incoming-federated-invites into main 2026-07-12 02:11:51 +00:00

16 commits

Author SHA1 Message Date
b4a09a0ad0
style: Make send_join's docstring more useful
All checks were successful
Checks / Changelog / Check changelog is added (pull_request_target) Successful in 6s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m4s
Checks / Prek / Check changed files (pull_request) Successful in 4s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m15s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 9m5s
2026-07-11 21:13:15 +01:00
8394aa456d
fix: Don't unhelpfully panic when encountering an unrecognised room version 2026-07-11 21:13:15 +01:00
456bd80d0a
style: Fix EOL 2026-07-11 21:13:15 +01:00
e693a78d2f
chore: Add newsfrag 2026-07-11 21:13:15 +01:00
db9e74015e
fix: Opportunistically re-use room format rules when parsing incoming PDUs 2026-07-11 21:13:15 +01:00
9a9a3162bb
fix: Ensure PDU returned by create_hash_and_sign_event is itself signed 2026-07-11 21:13:15 +01:00
699a92976f
fix: Convert room summary to federation format when sending invites 2026-07-11 21:13:15 +01:00
ba8781befe
fix: Check correct field name when determining event type 2026-07-11 21:13:15 +01:00
f5e4e82b4f
fix: Remove redundant banned room server checks
These don't make sense here anyway
2026-07-11 21:13:15 +01:00
e0882ab8ea
feat: Give send_join the invite treatment 2026-07-11 21:13:15 +01:00
f8ff522103
feat: Give send_leave the invite treatment 2026-07-11 21:13:15 +01:00
529064f533
feat: Give send_knock the invite treatment 2026-07-11 21:13:15 +01:00
30a4643b5f
fix: Only run ACL checks when we know we have live state
Prevents a potential bug where we might inadvertently reject valid invites because we have a stale state cache that blocks the sender or even ourselves

Also fixes the banned remote server room check by using the create event instead of room ID
2026-07-11 21:13:15 +01:00
b79fb1813e
feat: Persist create events received during the invite process 2026-07-11 21:13:14 +01:00
b654dd563c
style: Move invite validation into own functions 2026-07-11 21:13:14 +01:00
d8022a5bd9
feat: Enforce new federation invite checks
These were introduced in spec v1.16 however we didn't implement them until now for compatibility.
2026-07-11 21:13:14 +01:00