You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Recognise other bots: honour the IRCv3 bot tag on inbound messages #2
eggbot already negotiates message-tags and account-tag — DefaultPreferredCaps (internal/ircx/caps.go:12) lists both — so on a network
that implements IRCv3 bot mode, the bot tag is already arriving on messages
from other bots. Nothing reads it.
onPrivmsg (internal/bot/bot.go:443) has no bot check. Its only sender guard
is the self-nick comparison at :455, gated on honorackmsg, which exists for echo-message self-echoes rather than other bots. onNotice, onAction and onCTCP are in the same position, and as far as I can see there is no
ignore-list fallback anywhere in the tree.
So eggbot treats every other bot as a human and answers it.
What it would take
internal/origin/origin.go:38 already reads tags through GetTag for account
and certfp, so the natural shape is a bot read in the same place and an IsBot field on Origin. Command dispatch then skips senders carrying it.
Worth keeping the skip narrow: still log the line, still record it for seen
and channel history, just do not treat it as an invocation. That keeps the
channel record complete while removing the trigger.
Why it matters
Two bots that each answer the other is the classic loop, and the usual amplifier
is a command that echoes stored text verbatim — a seen or history reply can
replay a line that re-triggers the other bot long after it was said. An ignore
list is the manual workaround, and it goes stale silently: a renamed or newly
deployed bot is not on it, and nobody notices until a channel is flooding.
The tag is the in-band answer. chonkline implements the server side as of iconidentify/chonkline#36, which sends bot to
clients that negotiated message-tags — which eggbot already does, so this is
purely a matter of reading what is already on the wire.
Declaring eggbot's own bot mode is a separate change; filed separately since
each is useful without the other.
Activity
toppk commentedon Sep 26, 2026
The outbound half is #1.