A couple of minor tweaks and clarifications

Clarification about what we're doing with the `power_levels`. Restructure
slightly to fit better with the standard MSC template.
pull/977/head
Richard van der Hoff 6 years ago
parent 4750b297b3
commit 97eaa189a0

@ -77,7 +77,8 @@ When this is called, the server:
``` ```
* Assuming Alice has the powers to do so, sets the power levels in the old * Assuming Alice has the powers to do so, sets the power levels in the old
room to stop people speaking. [TODO: what does this actually mean?] room to stop people speaking. In practice, this means setting
`events_default` and `invite` to the greater of `50` and `users_default+1`.
Bob's client understands the `m.room.tombstone` event, and: Bob's client understands the `m.room.tombstone` event, and:
@ -91,8 +92,8 @@ Bob's client understands the `m.room.tombstone` event, and:
[Note that if Bob is on a version of synapse which doesn't understand room [Note that if Bob is on a version of synapse which doesn't understand room
versions, following the permalink will take him to a room view which churns versions, following the permalink will take him to a room view which churns
for a while and eventually fails. Synapse 0.33.3 / 0.34.0 should at least for a while and eventually fails. Synapse 0.33.3 should at least give a
give a sensible error code.] sensible error code.]
* Optional extension: if the user is in both rooms, then the "N unread * Optional extension: if the user is in both rooms, then the "N unread
messages" banner when scrolled up in the old room could be made to track messages" banner when scrolled up in the old room could be made to track
@ -109,14 +110,14 @@ Bob's client also understands the `predecessor` field in the `m.room.create`, an
* Optional extensions might include things like extending room search to * Optional extensions might include things like extending room search to
work across two rooms. work across two rooms.
### Summary: client changes needed ### Client changes needed
* Ability for an op to view the current room version and upgrade it (by * Ability for an op to view the current room version and upgrade it (by
hitting `/upgrade`). hitting `/upgrade`).
* Also the ability for an op to see what versions the servers in the current * ~~Also the ability for an op to see what versions the servers in the
room supports (nb via a cap API) and so how many users will get locked out current room supports (nb via a cap API) and so how many users will get
[XXX: really? this sounds like a pita] locked out~~ (This is descoped for now.)
* Display `m.room.tombstone`s as a sticky message at the bottom of the old * Display `m.room.tombstone`s as a sticky message at the bottom of the old
room (perhaps replacing the message composer input) as “This room has been room (perhaps replacing the message composer input) as “This room has been
@ -125,6 +126,9 @@ Bob's client also understands the `predecessor` field in the `m.room.create`, an
* When the user clicks the link, the client attempts to join the new room if * When the user clicks the link, the client attempts to join the new room if
we are not already a member, and then switches to a view on the new room. we are not already a member, and then switches to a view on the new room.
The client should supply the name of the server which sent the tombstone
event as the `server_name` for the `/join` request.
* If the client sees a pair of rooms with a tombstone correctly joined to the * If the client sees a pair of rooms with a tombstone correctly joined to the
new room, it should hide the old one from the RoomList. new room, it should hide the old one from the RoomList.
@ -144,22 +148,24 @@ Future eye-candy:
* We should probably also show the membership list of the current room. (Perhaps?) * We should probably also show the membership list of the current room. (Perhaps?)
### Problems ## Future extensions
### Invite-only rooms
* If Bob is on a remote server, how does it know where to send the Invite-only rooms are not dealt with explicitly here; they are made tricky by
`/make_join` for the new room? the fact that users in the old room won't be able to join the new room without
an invite.
* We could send it to the server which sent the `tombstone` evnent? (This For now, we are assuming that the main reasons for carrying out a room-version
would require the client to set the `server_name` param on the `/join` upgrade (ie, security problems due to state resets and the like) do not apply
request, but that seems fine) as strongly to invite-only rooms, and we have descoped them for now.
* What about invite-only rooms? Users in the old room won't be able to join In future, we will most likely deal with them as follows:
the new room without an invite.
* For local users, we need to first create an invite for each user in the * For local users, we need to first create an invite for each user in the
room. This is easy, if a bit high-overhead. room. This is easy, if a bit high-overhead.
* For remote users: * For remote users:
* Alice's server could send invites; however this is likely to give an * Alice's server could send invites; however this is likely to give an
unsatisfactory UX due to servers being offline, maybe not supporting the unsatisfactory UX due to servers being offline, maybe not supporting the
@ -174,6 +180,17 @@ Future eye-candy:
the purposes of allowing users into invite-only rooms, but doesn't need the purposes of allowing users into invite-only rooms, but doesn't need
to be sent to remote servers. to be sent to remote servers.
### Parting users from the old room
It's not obvious if users should stay members of the old room indefinitely
(until they manually leave). Perhaps they should automatically leave after a
respectful period? What if the user leaves the *new* room?
For now, we'll assume that they stay members until they manually leave. We can
see how that feels in practice.
## Potential issues
* What about clients that don't understand tombstones? * What about clients that don't understand tombstones?
* I think they'll just show you two separate rooms (both with the same * I think they'll just show you two separate rooms (both with the same
@ -183,9 +200,6 @@ Future eye-candy:
* It's a shame that scrollback in the new room will show a load of joins * It's a shame that scrollback in the new room will show a load of joins
before you get to the link to the old room. before you get to the link to the old room.
* Do users stay members of the old room forever? Do they leave after a
respectful period? Do they leave if the user leaves the new room?
## Dismissed solutions ## Dismissed solutions
### Variations on this proposal ### Variations on this proposal

Loading…
Cancel
Save