Grapevine is a Matrix homeserver, forked from Conduit 0.7.0
Find a file
Benjamin Lee 4c9728cbad
implement per-event timeline filtering on /sync
This is the filter.room.timeline.{senders,types,contains_url} fields, and
their associated not_* pairs.

I decided not to change the `prev_batch` calculation for sliding-sync to
use the new `oldest_event_count` value, because I'm not confident in the
correct behavior. The current sliding-sync behavior is gives `prev_batch
= oldest_event_count` except when there are no new events. In this
case, `oldest_event_count` is `None`, but the current sliding-sync
implementation uses `prev_batch = since`. This is definitely wrong,
because both `since` and `prev_batch` are exclusive bounds. If the
correct thing to do is to return the lower exclusive bound of the range
of events that may have been included in the timeline, then we would
want `since - 1`. The other option would be to return `prev_batch =
None`, like we have in sync v3. I don't know which of these is correct,
so I'm just gonna keep the current (definitely incorrect) behavior to
avoid making things worse.
2024-06-05 00:07:06 -07:00
bin use all-features devshell for clippy/all in CI 2024-05-30 21:19:08 -07:00
nix add all-features devshell 2024-05-30 21:19:08 -07:00
src implement per-event timeline filtering on /sync 2024-06-05 00:07:06 -07:00
.envrc optionally use nom to build devshell dependencies 2024-05-30 21:19:09 -07:00
.gitignore allow loading env vars from .env if it exists 2024-05-14 20:08:37 -07:00
.gitlab-ci.yml pin nixos/nix to 2.18.2 2024-05-26 19:47:00 -07:00
Cargo.lock switch to RustCrypto's argon2 crate 2024-06-04 19:35:21 -07:00
Cargo.toml switch to RustCrypto's argon2 crate 2024-06-04 19:35:21 -07:00
clippy.toml enable doc_markdown lint 2024-05-14 16:34:10 -07:00
default.nix feat: support non-flake users 2024-02-01 19:19:56 -08:00
engage.toml test all-features in CI 2024-05-30 21:19:09 -07:00
flake.lock update flake.lock 2024-05-24 20:08:54 -07:00
flake.nix add all-features devshell 2024-05-30 21:19:08 -07:00
LICENSE.md convert license to markdown 2024-04-30 21:54:56 -07:00
rust-toolchain.toml update the rust toolchain, ignore new lints 2024-05-24 20:09:41 -07:00
rustfmt.toml enable error_on_line_overflow and fix errors 2024-05-16 19:11:40 -07:00