-
Notifications
You must be signed in to change notification settings - Fork 437
MSC4042: Disabled Presence State #4042
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
FSG-Cat
wants to merge
3
commits into
matrix-org:main
Choose a base branch
from
FSG-Cat:FSG-Cat-Disabled-Presence-State
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+52
−0
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| # MSC4042: Disabled Presence State | ||
|
|
||
| In current matrix we have no way to tell clients that we simply do not have presence data at all | ||
| for a given homeserver or user. This proposal addresses this fact by adding a `disabled` state. | ||
|
|
||
| By adding a `disabled` state to presence it allows us to kill two birds with one stone. Its used for | ||
| [MSC4043](https://github.com/matrix-org/matrix-spec-proposals/pull/4043) and for this proposal. In this proposal its simply used to indicatea lack of information about | ||
| a given user. This is going to 9 times out of 10 be because of that presence is disabled somewhere in the | ||
| chain and therefore you cant get data. Be that disabled by the other user or their server or your server. | ||
| If you are on matrix.org for example all presence will return this value if this proposal is adopted until | ||
| they reenable presence. Since they have presence disabled. | ||
|
|
||
|
|
||
| ## Proposal | ||
|
|
||
| This proposal proposes the `disabled` presence state. This makes it the 4th presence state together | ||
| with `online`, `offline`, `unavailable`. | ||
|
|
||
| Due to `unavailable` being taken for another use `disabled` became the best candidate due to its dual use. | ||
|
|
||
| `disabled` presence should be used if data is missing. Be that due to presence being disabled or because of other | ||
| mechanisms this state was selected. For example due to the user choosing to put this as their state via | ||
| MSC4043 or other mechanism like this. | ||
|
|
||
|
|
||
| ## Potential issues | ||
|
|
||
| The author can not see any significant potential issues arising from this change except that it can cause | ||
| clients that are not architected to withstand protocol changes to break. | ||
|
|
||
|
|
||
| ## Alternatives | ||
|
|
||
| The alternatives for this proposal are well not that many if any? Like a way to indicate we don't have any data | ||
| is useful. The only change I can think of is splitting intentional lack of data from we just don't have data yet. | ||
| But I fail to find that distinction useful. | ||
|
|
||
|
|
||
| ## Security considerations | ||
|
|
||
| Presence should not be security relevant as far as the author is aware. The only exception is the privacy | ||
| discussion. This specific proposal should not have any impact on privacy because of the fact that this proposal | ||
| does not it self change anything in practice. Presence being disabled is not a secret its a well known fact. | ||
|
|
||
| ## Unstable prefix | ||
|
|
||
| Unstable implementations will use the state of `support.feline.msc4042.v1.disabled` in place of `disabled`. | ||
|
|
||
| ## Dependencies | ||
|
|
||
| This MSC does not have any direct dependencies but is paired with MSC4043 due to | ||
| this MSC being a semi dependency for it. These proposals can be adopted independently. | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doesn't this weaken the fact that one could mask offline as disabled or vice versa? I think generally for the existing kinds of presence there is deliberate difference in user hands, but this is slightly different.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This MSC is written for a context where disabled is used for a whole homeserver or for users who dont care about sending that message.
Considering that this MSC is intended to be used together with the ability to force presence states into whatever value you like to use in a perfect world the privacy argument becomes much weaker due to that factor too.
Like presence is not perfect in 2026 and it was not in 2023. This MSC is essentially just one of the parts of a greater presence redesign that Cat actually came to write a proposal for even if its imperfect.
Edit: And i should say that the whole text about that its no secret is more refering to that in practice its trivial to discover that presence is not enabled for a given matrix homeserver or atleast it was in 2023.