From 037894a64155e9e2c62449e191858bf68f64b20d Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Wed, 13 Jan 2021 14:01:17 +0000 Subject: [PATCH] replace 'default' with 'auto_join' --- proposals/1772-groups-as-rooms.md | 34 ++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/proposals/1772-groups-as-rooms.md b/proposals/1772-groups-as-rooms.md index fbdaa485..44f79e43 100644 --- a/proposals/1772-groups-as-rooms.md +++ b/proposals/1772-groups-as-rooms.md @@ -96,7 +96,7 @@ relationship can be expressed in one of two ways: "via": ["example.com"], "present": true, "order": "abcd", - "default": true + "auto_join": true } } @@ -117,7 +117,9 @@ relationship can be expressed in one of two ways: `\x20` (space) to `\x7F` (`~`), or consist of more than 50 characters, are forbidden and should be ignored if received.) - If `default` is set to `true`, that indicates a "default child": see [below](#default-children). + If `auto_join` is set to `true`, that indicates that the child should be + automatically joined by members of the space see + [below](#auto-joined-children). 2. Separately, rooms can claim parents via the `m.room.parent` state event: @@ -168,17 +170,29 @@ Cycles in the parent->child and child->parent relationships are *not* permitted, but clients (and servers) should be aware that they may be encountered, and ignore the relationship rather than recursing infinitely. -### Default children +### Auto-joined children -The `default` flag on a child listing allows a space admin to list the -"default" sub-spaces and rooms in that space. This means that when a user joins -the parent space, they will automatically be joined to those default -children. +The `auto_join` flag on a child listing allows a space admin to list the +sub-spaces and rooms in that space which should be automatically joined by +members of that space. -XXX implement this on the client or server? +Joining should be performed by the client. This can optionally be sped up by +using [MSC2946](https://github.com/matrix-org/matrix-doc/pull/2946) to get a +summary of the spacetree to be joined, and then using a batch join API (when +available) to join whichever subset of it makes most sense for the client's +UX. -Clients could display the default children in the room list whenever the space -appears in the list. +Obviously auto-joining can be a DoS vector, and we consider it to be antisocial +for a space to try to join its users to more than ~100 children. + +Clients could display the auto-joined children in the room list whenever the +space appears in the list - thus helping users discover other rooms in a space +even if they're not joined to that space. + +XXX: I still think it's more common that a space admin will want users to know +that a child exists (by showing it in the room list), rather than force them to +actually join it. So this would be an `advertise` flag or something on the child. +Matthew to discuss with Nad... ### Long description