matrix-org / matrix-org/matrix-spec
virtual/meta rooms
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 330
- Forks
- 150
- Avg merge
- 2h 21m
- Merged PRs (30d)
- 3
Description
note: this is a rough sketch
**Suggestion**
A room which doesn't have it's own timeline, but can merge + filter + sort events from other rooms. Maybe it could be impl'd as a normal room with a `m.room.virtual` state event? Would be useful to let the server do basic processing on large amounts events/data, instead of downloading everything then filtering locally.
examples:
- could be used for "matrix-matrix bridging" where one room aggregates events from multiple others
- aggregate threads from all rooms into one room
- could be used like `/notifications`
maybe something like this:
```js
{
"merge": {
"rooms": ["!foo"], // get events from these rooms
"spaces": ["!bar"], // get events from all rooms in these spaces
"types": ["m.something"], // get events from all rooms with this type
},
"filter": {
// maybe something like push rules, or implement a custom language for filtering
},
// maybe with bump_event_types, or again use a custom expr lang
"sort_by": ["recency"],
}
```
pretty low priority and probably extremely niche but is an interesting idea to put out there
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue is a rough protocol sketch and names no files, tests, or implementation entry points. Begin by clarifying the proposed virtual-room model, merge and filtering semantics, and how completion would be validated in the Matrix specification.
Written by the indexing model from the issue text.
Assessment
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100