ircv3-ideas icon indicating copy to clipboard operation
ircv3-ideas copied to clipboard

Better channel burst system

Open SadieCat opened this issue 1 year ago • 2 comments

Currently when a user joins a channel they get a names list. This is pretty sparse and doesn't contain a lot of the useful data that a client needs so they need to wait for the JOIN and then send a WHO to retrieve additional data. This is non-ideal and increases delay for rendering the UI. We can do better.

I'm proposing we add a draft/rich-channel-burst cap which changes this to send something more useful for clients. This should probably include a WHOX response line for each user and maybe other things too (e.g. if a user has away-notify then away messages).

SadieCat avatar Mar 21 '24 19:03 SadieCat

This problem came up as part of a larger discussion about the possibility of Libera.Chat supporting bot mode, and how it's not ideal to give clients another reason to need to WHO channels on join.

The half-baked idea I threw out at the time was to have a flags-in-names capability which would suffix the nick (or host, in case of userhost-in-names) with flags as-returned-by RPL_WHOREPLY. $ seems like it would work as a separator, but there may be better options. This would indicate away state, bot mode, status prefixes (redundantly, could possibly omit the existing prefixes in RPL_NAMREPLY with this cap), operator status, and whatever server-specific extensions to the flags there are.

While fairly straightforward, it doesn't generalize to other forms of user metadata, and in particular omits users' realnames and servers (and hop counts, I guess). But maybe that should be the responsibility of a hypothetical metadata v3 spec, which would hopefully have a way to avoid relaying the same information about a user once per shared channel.

TheDaemoness avatar Jul 27 '24 15:07 TheDaemoness

If the client could specify that it was interested in away or bot mode or other subsets that would reduce the message load.

If the client could issue one-such query for all channels it was joined to at once, or specify a list of channels that might cut down in duplication.

(Just some ideas)

glguy avatar Jul 27 '24 16:07 glguy