From eaee90fcc87f82edd7a118e48bf5ff0983b8f11d Mon Sep 17 00:00:00 2001 From: James Wheare Date: Sat, 21 Feb 2026 04:25:58 +0000 Subject: [PATCH 1/5] Update specs: ratify websocket and reply. Add unreact. Add client-batch fail codes --- _data/irc_versions.yml | 15 ++++++++++----- _data/registry.yml | 4 ++++ _data/standard_replies_registry.yml | 15 +++++++++++++++ _irc/index.md | 4 ++-- specs | 2 +- 5 files changed, 32 insertions(+), 8 deletions(-) diff --git a/_data/irc_versions.yml b/_data/irc_versions.yml index 00c90d4..e6e40b2 100644 --- a/_data/irc_versions.yml +++ b/_data/irc_versions.yml @@ -52,6 +52,10 @@ stable: - batch tags: - batch + client-batch: + name: client-batch + description: Client initiated batch Extension + link: /specs/extensions/client-batch.html bot-mode: name: Bot Mode description: Bot Mode @@ -275,18 +279,19 @@ stable: react-client-tag: name: +draft/react - description: React client tag DRAFT + description: React and unreact client tags DRAFT link: /specs/client-tags/react.html draft: true tags: - +draft/react + - +draft/unreact reply-client-tag: - name: +draft/reply - description: Reply client tag DRAFT + name: +reply + description: Reply client tag link: /specs/client-tags/reply.html - draft: true + hide-if-no-support: true tags: - - +draft/reply + - +reply channel-context-client-tag: name: +draft/channel-context diff --git a/_data/registry.yml b/_data/registry.yml index a70a71d..c79ec41 100644 --- a/_data/registry.yml +++ b/_data/registry.yml @@ -311,6 +311,10 @@ specs: - react-client-tag description: Sends a reaction to a specific sent message. + - name: +unreact + specs: + - react-client-tag + description: Removes a reaction from a specific sent message. - name: +reply specs: - reply-client-tag diff --git a/_data/standard_replies_registry.yml b/_data/standard_replies_registry.yml index 3576485..8edec29 100644 --- a/_data/standard_replies_registry.yml +++ b/_data/standard_replies_registry.yml @@ -40,6 +40,21 @@ description: Any other multiline error specs: - multiline + - command: BATCH + code: INVALID_REFTAG + description: The provided reference tag contains disallowed characters + specs: + - client-batch + - command: BATCH + code: TIMEOUT + description: The batch was left open for too long + specs: + - client-batch + - command: BATCH + code: UNKNOWN_TYPE + description: The batch type is not recognized by the server + specs: + - client-batch - command: CHATHISTORY code: INVALID_PARAMS description: Indicates that the client sent invalid parameters with their `CHATHISTORY` command diff --git a/_irc/index.md b/_irc/index.md index 1be1c94..6a4dd3b 100644 --- a/_irc/index.md +++ b/_irc/index.md @@ -223,7 +223,7 @@ and as such we detail them in their own section here. Here are the client-only tags the IRCv3 WG defines: * [The `channel-context` client-only tag]({{site.baseurl}}/specs/client-tags/channel-context.html) **[draft]** indicates the channel a private message should be displayed in. -* [The `reply` client-only tag]({{site.baseurl}}/specs/client-tags/reply.html) **[draft]** marks that a given message is intended as a reply to a specific sent message. +* [The `reply` client-only tag]({{site.baseurl}}/specs/client-tags/reply.html) marks that a given message is intended as a reply to a specific sent message. * [The `react` client-only tag]({{site.baseurl}}/specs/client-tags/react.html) **[draft]** sends a reaction to a specific sent message, allowing such functionality from other chat systems. * [The `typing` client-only tag]({{site.baseurl}}/specs/client-tags/typing.html) lets users know when another user is typing a message in their channel or private message. @@ -414,7 +414,7 @@ keep in mind while implementing this feature. ## [WebSocket]({{site.baseurl}}/specs/extensions/websocket.html) -The **work-in-progress** [WebSocket spec]({{site.baseurl}}/specs/extensions/websocket.html) +The [WebSocket spec]({{site.baseurl}}/specs/extensions/websocket.html) describes conventions for transporting IRC lines over the WebSocket protocol. This is necessary for browser-based clients, which cannot make conventional TCP connections to IRC servers. diff --git a/specs b/specs index 3ac855a..1dca2de 160000 --- a/specs +++ b/specs @@ -1 +1 @@ -Subproject commit 3ac855a55a2db6e67418f93ce9c2768361f92689 +Subproject commit 1dca2dec12976746a5e74a30243f7c41cce0a9eb From a43b8540b0d31242eac62d3fadd5720c9ba2a4d2 Mon Sep 17 00:00:00 2001 From: James Wheare Date: Sat, 21 Feb 2026 04:33:35 +0000 Subject: [PATCH 2/5] Upate submodule --- specs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specs b/specs index 1dca2de..a74e3b0 160000 --- a/specs +++ b/specs @@ -1 +1 @@ -Subproject commit 1dca2dec12976746a5e74a30243f7c41cce0a9eb +Subproject commit a74e3b0407609fbc94685eef3856c1cbfabde3ac From feb46093cb633a534d90cbaa5ed3145aea52a96e Mon Sep 17 00:00:00 2001 From: James Wheare Date: Sat, 21 Feb 2026 04:39:07 +0000 Subject: [PATCH 3/5] Add draft: true to client-batch spec --- _data/irc_versions.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_data/irc_versions.yml b/_data/irc_versions.yml index e6e40b2..2dad396 100644 --- a/_data/irc_versions.yml +++ b/_data/irc_versions.yml @@ -56,6 +56,7 @@ stable: name: client-batch description: Client initiated batch Extension link: /specs/extensions/client-batch.html + draft: true bot-mode: name: Bot Mode description: Bot Mode From 64e7ac3a35ca9cc730de025334d4af05443c03b7 Mon Sep 17 00:00:00 2001 From: James Wheare Date: Sat, 21 Feb 2026 04:50:17 +0000 Subject: [PATCH 4/5] Update client support. Move reply tag support to partial: draft cap until otherwise informaed --- _data/sw_clients.yml | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/_data/sw_clients.yml b/_data/sw_clients.yml index 475ffa4..b590771 100644 --- a/_data/sw_clients.yml +++ b/_data/sw_clients.yml @@ -83,7 +83,6 @@ message-tags: msgid: multi-prefix: - reply-client-tag: sasl-3.1: server-time: setname: @@ -91,6 +90,9 @@ SASL: - external - plain + partial: + stable: + reply-client-tag: "draft cap" na: stable: sts: TLS-only @@ -743,10 +745,12 @@ # Client tags channel-context-client-tag: react-client-tag: - reply-client-tag: typing-client-tag: SASL: - plain + partial: + stable: + reply-client-tag: "draft cap" - name: Mobile Clients software: @@ -968,10 +972,12 @@ whox: channel-context-client-tag: react-client-tag: - reply-client-tag: typing-client-tag: SASL: - plain + partial: + stable: + reply-client-tag: "draft cap" - name: Bouncers software: @@ -1049,7 +1055,6 @@ account-tag: away-notify: batch: - bot-mode: Draft cap-3.1: cap-3.2: cap-notify: @@ -1071,6 +1076,9 @@ whox: SASL: external: + partial: + stable: + bot-mode: "draft cap" - name: pounce (as Client) # ref: https://git.causal.agency/pounce/about/pounce.1#Client_Configuration link: https://git.causal.agency/pounce/about/ @@ -1080,7 +1088,6 @@ account-tag: away-notify: batch: - bot-mode: Draft cap-3.1: cap-3.2: cap-notify: @@ -1102,6 +1109,9 @@ SASL: external: plain: + partial: + stable: + bot-mode: "draft cap" na: stable: sts: TLS-only @@ -1115,7 +1125,6 @@ account-tag: away-notify: batch: - bot-mode: Draft cap-3.1: cap-3.2: cap-notify: @@ -1146,6 +1155,7 @@ partial: stable: websockets: text only + bot-mode: "draft cap" - name: soju (as Client) # ref: https://codeberg.org/emersion/soju/src/branch/master/upstream.go#L28 link: https://codeberg.org/emersion/soju @@ -1268,12 +1278,14 @@ sts: userhost-in-names: whox: - reply-client-tag: typing-client-tag: SASL: - plain - external - scram-sha-256 + partial: + stable: + reply-client-tag: "draft cap" - name: Eggdrop link: https://github.com/eggheads/eggdrop # ref: https://github.com/eggheads/eggdrop/blob/886c2ff6f943952018000c16cb48c08b8ab99127/eggdrop.conf#L1127 @@ -1347,11 +1359,13 @@ utf8only: whox: react-client-tag: - reply-client-tag: SASL: - external - plain - scram-sha-256 + partial: + stable: + reply-client-tag: "draft cap" - name: Moon Moon # ref: https://github.com/wiseguiz/Moon-Moon/blob/master/irc.moon # ref: https://github.com/wiseguiz/Moon-Moon/blob/master/plugins/batch.moon @@ -1381,11 +1395,13 @@ server-time: userhost-in-names: whox: - reply-client-tag: typing-client-tag: SASL: - plain - external + partial: + stable: + reply-client-tag: "draft cap" - name: Sopel (ex Willie) #ref: https://github.com/sopel-irc/sopel/blob/v5.3.0/willie/coretasks.py#L357 # https://github.com/sopel-irc/sopel/blob/e5df2fa/sopel/coretasks.py#L345 From 2ed159386a3a5568f2a001b2e75c39a20d55f2bd Mon Sep 17 00:00:00 2001 From: James Wheare Date: Sat, 21 Feb 2026 04:51:20 +0000 Subject: [PATCH 5/5] Update bridges support. Move reply tag support to partial: draft cap until otherwise informed --- _data/sw_bridges.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_data/sw_bridges.yml b/_data/sw_bridges.yml index 03e3db5..e093209 100644 --- a/_data/sw_bridges.yml +++ b/_data/sw_bridges.yml @@ -84,9 +84,11 @@ userhost-in-names: utf8only: react-client-tag: - reply-client-tag: SASL: - plain + partial: + stable: + reply-client-tag: "draft cap" na: stable: account-notify: