| 23 May 2025 |
emily | I thought you just trusted your homeserver. | 08:55:01 |
uep | but it's very clever and resilient to transient netsplits | 08:55:22 |
uep | it just replaces them with long-term state splits | 08:55:35 |
Cat | its so routine that the moderation bots are architected around this assumption. | 08:55:43 |
Zhaofeng Li | ok, maybe a more productive question is: is it still possible to moderate that (old) room? | 08:55:58 |
Cat | its federated. | 08:56:17 |
uep | yeah, i'm apparently still in there as is mjolnir | 08:56:25 |
emily | in a federated system you wouldn't have two clients on the same homeserver disagreeing about the state of a message⦠| 08:56:41 |
Cat | The fact your client can slide out of sync with your server is due to the fact that the Sync protocol is made to be "friendly" | 08:56:45 |
emily | right. so sync makes it a distributed system | 08:56:55 |
uep | * yeah, i'm apparently still in there as is mjolnir (with privs, at least according to some perspective) | 08:57:04 |
Cat | As in the sync protocol works on a snapshot of the room | 08:57:04 |
Zhaofeng Li | * ok, maybe a more productive question is: is it still possible to moderate that (old) room? because none power level changes has "stuck" apparently | 08:57:05 |
emily | without any of the advantages | 08:57:09 |
Cat | but if the room is mutated in the right way said snapshot becomes invalid | 08:57:19 |
K900 | Not in a way that affects 100% of the clients in the room | 08:57:34 |
Cat | and the reason for this snapshot based aproach is because the shit that actually is going on inside of the homeserver is not something you want a junior client dev to worry about. | 08:58:03 |
Cat | i dont know if sliding sync has fixed the state resets are invisible over /sync problem. | 08:59:10 |
Cat | but thats the problem. If state changes in specific ways they wont show up in /sync but will show up in /messages and /state | 08:59:40 |
Cat | because both those endpoints ignore the snapshots that /sync work on. | 08:59:55 |
Cat | or its only /state that ignores that system | 09:00:05 |
@lotte:chir.rs | a reliable way to trigger that is to delete a bunch of rooms on the homeserver that the client is joined in | 09:00:22 |
Cat | But ye /state always returns the homeservers current perspective on the room at the time of the call. | 09:00:26 |
@lotte:chir.rs | only way to fix it is to clear cache & reload | 09:00:34 |
Cat | On what impl? | 09:00:58 |
Cat | on Synapse if you use the right API the client gets told you left the room. | 09:01:08 |
@lotte:chir.rs | synapse server, any client | 09:01:09 |
Cat | Unless its a Element X client. | 09:01:14 |
@lotte:chir.rs | ideally yes, but it still leads to desyncs | 09:01:33 |
Cat | Because the rust SDK is bugged. | 09:01:35 |