Use new `EventMixin` extraction API from MPS in protections.
This allows protections to retrieve extensible events style mixins from any event.
We also add a protection to automatically redact any event with an erroneous mixin that is likely to cause issues for other clients.
MPS Describes all `m.room.message` `msgtype`s as mixins too.
This is now apparent because the protection that deletes events with
erroneous mixins uses a lazy leaky bucket which has a timeout that
needs cancelling. This will probably fix a few unexplained issues as a
side effect.
We're quite liberal with our mixin definitions, so we redact events
that don't conform because they could clearly be attempts to play with
clients or protections that don't play nicely.
This removes the need for synapse-http-antispam in order to reveal hashed literals for rooms. This is always available and by default runs a full scan every 30 minutes, or every time a policy changes. There is a configurable 5 minute cooldown between scans.
* Add the ability to customise the primary prefix for commands.
* Fix data structure error in config.yaml / harness.yaml
* Apply suggestions from code review
---------
Co-authored-by: Gnuxie <50846879+Gnuxie@users.noreply.github.com>
Extract out and depend upon @the-draupnir-project/mps-interface-adaptor
This is just a very simple PR to extract the contents of `src/command/interface-manager` and `src/capabilities/CommonRenderers.tsx` to a library that can be used by other bots that depend on the matrix-protection-suite and interface-manager. Since this is essentially glue code that hasn't made its way into abstractions yet that other bots would need to duplicate to get started.
And we're doing this because we're thinking of making a contributor bot for fun primarily, gathering feedback, and encouraging testing .
- Split out the room discovery notifications into their own matrix room.
- Ensure that information for room creator and the server (that the room create is signed with) are stored in the room info. And add ways to look those up in the future.
- Stop content violation notifications appearing in takedown/shutdown
- disable room discovery by default while we work out how to pipe it into a new room
- show status of takedown protections in the takedown command
- clarify a comment about the implementation of blocking invintations
We really need to figure out how to let protections put all their output into a room.
It is too noisy and i don't think people have time to review it. In a
moment i will try see if i can create a new room for the protection at
startup in a moment.
* Improve room shutdown flows.
- The shutdown command now has a `--notify` option for whether to send
the violation notification.
- We use shutdown V1 because V2 doesn't propagate leave events to clients
properly. Which sucks.
* Fix flakey shutdown test.
So this was never working it was just catching the original message
containing the command by speed of shutdown V2.