List the missing channel modes in the 004 reply (closes #238) #240

Merged
clawbot merged 1 commits from issue-238-myinfo-channel-modes into next 2026-11-02 04:48:19 +01:00
Collaborator

The channel-modes parameter of the 004 reply (RPL_MYINFO) left out modes that MODE accepts.

  • The IRC listener now sends Himnostv instead of mnst.
  • The HTTP API now sends Hbiklmnostv instead of ikmnostl.

Each transport keeps its own list in its own deliverWelcome, because the two accept different channel modes (README.md Channel Modes). The lists share no value, so nothing moved to internal/service.

The two 004 tests added for #220 now check the channel modes too, so each is renamed TestMyInfoListsModes. The IRC listener's test now compares the whole line rather than a substring, so an extra mode fails it.

README.md shows the 004 reply only as the HTTP API's JSON example. That example and schema/README.md now show Hbiklmnostv. Neither document shows the IRC listener's 004.

The letters are in ASCII order, as the issue lists them, so H comes first.

Disclosures:

  • Judgement call: the HTTP API's list keeps n, as the issue's definition of done says. Yet the HTTP API's MODE answers +n with ERR_UNKNOWNMODE, and README.md says only the IRC listener sets n. Over the HTTP API, a channel's modes still show n.

Model: opus-5-5

The channel-modes parameter of the `004` reply (`RPL_MYINFO`) left out modes that `MODE` accepts. - The IRC listener now sends `Himnostv` instead of `mnst`. - The HTTP API now sends `Hbiklmnostv` instead of `ikmnostl`. Each transport keeps its own list in its own `deliverWelcome`, because the two accept different channel modes (`README.md` Channel Modes). The lists share no value, so nothing moved to `internal/service`. The two `004` tests added for https://git.eeqj.de/sneak/neoirc/issues/220 now check the channel modes too, so each is renamed `TestMyInfoListsModes`. The IRC listener's test now compares the whole line rather than a substring, so an extra mode fails it. `README.md` shows the `004` reply only as the HTTP API's JSON example. That example and `schema/README.md` now show `Hbiklmnostv`. Neither document shows the IRC listener's `004`. The letters are in ASCII order, as the issue lists them, so `H` comes first. Disclosures: - Judgement call: the HTTP API's list keeps `n`, as the issue's definition of done says. Yet the HTTP API's `MODE` answers `+n` with `ERR_UNKNOWNMODE`, and `README.md` says only the IRC listener sets `n`. Over the HTTP API, a channel's modes still show `n`. Model: opus-5-5
clawbot self-assigned this 2026-11-02 04:37:16 +01:00
clawbot added 1 commit 2026-11-02 04:37:16 +01:00
The channel-modes parameter of RPL_MYINFO left out modes that each
transport's MODE accepts. The IRC listener now sends Himnostv, adding
H, i, o and v. The HTTP API now sends Hbiklmnostv, adding H, b and v.
Each transport keeps its own list, because they accept different
modes. The tests compare the whole parameter, so a missing or extra
mode fails them. The README and the schema notes show the new HTTP API
list.

Model: opus-5-5
clawbot added the needs-review label 2026-11-02 04:37:19 +01:00
Author
Collaborator

PASS: each transport's 004 reply now lists exactly the channel modes the issue names, Himnostv on the IRC listener and Hbiklmnostv over the HTTP API, with tests that catch a missing or extra letter on both, and README.md and schema/README.md match.

Judgement call: the HTTP API's list keeps n, which its MODE cannot set, as item 2 of #238 says.

Model: opus-5-5

PASS: each transport's `004` reply now lists exactly the channel modes the issue names, `Himnostv` on the IRC listener and `Hbiklmnostv` over the HTTP API, with tests that catch a missing or extra letter on both, and `README.md` and `schema/README.md` match. Judgement call: the HTTP API's list keeps `n`, which its `MODE` cannot set, as item 2 of https://git.eeqj.de/sneak/neoirc/issues/238 says. Model: opus-5-5
clawbot merged commit 6a7989e08d into next 2026-11-02 04:48:19 +01:00
clawbot deleted branch issue-238-myinfo-channel-modes 2026-11-02 04:48:19 +01:00
Sign in to join this conversation.