| MSC1227 | Lazy-loading room members | v1.1 | — | lazy_members.rs | |
| MSC2174 | Move the redacts key into content | v1.8 | — | redaction.rs | |
| MSC2246 | Asynchronous media uploads | v1.7 | — | spec_wave2.rs | POST /media/v1/create mints the mxc:// URI; PUT /media/v3/upload/{server}/{id} fills it once; a reader in between gets 504 M_NOT_YET_UPLOADED. Reservations lapse after 24 hours, twenty live per user. |
| MSC2409 | Appservices receive to-device messages and ephemeral events | v1.13 | — | appservice_transactions.rs | |
| MSC2659 | Appservice ping | v1.7 | — | appservice_ping.rs | |
| MSC2666 | Mutual rooms | — | — | spec_wave2.rs | GET /_matrix/client/v1/mutual_rooms, one page: the rooms both users are joined to. |
| MSC2675 | Serverside aggregations of relations | v1.3 | — | aggregation.rs | |
| MSC2965 | OAuth 2.0 server metadata discovery | v1.15 | — | delegated_auth.rs | Served at /v1/auth_metadata and the unstable path js-sdk asks first. |
| MSC2967 | OAuth 2.0 API scopes | v1.15 | — | delegated_auth.rs | The v1.15 scope spelling and the draft one older clients still send. |
| MSC3083 | Restricted room joins | v1.2 | — | restricted_join.rs | |
| MSC3202 | Appservice E2EE: device masquerading and OTK counts | — | — | appservice_transactions.rs, appservice_key_proxy.rs | |
| MSC3266 | Room summary API | v1.15 | im.nheko.summary | room_summary.rs | |
| MSC3757 | Restricting state keys to a user's own ID | — | — | rtc_membership.rs | What lets m.rtc.member state keys carry the sender. Closed unmerged upstream; MatrixRTC clients send the underscore-prefixed keys regardless, so the rule stays served. |
| MSC3771 | Read receipts for threads | v1.4 | — | thread_badges.rs | A receipt names its thread (main or a root) and is echoed with it; a threaded receipt moves only its thread's count. |
| MSC3773 | Notifications for threads | v1.4 | — | thread_badges.rs | With unread_thread_notifications on the timeline filter, /sync counts the main timeline apart and each thread under unread_thread_notifications. Counts are what the reader's push rules notify for. |
| MSC3787 | knock_restricted join rule | v1.3 | — | federation_knock.rs | |
| MSC3814 | Dehydrated devices | — | org.matrix.msc3814 | dehydrated_devices.rs | |
| MSC3820 | Room version 11 | v1.8 | — | redaction.rs | With its parts: MSC2174 (redacts in content), MSC2175, MSC2176, MSC3821, MSC3989. |
| MSC3856 | Threads list API | v1.4 | — | threads.rs | |
| MSC3861 | Delegated authentication (OIDC) | v1.15 | — | delegated_auth.rs, delegated-auth.md | Both ways: the built-in provider, or a real MAS through the /_synapse/mas/* surface. |
| MSC3881 | Remotely toggling push notifications for another client | — | org.matrix.msc3881 | pushers.rs | Pushers carry enabled and device_id under the unstable and the plain names; a disabled pusher stays registered and receives nothing. |
| MSC3882 | Login tokens for a second client | v1.7 | — | spec_wave2.rs | POST /login/get_token behind the password UIA stage, m.login.token on /login, the m.get_login_token capability and the get_login_token flow flag. Tokens are single use and live two minutes. |
| MSC3916 | Authenticated media | v1.11 | — | federation_media.rs, media.rs, spec_wave2.rs | |
| MSC3983 | Appservices claim one-time keys | — | — | appservice_key_proxy.rs | |
| MSC3984 | Appservices answer key queries | — | — | appservice_key_proxy.rs | |
| MSC4075 | MatrixRTC ringing (m.rtc.notification) | — | — | push_delivery.rs, rate-limits.md | Rings are pushed and budgeted per sender (rings_per_minute). |
| MSC4140 | Delayed events | — | org.matrix.msc4140 | delayed_events.rs, rtc_membership.rs | All four endpoints; the dead-man's switch MatrixRTC members rely on. |
| MSC4143 | MatrixRTC transport discovery (rtc/transports) | — | org.matrix.msc4143 | rtc_transports.rs, matrix-rtc.md | Served under the unstable and the v1 path; answers an empty list when no backend is configured. Absorbed MSC4158. |
| MSC4186 | Simplified sliding sync | merged, unreleased | — | sliding_sync.rs | Lists, room subscriptions, required_state, timeline, extensions, invites in the list, heroes and bump_stamp. What Element X syncs with. |
| MSC4190 | Appservice device management | merged, unreleased | — | appservice_devices.rs, appservice_transactions.rs | |
| MSC4195 | LiveKit as a MatrixRTC transport | — | — | livekit_jwt.rs, matrix-rtc.md | The built-in JWT service, or the OpenID round trip for an external one. |
| MSC4196 | Push rule defaults | — | — | push_rules.rs | |
| MSC4222 | use_state_after in sync | v1.16 | org.matrix.msc4222.use_state_after | state_after.rs, sync.rs | |
| MSC4242 | State DAGs (Hydra phase 2) | — | — | state_dag_rooms.rs, surface.rs, mesh-federation.md | State-DAG rooms are built, ingested and served; proven across the seam to a Neutrino mesh node by the loopback rig. |
| MSC4289 | Explicitly privilege room creators (room v12) | v1.16 | — | restricted_join.rs, rtc_membership.rs | |
| MSC4291 | Room IDs as hashes of the create event (room v12) | v1.16 | — | rooms.rs, federation_remote_join.rs | |
| MSC4309 | Finalised delayed events in sync | — | — | delayed_events.rs | The org.matrix.msc4140.finalised_delayed_events sync section. |
| MSC4310 | MatrixRTC ring decline | — | — | push_delivery.rs | |
| MSC4354 | Sticky events | — | org.matrix.msc4354 | sticky_events.rs, rtc_membership.rs | sticky_duration_ms on a send, the key on the event, the sync section, federation push, and delayed+sticky. What MatrixRTC 2.0 makes m.rtc.member. |