Subject: bug#51342: 29.0.50; remove non-CAPs from rcirc capability list

From: "J.P." <[email-masked]>
Date: Mon, 25 Oct 2021 20:50:29 -0700

"J.P." <[email-masked]> writes:

> However, I *have* noticed at least one progressive IRCd sending
> standard replies not defined in any spec [1].
>
> [...]
>
> [1] https://github.com/ircv3/ircv3-specifications/pull/276

That link is bogus/unrelated (sorry). It's actually a

  :irc.org FAIL NICK NICKNAME_RESERVED tester :Nickname is reserved ...

that I encountered, but it's not documented anywhere (that I could
find). It's sent by Ergo 2.6.1 whether or not you request any caps.
NICKNAME_RESERVED was ostensibly created to prevent confusion with the
traditional 433/ERR_NICKNAMEINUSE, which accompanies it in the same
burst.

Whether it's safe to expect such redundancy across the board when
nothing dependent has been negotiated is anyone's guess, but the
existence of the vendor cap inspircd.org/standard-replies [1] perhaps
tips things in favor of the yeas. This cap gives permission for a server
to send undeclared replies in standard-replies form, possibly in lieu of
traditional ones, like 433.

> I can only guess they assume clients not privy to the new syntax are
> resilient enough to take these in stride [2].

Yeah, "new syntax" is just confusing. What I meant was rather than
extending the IRC message format, a standard-replies declaration merely
specifies a concrete reply within the constraints of the broader
protocol, meaning

  [@tags] [:src] cmd    p0     p1     p2     ... pn-1    :pn
  [@tags] [:src] <type> <req> <code> [<cxt0> ... <ctxn>] :<desc>

from the spec is just a way of getting us ready for specific interface
descriptions, like those for setname [2]. So when folks talk about
safely degrading in this context [3], they mean devolving to a catch-all
handler (usually NOTICE) for all unrecognized/unhandled replies. Thanks.

[1] https://docs.inspircd.org/3/modules/cap/
[2] https://ircv3.net/specs/extensions/setname#errors
[3] https://github.com/inspircd/inspircd/issues/1809