My understanding is that currently all of the coroutine functions decorated with `@pytest.fixture` are being skipped because pytest-asyncio is running in strict mode (https://pytest-asyncio.readthedocs.io/en/latest/concepts.html#test-discovery-modes). To fix this, you can either change all those declarations to `@pytest_asyncio.fixture` or add this config file, so I went with the least invasive change to a project I'm unfamiliar with.
Before this change, Pantalaimon users would always appear online because
that is the default state when the /sync endpoint's set_presence
parameter is not set. By explicitly setting the parameter to "offline",
only the user-facing client (which executes its own /sync request)
affects the presence state.
If the original path had quoted slash characters (`%2F`), the code
decoded them and then left them unquoted, causing the forwarded request
to fail.
An example is trying to ban a user with a slash in their name using
Mjolnir, which PUTs a state event with `rule:<username>` in the URL.
Use the undecoded path to avoid this.
Pantalaimon depends on the room state to be present to decide correctly
if a message should be encrypted or now. The room state is fetched from
the server every time we restart, this means that failure to fetch room
states from the server would hinder us from doing the correct decision.
This patch prevents a downgrade to sending unencrypted messages if we're
unable to sync at least once with the server.
This patch adds a config option that enables a mode wher a proxy will
only keep the latest room key from a sender in a certain room. This is
useful for bots that use pantalaimon since they are mostly only
interested in the latest messages and don't care about room history.