-
-
Notifications
You must be signed in to change notification settings - Fork 97
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
Ability to change history visibility retrospectively. (SPEC-210) #94
Comments
Jira watchers: @erikjohnston @NegativeMjark @ara4n |
Links exported from Jira: blocks SYT-31 |
Another solution may be to add a bulk redaction API, since redactions are designed to retroactively redact events that contained information we didn't want to leak to the room. |
The UX of existing users in the case were the room suddenly changes to "users can only see events if they were joined at the time" is something I feel may confuse users. Some of their devices may have the full scrollback, but new devices will no longer be able to see it. This is not that dissimilar to redactions. |
How these are implemented on the server side efficiently is something that needs to be looked at. Currently all auth visibility checks are done based solely on the state at that event, and not any future state. |
I was just thinking about this some more in the context of giving rooms power level presets (matrix-org/matrix-spec-proposals#63), and a UX discussion I had with Kelnar the other week. Here's a possible solution:
The UI/UX of this would be that when a user wants to share history, they set the state event to assert what they want to share. Ideally, users in the room would get a prompt of some kind from their client to ask them if they agree with sharing (with the option of refining the timeframe being shared) - thus submitting their own state event. However, for clients that don't support that, you'd rely on the actual human room conversation to encourage participants to give permission to share the history. You'd also rely on human intervention to get users who have left the room to rejoin it and submit their state event to change the visibility. Shortcomings:
Erik: would this be implementable serverside, especially in terms of federation complications? -- @ara4n |
P.S. if we solve this, then I /think/ it also solves Erik's main point of contention on SPEC-17 - that sharing 1:1 history by inviting randoms into the room is a misfeature. Hopefully this level of control over sharing history mitigates this concern, as no 1:1 history will ever randomly leak to new users... unless both users explicitly opted in to do so. -- @ara4n |
This has a certain similarity with what I was planning for sharing history with E2E ratchets. A client wanting to read history would have to ask the authors of the history to give them the public keys needed to authenticate the history. (They'd be able to decode the history by getting the keys of other people but until they received the keys directly they'd have no way to knowing if the history was forged) |
I think the same UI/UX could be shared by both in general: if a user opts in to sharing their history with new users, then it's very unlikely they wouldn't also want to prove that they actually said it. The semantics don't match precisely, though, as E2E key sharing happens separately for every new user - but in this proposal once everyone agrees to share history it occurs automatically for all new users. So in practice I suspect clients would want to autosubmit E2E keys if the user had agreed to share their history with new users. Powerusers can run custom clients which handle key submission seperately from history visibility, but this is unusual unless you have a use case where you really need deniability. -- @ara4n |
From an implementation perspective: How do we know if a user/server can see a given event in the room?
|
"Can permissions get changed or revoked?" "How do we do 'ranges' in a DAG?" "How do we determine if an event is in a range"? This feels very much like something we want to consider for dendron's DAG modelling, especially as for Vector "share history by default with a warning" semantics are probably fine. I'd still be interested in a guess at how much work it'd be tho :) -- @ara4n |
Looking for this feature too (there's still interest in 2023) |
Second that. Will there be any solution? |
I agree, many are surprised by matrix-public-archive and so far the most reliable method of "opting out" is restricting history visibility. Ref: matrix-org/matrix-viewer#47 Matrix Static instances are still around too. |
This issue is almost older than Discord and it had this capability from the start. It's unbelieveably frustrating being invited into a room to discuss a topic that I'm relevant to, being unable to see the history because the owner didn't realize that the default is only to show history since room join, and having to screenshot and send through 20 pages worth of history just so I can catch up. Not having this makes collaboration abhorrent to people who aren't 100% privy to how matrix works under the hood |
Background
The IRC bridge provisioned rooms without the
m.room.history_visibility
flag set. This was a mistake and needed to be rectified. However,m.room.history_visibility
doesn't allow retroactively changing the visibility of past events.The solutions available at the time were:
Problem
We don't currently have a way to retroactively say either:
(Imported from https://matrix.org/jira/browse/SPEC-210)
(Reported by @erikjohnston)
The text was updated successfully, but these errors were encountered: