IRC: the server's refusals are matched by numeric #153

Closed
opened 2026-09-10 15:45:05 -04:00 by Salastil · 1 comment
Owner

standard-replies is ratified and unrequested. It gives FAIL, WARN and NOTE
with a machine-readable code, which is what a modern server uses to explain a refusal
that has no numeric of its own.

Today every error is matched by numeric (is_channel_error,
backend/irc/incoming.rs:636), so anything a server reports through standard replies
either falls through as raw text or is not shown at all.

What is needed

  • Request standard-replies, and handle FAIL/WARN/NOTE alongside the numerics.
  • FAIL is an error, WARN is worth showing, NOTE is informational — three
    different weights, not one.

Done looks like: a refusal the server explains in words reaches the person it
refused.

Found by the 2026-09-10 coverage review, which measured IRC against the IRCv3
capability registry rather than against a feature list. moho requests 12 capabilities
plus SASL, covering 15 of the 25 client-relevant ratified extensions — WeeChat
supports around 35. This is one of the ten missing ones, filed separately because each
is independently doable.

`standard-replies` is ratified and unrequested. It gives `FAIL`, `WARN` and `NOTE` with a machine-readable code, which is what a modern server uses to explain a refusal that has no numeric of its own. Today every error is matched by numeric (`is_channel_error`, `backend/irc/incoming.rs:636`), so anything a server reports through standard replies either falls through as raw text or is not shown at all. **What is needed** - Request `standard-replies`, and handle `FAIL`/`WARN`/`NOTE` alongside the numerics. - `FAIL` is an error, `WARN` is worth showing, `NOTE` is informational — three different weights, not one. **Done looks like:** a refusal the server explains in words reaches the person it refused. Found by the 2026-09-10 coverage review, which measured IRC against the IRCv3 capability registry rather than against a feature list. moho requests 12 capabilities plus SASL, covering **15 of the 25 client-relevant ratified extensions** — WeeChat supports around 35. This is one of the ten missing ones, filed separately because each is independently doable.
Salastil added the featureprotocol labels 2026-09-10 15:45:05 -04:00
Salastil removed the protocol label 2026-09-10 15:53:23 -04:00
Author
Owner

Done in nobilis de0ad86, with the client half in moho 4fd3bc6.

standard-replies is requested, and FAIL, WARN and NOTE are handled with three different weights rather than one - a FAIL is a refusal somebody needs to see, a WARN is worth showing, a NOTE is the server being chatty and is filed as system rather than error.

Done in nobilis [de0ad86](https://git.salastil.com/Salastil/nobilis/commit/de0ad86), with the client half in moho [4fd3bc6](https://git.salastil.com/Salastil/moho/commit/4fd3bc6). `standard-replies` is requested, and FAIL, WARN and NOTE are handled with three different weights rather than one - a FAIL is a refusal somebody needs to see, a WARN is worth showing, a NOTE is the server being chatty and is filed as `system` rather than `error`.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#153