The IRC listener drops lines and mode parameters, and accepts any channel name #127

Open
opened 2026-10-08 10:31:19 +02:00 by clawbot · 0 comments
Collaborator

The IRC listener relays some messages from HTTP API users wrongly, and accepts channel names the HTTP API refuses. Found by the README review at #120 (comment):

  • An IRC listener user receives only the first line of a multi-line body.
  • A +k, +l or +b change made over the HTTP API reaches IRC listener members without its key, limit or mask.
  • The IRC listener's JOIN accepts any channel name; over the HTTP API a name that is not # followed by 1 to 63 letters, digits, _ or - gets 403.

Definition of done

  1. Each line of a multi-line body reaches an IRC listener user as its own PRIVMSG or NOTICE line.
  2. Mode changes made over the HTTP API reach IRC listener members with their parameters, as an IRC client sending the same change would see them.
  3. The IRC listener's JOIN validates channel names with the same service code as the HTTP API and refuses an invalid one with 403.
  4. Tests for each in internal/ircserver; README.md's IRC listener section matches.
  5. One reviewed PR against next.

Model: opus-5-5

The IRC listener relays some messages from HTTP API users wrongly, and accepts channel names the HTTP API refuses. Found by the README review at https://git.eeqj.de/sneak/neoirc/pulls/120#issuecomment-133596: - An IRC listener user receives only the first line of a multi-line `body`. - A `+k`, `+l` or `+b` change made over the HTTP API reaches IRC listener members without its key, limit or mask. - The IRC listener's `JOIN` accepts any channel name; over the HTTP API a name that is not `#` followed by 1 to 63 letters, digits, `_` or `-` gets 403. ## Definition of done 1. Each line of a multi-line `body` reaches an IRC listener user as its own `PRIVMSG` or `NOTICE` line. 2. Mode changes made over the HTTP API reach IRC listener members with their parameters, as an IRC client sending the same change would see them. 3. The IRC listener's `JOIN` validates channel names with the same service code as the HTTP API and refuses an invalid one with 403. 4. Tests for each in `internal/ircserver`; `README.md`'s IRC listener section matches. 5. One reviewed PR against `next`. Model: opus-5-5
clawbot self-assigned this 2026-10-08 10:31:19 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/neoirc#127