Skip to content

Add some IRCv3 features#71

Draft
timo wants to merge 1 commit intolizmat:mainfrom
timo:IRCv3
Draft

Add some IRCv3 features#71
timo wants to merge 1 commit intolizmat:mainfrom
timo:IRCv3

Conversation

@timo
Copy link
Copy Markdown

@timo timo commented Mar 24, 2026

IRCv3 Features implemented:

  • capability negotiation, some default requests
  • tags on messages, like server time, message id, user account
  • explicit batches such as multiline, chathistory or event-playback
  • echo-message so we get msgids for our own outgoing messages
  • requesting the latest N entries from the chathistory as events

these features of course depend on whether the server you're connected to supports the corresponding capabilities

There's some outstanding tasks:

  • something to help plugins differentiate echo-messages from normal messages
    • and to make it easy for a plugin to get msgids for messages it has sent
  • plugins that don't handle multiline batches could just get the text as individual messages, or as a message with unusually long text
    • same for netsplit / netjoin batches of join and quit messages
  • send privmsg or notice with arbitrary tags
  • send tagmsg messages
  • send batches

And some other stuff that should maybe be implemented but isn't specific to IRCv3:

  • parsing ISUPPORT tokens to figure things out like
    • what user modes are there
    • what channel types exist
    • maximum length of nicknames, channels, and topics
  • probably some other stuff

* capability negotiation, some default requests
* tags on messages, like server time, message id, user account
* explicit batches such as multiline, chathistory or event-playback
* echo-message so we get msgids for our own outgoing messages
@timo timo marked this pull request as draft March 24, 2026 00:09
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.

1 participant