Relevant actions include:
- People joining/leaving a room
- An m.room.name or m.room.canonical_alias event is sent
- etc..
Prior to this, we just set the room name field for initial=true
rooms only. This meant that if a room name was updated whilst it was
in the visible range (or currently subscribed to), we wouldn't set
this field resulting in stale names for clients. This was particularly
prominent when you created a room, as the initial member event would
cause the room to appear in the list as "Empty room" which then would
never be updated even if there was a subsequent `m.room.name` event
sent.
Fixed with regression tests.
This was caused by the GlobalCache not having a metadata entry for
the new room, which in some cases prevented a stub from being made.
With regression test.
Previously we would only notify the parent (in the case of m.space.child events)
which would cause lists tracking a space to not be aware of the change in
membership.
Because the spaces filter is user controlled, malicious users can
insert room IDs they are not joined to or should not be aware of.
We need to check that this does not leak any data or metadata.
- Tests exercise multiple pre-configured spaces as well as adding/removing children on the fly.
- E2E run-tests.sh script now uses `$@` to pass through args to `go test` for running e2e tests with timeouts/single tests/etc
- Spaces are deleted when there is no valid `via` key, not when there is(!)