matrix-org / matrix-org/matrix-spec
"Archive" of completed rooms such that when a new message is received the room is taken out of the archive
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 330
- Forks
- 150
- Avg merge
- 2h 21m
- Merged PRs (30d)
- 3
Description
**Suggestion**
In many email clients there is an "Archive" feature, where users can either press a button or slide the email thread a certain way to signal that they are done with it and don't need to see it for the time being. Users can manually navigate to the archive to see these messages.
It would be nice to have this in Matrix. Of course, this would be best not as a client-side feature but stored in account data or somewhere various clients can all access and agree with each other on whwat is archived.
I was looking for example at https://github.com/mautrix/facebook/issues/161 and some people outright leave rooms when they don't want to see them or are done with them for the time being, and have explicitly said they are doing it to have an email-like workflow.
This feature seems to be already available in the proprietary extended Matrix known as Beeper, but I could not find any MSC describing this:

This client seems to use a proprietary `com.beeper.inbox.done` room account data.

This is how the UI looks like, with only unarchived messages showing up in the "Inbox".
Some issues with this could be that there may be multiple ideas on implementation or how the feature should work. For example, WhatsApp is configurable so you can either:
1) all archived chats are chats I don't really want to see unless I go to the archive
2) I am archiving chats because I don't want to see them for the time being (I have responded, or I don't need to respond, etc) but will need to see it again once new messages show up
I believe 1) should already be met by the "low priority" tag implemented by Element and mentioned in the spec:
```json
{
"type": "m.tag",
"content": {
"tags": {
"m.lowpriority": {}
}
}
}
```
so this issue would be about some sort of `m.archive` tag that disappears when a new message is received.
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
Start by reading the Matrix account-data and m.tag specification, then compare the referenced Beeper com.beeper.inbox.done behavior. Define whether archived rooms reappear on new messages and how clients represent the archive, resolving the alternative semantics before proposing an MSC.
Written by the indexing model from the issue text.
Assessment
- Domain
- backend-api-design, documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100