Skip to content

Clarify that netjoin batches can contain non-JOINs#578

Open
skizzerz wants to merge 2 commits intoircv3:masterfrom
skizzerz:patch-2
Open

Clarify that netjoin batches can contain non-JOINs#578
skizzerz wants to merge 2 commits intoircv3:masterfrom
skizzerz:patch-2

Conversation

@skizzerz
Copy link
Contributor

@skizzerz skizzerz commented Jan 13, 2026

When bursting a netjoin, AWAY may be sent to away-notify clients and MODE may be set on introduced nicks to give them e.g. channel operator status. Right now the language of the spec doesn't indicate one way or another whether these additional commands are valid inside of a netjoin batch. If they have to be excluded, then we run into issues where a client may process those unbatched AWAYs and MODEs before processing the netjoin batch and be very confused about receiving information for a user that they don't know about or isn't on the channel.

Instead, clarify that these are explicitly allowed within these batches. I narrowly scoped to messages relevant for client state tracking in the spec (with AWAY and MODE being called out as examples). Other things like TOPIC aren't order-dependent on a user being in the channel or not yet from a client's point of view and need not be included.

When bursting a netjoin, AWAY may be sent to away-notify clients and MODE may be set on introduced nicks to give them e.g. channel operator status. Right now the language of the spec doesn't indicate one way or another whether these additional commands are valid inside of a netjoin batch. If they have to be excluded, then we run into issues where a client may process those unbatched AWAYs and MODEs before processing the netjoin batch and be very confused about receiving information for a user that they don't know about or isn't on the channel.

Instead, clarify that these are explicitly allowed within netjoin batches. For now I just narrowly scoped to AWAY and MODE since those are directly relevant to the users joining the channel. Other things like TOPIC aren't order-dependent on a user being in the channel or not yet from a client's point of view.
@progval
Copy link
Contributor

progval commented Jan 13, 2026

might as well put them in the previous paragraph IMO. As you pointed out, they are integral to keeping state consistent (and also hiding the spurious away/modes from the user).

Move the MAY to the same paragraph and make it more generic, calling out AWAY and MODE as examples rather than an exclusive list of additional messages allowed (and adding a ref to away-notify for AWAY since it would normally otherwise not be sent out)
@jwheare
Copy link
Member

jwheare commented Feb 10, 2026

LGTM, separate the errata to its own line though.

@jwheare
Copy link
Member

jwheare commented Feb 13, 2026

It's looking like we might deprecate this spec in favour of a message tag based on discussion in #579 so holding off on this until that decision has been made.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants