Skip to content
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

MSC4216: Set Maximum Allowed Tags #4216

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

lamoboos223
Copy link

Enable matrix servers the choice to set a threshold on tags applied by a user, so the user can apply certain tags only to predefined maximum amount.

@lamoboos223 lamoboos223 marked this pull request as draft October 17, 2024 07:07
@lamoboos223 lamoboos223 changed the title added proposal 4216/Set Maximum Allowed Tags 4216/Set Maximum Allowed Tags Oct 17, 2024
@lamoboos223 lamoboos223 changed the title 4216/Set Maximum Allowed Tags MSC4216:Set Maximum Allowed Tags Oct 17, 2024
@lamoboos223 lamoboos223 marked this pull request as ready for review October 17, 2024 07:14
@clokep clokep changed the title MSC4216:Set Maximum Allowed Tags MSC4216: Set Maximum Allowed Tags Oct 17, 2024
@lamoboos223 lamoboos223 requested a review from clokep October 21, 2024 04:28
Copy link
Member

@turt2live turt2live left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign off on your changes for eventual FCP consideration.

It also appears as though your proposal has gone missing? I've put it back to draft while it's a work in progress.

@turt2live turt2live marked this pull request as draft October 21, 2024 15:51
@turt2live turt2live added proposal A matrix spec change proposal kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. client-server Client-Server API labels Oct 21, 2024
@lamoboos223 lamoboos223 requested a review from turt2live October 22, 2024 10:41
@lamoboos223
Copy link
Author

BTW, I have the implementation of the MSC4216 in synapse I just need your approval to get started with it.

Copy link
Member

@turt2live turt2live left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for submitting this MSC! For the proposal to continue towards acceptance, it will need a more formal description of the error codes and such a client can expect, and an implementation (likely both server and client) to demonstrate the solution works in practice.

Error code MSCs are typically fairly easy to write, with implementation on the client side often just being evidence that clients don't explode when they hit the error. If they do explode, it's more a sign that the client needs improved error handling generally, rather than a blocker for the proposal's acceptance - we just require evidence that shipping the feature in the spec isn't likely to cause widespread complaint.

If you need some help writing the MSC language, feel free to visit #matrix-spec:matrix.org on Matrix for advice from the community.

@@ -0,0 +1,19 @@
## MSC4216 Proposal

Admins should have the ability to limit tag usage, like restricting `u.pin` to **3** rooms, while tags like `u.archive` will remain unrestricted if **not defined**.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Personally, I see this purely as an implementation detail, not something that should be specified, but there might be value in clarifying semantics for things like M_LIMIT_EXCEEDED in certain contexts (eg. tags in this context).

Additionally: How would migrations canonically work? What happens if the admin lowers the limit to below the count users already have? Are tags even relevant in 2024, with most clients not even supporting custom tags to begin with? Is there a good benefit to limiting usage count of tags across clients?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi
So the reason i was proposing this feature is because to priority tags and lazy loading their content/messages instead of loading the whole rooms with no tags defined. So for example if a user pinned 3 rooms, these 3 rooms will be asked for their content before the rest of the rooms and this will happen on the client side.

You make a good point about what would happen if the admin lower the amount of a tag, I actually didn’t think it through (I apologies).

@TheArcaneBrony

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not quite sure I see how this would be beneficial? You could just ask the server for all rooms, or add a new joined room on every subsequent request on sync.
Alternatively, you could do the same but request all DMs first? I'm not sure I see a tangible benefit here besides attempting to make initial sync faster, in which case... You could store a sorted list of rooms by member count in account data and handle future logins this way by referencing account data.

I'm not discrediting the idea here, just wondering what the train of thought is versus using heuristics transparently without requiring user involvement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client-server Client-Server API kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants