IRC: changing your real name needs a reconnect #150

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

setname is ratified and unrequested. Without it the realname (gecos) field is fixed
at registration by USER (backend/irc/connect.rs:521), so changing it means
disconnecting and coming back — which drops every channel and every query.

What is needed

  • Request setname, and send SETNAME :<realname> for the change.
  • Handle the inbound SETNAME for other people, which is how everybody else learns.
  • A field to change it, next to wherever the nick is changed.

Done looks like: the realname can be changed without leaving the network.

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.

`setname` is ratified and unrequested. Without it the realname (gecos) field is fixed at registration by `USER` (`backend/irc/connect.rs:521`), so changing it means disconnecting and coming back — which drops every channel and every query. **What is needed** - Request `setname`, and send `SETNAME :<realname>` for the change. - Handle the inbound `SETNAME` for other people, which is how everybody else learns. - A field to change it, next to wherever the nick is changed. **Done looks like:** the realname can be changed without leaving the network. 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:04 -04:00
Salastil removed the protocol label 2026-09-10 15:53:22 -04:00
Author
Owner

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

setname is requested where the server offers it, /setname <text> sends it, and an inbound SETNAME is reported in every channel that person is visible in. Written to the account as well as sent, because SETNAME changes it on this connection only - the next registration sends USER again and would quietly revert it.

Note for anyone testing on Libera: solanum does not advertise setname, so /setname there answers that the network cannot do it rather than failing silently.

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). `setname` is requested where the server offers it, `/setname <text>` sends it, and an inbound SETNAME is reported in every channel that person is visible in. Written to the account as well as sent, because SETNAME changes it on this connection only - the next registration sends USER again and would quietly revert it. Note for anyone testing on Libera: solanum does not advertise `setname`, so `/setname` there answers that the network cannot do it rather than failing silently.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#150